Я возвращаюсь на Linux!

Если вы читаете мой блог с самого начала, то должны помнить, что в первой половине десятых я в основном пользовался именно этой ОС: я даже написал две статьи о своем опыте работы с системой — Почему я выбираю Linux? (2012) и 7 лет с Linux (2015). К сожалению, с 2018 года мне по работе пришлось стать виндузятником. Не то, чтобы это создало какие-то неудобства, но времени на Linux хватать перестало — к тому же я купил новые компьютеры, а старый линуксовый ноутбук отдал родственникам. Систему, естественно, пришлось снести. Но недавно захотелось мне привести в рабочее состояние другой ноут, с ужасно тормозной OEM-версией Windows 10. Я выбрал для него все тот же Linux Mint, а именно 21.2 MATE Edition (кто не в курсе — MATE является форком классического рабочего стола GNOME 2). Кстати, впервые в жизни не стал ставить Linux в дуалбут с Windows, переформатировал весь диск — терять было нечего. И вот я опять как дома!

Я был приятно удивлен: за 5 лет моего отсутствия линуксовый десктоп стал заметно лучше. Системные приложения, конечно, в основном все те же, привычные для старого гномовода. Однако в мое время пакеты ставились вручную в консоли, при помощи apt-get — теперь же есть удобный каталог ПО с графическим интерфейсом. Хорошая поддержка оборудования: Wi-Fi заработал из коробки без необходимости устанавливать драйвер. Драйвер для видеокарты система сама обнаруживает и скачивает — правда, показалось странным, что при этом нужно вводить пароль Secure Boot. Ну, видимо, такие теперь порядки в эпоху UEFI.

Пожалуй, самое важное нововведение последних лет — это Flatpak. Я в свое время прошел все круги ада в плане установки приложений — наверное, каждому линуксоиду нулевых знакомы проблемы с зависимостями бинарников, версиями glibc, зоопарком звуковых подсистем. О том, чтобы ставить программы инсталляторами, как в Windows, приходилось только мечтать — я всегда твердил, что популярности Linux на десктопе мешает именно это. Похоже, что Flatpak решает данную проблему: это утилита для создания самодостаточных бинарных пакетов без зависимостей, которые запускаются в изолированном окружении-песочнице. Они могут взаимодействовать с ОС через механизм порталов — можно дать приложениям доступ к диску, сети, устройствам и т.д. При этом в системные папки типа /usr/bin, /usr/lib ничего не устанавливается, и это просто замечательно! Флатпаки, естественно, дистрибутиво-независимы — не нужно создавать отдельные пакеты на каждый дистрибутив и разные его версии, что всегда было дичайшей головной болью разработчиков. В Mint поддержка Flatpak встроена в менеджер приложений: вы можете устанавливать как традиционные deb-пакеты, так и пакеты с Flathub. Минусом такого подхода является то, что флатпаки достаточно много весят, но, по современным стандартам объемов носителей, это не так уж важно.

Очень понравилось, что в виде флатпаков можно установить все бесплатные приложения, нужные мне для работы: Figma, VS Code, GitHub Desktop и др. А еще в мое время под Linux было совсем мало игр. Сегодня ситуация гораздо позитивнее: есть Steam, где я обнаружил linux-версии многих своих любимых игр последних лет. Радует полноценная поддержка Linux в мейнстримных игровых движках, особенно свободных. Установил Node.js, и с полоборота запустились все мои тулчейны для разработки баннеров и браузерных игр — благо там почти все кроссплатформенное. Хобби-проекты теперь, конечно, тоже буду полноценно тестировать под Linux.

Единственный серьезный минус, который пока заметил: свежий Photoshop не запускается под WINE. Но в моем случае жить можно и без ФШ, учитывая, что linux-машина не является основной для работы. Может быть, получится запустить какую-нибудь старую версию — буду экспериментировать.

Обновления

Лето подошло к концу — это печально 🙁 Но при этом спешу порадовать читателей хорошими новостями: одновременно вышли новые версии dlib и Dagon.

dlib 1.2.1 — в основном, исправляющий релиз. Исправлены ошибки в dlib.filesystem.posix.common, предупреждения о депрекациях в dlib.core.thread и dlib.math.utils. В dlib.image добавлен медианный фильтр (модуль dlib.image.filters.median).

Dagon 0.15.0 — первый релиз за последний год. Добавлена поддержка 1D и 3D-текстур и новые методы для класса Texture (setFaceImage, setFaceBit, createFromImage3D). Шейдер цветовых таблиц (LUT) теперь поддерживает таблицы в формате Hald CLUT — нужно создать 3D-текстуру из изображения Hald CLUT и просто передать в game.postProcessingRenderer.colorLookupTable. Появились новые параметры шейдера глубины резкости (DoF) для ручного управления эффектом: dofManual, dofNearStart, dofNearDistance, dofFarStart, dofFarDistance. Загрузчик glTF теперь декодирует встроенные в JSON-файл текстуры. Менеджер событий обзавелся поддержкой относительного режима мыши (EventManager.setRelativeMouseMode) для более надежной реализации управления мышью в играх. Соответственно, компонент управления FirstPersonViewComponent теперь использует по умолчанию относительный режим.
Обновился биндинг Newton Dynamics до свежей версии библиотеки: функция NewtonUserJointSetRowSpringDamperAcceleration удалена в пользу NewtonUserJointSetRowMassDependentSpringDamperAcceleration и NewtonUserJointSetRowMassIndependentSpringDamperAcceleration. Добавлен новый метод для ньютоновских твердых тел: NewtonRigidBody.localPointVelocity.