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

PurpleSchool

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

165просмотров

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

3просмотра

Почему 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 #терминал

107просмотров

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

112просмотров

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

108просмотров

В Omarchy есть свой Plugin Marketplace с плагинами, которые позволяют расширять возможности системы под разные задачи. В каталоге доступно множество вариантов. Например, Omarchy Screencast Keys показывает нажатия клавиш во время скринкастов, Magic Mouse Battery добавляет индикатор заряда Magic Mouse, а Input Sources помогает быстро переключать источник ввода. Установить нужный плагин можно через команду или просто попросить об этом вашего AI-агента. Полный обзор Omarchy — по ссылке под шортсом. #Omarchy #Linux #ArchLinux #Hyprland #os #unix #линукс #distro #linuxdistro #plugins #omarchyplugins

149просмотров

LSP позволяет разным редакторам работать с одним и тем же языковым сервером. Редактор отправляет стандартные LSP-сообщения: какой файл открыт, где находится курсор и что нужно получить. Сервер возвращает автодополнение, переходы к определению и диагностику. Обычно обмен идёт через JSON-RPC, поэтому редактору не нужно отдельно реализовывать поддержку каждого языка. #LSP #LanguageServer #LanguageServerProtocol #ide #jsonrpc #rpc #Programming

212просмотров

Что такое Omarchy и почему эта система привлекла внимание разработчиков? В шортсе знакомимся с Omarchy и смотрим, что появилось в версии 4 и как изменился подход к работе с системой. Полный обзор Omarchy — по ссылке под шортсом. #Omarchy #Linux #ArchLinux #Hyprland #os #unix #линукс #distro #linuxdistro #quickshell #LinuxDesktop

121просмотр

IDE, Git, сборка и file watcher могут резко замедлиться, если проект лежит на Windows-диске, а инструменты работают внутри WSL или Linux-контейнера. Каждая файловая операция пересекает границу Windows и Linux. На одном файле это почти незаметно, но на node_modules или большом монорепозитории тысячи таких обращений складываются в заметные задержки. Разбираемся, почему для Linux-инструментов репозиторий лучше держать внутри файловой системы WSL, например в /home/..., а не в /mnt/c. #WSL #Docker #Linux #DevTools #Performance #Frontend #Backend #windows #ide

102просмотра

Срочный hotfix прилетел посреди работы над фичей? Не обязательно делать stash и постоянно переключаться между ветками. git worktree позволяет открыть другую ветку в отдельной рабочей директории. У worktree будут отдельные рабочие файлы, зависимости и результаты сборки, но история и база объектов Git останутся общими. Разбираемся, как использовать worktree для параллельной работы над несколькими задачами. #Git #GitWorktree #DevTools #Programming #webdev #coding #гит

82просмотра

Как debugger выполняет вызов функции целиком, но не останавливается внутри неё? При Step Over отладчик использует отладочную информацию, текущий stack frame и разные механизмы продолжения выполнения — от single-step и range stepping до временных breakpoint. Разбираемся, почему Step Over не означает атомарное выполнение строки и почему иногда debugger может остановиться совсем не там, где ожидаешь. #Debugger #Debugging #StepOver #Programming #webdev #coding #programming

101просмотр

Hot Reload позволяет увидеть изменения в приложении без полного перезапуска — но как это работает внутри? После сохранения файла dev-сервер находит изменившийся модуль и отправляет обновление в браузер. HMR-клиент проходит по графу импортов, ищет подходящую границу обновления и применяет новый код только там, где это безопасно. Разбираемся, как работает HMR, почему состояние иногда сохраняется и в каких случаях приложение всё-таки приходится перезагружать полностью. #HotReload #HMR #Frontend #JavaScript #WebDev #Programming #js #coding

76просмотров

Зачем использовать Orca, если уже есть терминал и привычная IDE? Orca объединяет работу с AI-агентами, браузер, просмотр файлов, code review, интеграцию с issues и pull requests, а также поддержку нескольких проектов и агентов. Разбираемся, кому такой подход действительно будет удобнее терминала или обычной IDE. Полный обзор Orca — по ссылке под шортсом. #ade #ide #orca #aiagents #aisetup #cli #devtools #terminal #codeeditor #ai

116просмотров

Что происходит внутри программы, когда ты ставишь breakpoint в IDE На x86 software breakpoint обычно реализуется через инструкцию INT3 с opcode 0xCC. Debugger временно изменяет машинный код, процессор генерирует исключение, а после остановки debugger восстанавливает исходную инструкцию и позволяет продолжить выполнение. Разбираемся, как работают software breakpoints и чем от них отличаются hardware breakpoints. #Debugger #Breakpoint #Debugging #Assembly #x86 #Programming #ide #coding

93просмотра

Copy-on-Write позволяет создать отдельное адресное пространство процесса, не копируя сразу всю его память. После fork() родитель и потомок могут ссылаться на одни и те же физические страницы. Копия создаётся только тогда, когда один из процессов пытается изменить страницу — поэтому вместо гигабайта данных иногда достаточно скопировать всего несколько килобайт. Разбираемся, как работает Copy-on-Write, при чём здесь page fault и почему этот механизм не избавляет от копирования полностью. #CopyOnWrite #Linux #Memory #OperatingSystems #Fork #Backend #COW #backendinterview

98просмотров

Добавляешь | grep — и программа внезапно начинает выводить строки с задержкой или большими порциями. Но проблема обычно не в скорости grep. Когда stdout подключён к терминалу, программа может использовать построчную буферизацию. После подключения к pipe стандартная библиотека может переключиться на блочную — и данные начинают накапливаться в буфере. Разбираемся, почему pipe меняет поведение вывода и когда может помочь stdbuf -oL. #Linux #Grep #Bash #Terminal #CLI #Stdout #Backend #pipe #grepcommand

148просмотров

В Orca можно запускать несколько AI-агентов и работать с ними в рамках одного проекта. В шортсе запускаем Claude, Pi и OpenCode, смотрим их статус и показываем, как Orca организует работу с агентами отдельно для каждого проекта. Полный обзор Orca — по ссылке под шортсом. #ade #ide #orca #aiagents #aisetup #cli #devtools #terminal #codeeditor #ai

10просмотров

Как устроена Orca изнутри и где искать всё необходимое для работы? Показываем проекты и вкладки, настройки задач и автоматизаций, Orca Mobile, подключённых AI-агентов и их лимиты. А также привычную IDE-часть: файлы проекта, интеграцию с Git, Agent History и проверки по PR. Полный обзор Orca — по ссылке под шортсом. #ade #ide #orca #aiagents #aisetup #cli #devtools #terminal #codeeditor #ai

150просмотров

Orca — бесплатная IDE, созданная для работы с AI-агентами. В одном интерфейсе можно работать с кодом, терминалом и AI-агентами, не собирая рабочий процесс из нескольких отдельных инструментов. В шортсе быстро разбираемся, что такое Orca и чем она отличается от привычной среды разработки. Полный обзор Orca — по ссылке под шортсом. #ade #ide #orca #aiagents #aisetup #cli #devtools #terminal #codeeditor #ai

9просмотров

Bloom Filter может гарантировать, что элемента нет, но наличие определяет только с некоторой вероятностью. Вместо хранения всех ключей он использует битовый массив и несколько хэш-функций. Это экономит память и позволяет быстро отсекать обращения к медленному хранилищу, но создаёт возможность false positive. Разбираемся, откуда берутся ложноположительные срабатывания, почему классический Bloom Filter не даёт false negative и зачем его ставят перед основным хранилищем. #BloomFilter #DataStructures #Algorithms #Backend #SystemDesign #Database #Performance #Программирование