LINUX.ORG.RU

Избранные сообщения Bass

Gentoo/ppc64 в 2024 году

 , ,

Вместе с distcc на компиляцию ушло три дня. Могло скомпилироваться быстрее, если бы я установил SSD, но было лень разбирать аймак ради замены.

Из софта нашел браузер https://github.com/rmottola/Arctic-Fox — какая-то оптимизированная васяносборка Pale Moon 27, простые сайты открывает, ЛОР тоже.

Golang не смог собрать потому, что он требует процессор POWER8+. Половина софта в портаже замаскирована из-за архитектуры, и шансы, что программа скомпилируется и заработает, обычно 50/50.

Растовский librsvg собирался 3 часа... ioquake3 не заработал, minetest крашится с ошибкой в движке irrlicht, classicube крашится с ошибкой opengl. Из игр удалось запустить только форк BetterSpades — всем советую, можно скомпилировать даже под Mac OS X 10.4.

За примерно неделю использования понял, что линукс на big-endian ppc64, к сожалению, очень дохлый. Легче поставить старую макось и юзать старые программы, а некоторый свежий CLI-софт можно установить через tigerbrew.

Elmer_
()

Получить WID из PID

 , window id, ,

Запускаю через скрипт приложение

  • (appname 2>&1 > /dev/null) & echo $!
  • Читаю результат $! получив PID отпочковавшейся дочки
  • Запускаю wmctrl -lp ищу в строке PID и забираю соответствующий WID
  • Всё, я довольный, могу через WID манипулировать окном и пришибать процесс через PID точно зная что есть активная пара PID/WID и я не пришибу случайно что-то иное.

Всё работает. Но с некоторыми приложениями например glxgears беда. PID я его получаю, а вот WID найти не могу, да я могу wmctrl без параметров запустить, мышкой кликнуть на окошечко и получить WID, но это не то, не получается зная лишь PID получить WID. С большинством приложений проблем нет, а тут уже не знаю где искать. Сейчас ситуация такая что я запускаю приложеньку, жду несколько секунд пытаясь получить WID окна, если не получилось, грохаю процесс, ну и типа фиг с ним, не судьба :(

Не сообщает _NET_WM_PID оно, жопка такая. Выхода нет? Ключ поверни и по-ле-те-ли И однозначно не определить?

Варианты поиска по заголовкам окон и по содержанию командной строки не прокатят, заголовка может не быть вовсе и могут быть много окон с пустыми заголовками. Блин :(

Решение:

LINUX-ORG-RU
()

ESR против Автолулзов

 , ,

Привет, ЛОР!

Известный борец за права свободного ПО и сексуальных меньшинств Eric S. Raymond выпустил версию 1.0 инструментария для избавления проектов от чудовища под названием Autotools – Autodafe.

Autodafe анализирует файлы configure.ac и Makefile.am и генерирует на их место компактный Makefile, плюс список для проверок. Автор обещает, что получившийся код работает куда быстрее, а главное подходит для чтения и модификации живым человеком, а не семируким трёхголовым гуманоидом с планеты Ананус.

Теперь-то автолулзам точно капец!

Ссылка: https://gitlab.com/esr/autodafe

hateyoufeel
()

Mein C̶D̶E̶ FVWM.

 , ,

После года работы в GNOME, решил переехать обратно в Fvwm, который периодически пользую еще года с 2007. В GNOME было все хорошо, но скучно, и периодически ломались какие-то расширения, а без расширений он не сьедобен. Ну и надо много мышевозить.

Итак, Fvwm c закосом под CDE. CDE всегда нравился, лет 15 назад была в зоне доступа машинка с соляркой, и она оставила самые приятные впечатления в плане интерфейса. Ну и имхо - старые рубленные интерфейсы лучше всего подходят для работы - они не отвлекают и не надоедают. Нет, глаза не текут, они текут от дефолта KDE5. Нативный CDE сейчас использовать немного тяжеловато, про NsCDE слышал, но я свой конфиг начал писать раньше, чем они появились, мне проще в своем разобраться, да и мне не нужно столько всего.

Скрин чуть постановочный, Seamonkey каждый день в работе не использую (а жаль, неплохой был браузер, были бы расширения хотя бы базовые и FirefoxSync - пользовался бы), на каждый день предпочитаю Firefox, audacious тоже не в ходу, предпочитаю mpd+ncmpcpp, xeyes также редко запускаю. Все остальное как есть. Xfce-terminal со шрифтом Fixedsys и xterm, Thunar, за кадром tmux, mutt, offlineimap, thunderbird, goldendict в качестве словарика, ну и мессенджеры разнообразные. Прикручены нужные кейбиндинги, так что пользоваться этим всем мне очень удобно. Все это крутится на ThinkPad X250. Немецкая локаль, потому что немецкий на вид и на слух гораздо более приятен, нежели английский.

P.S. Кажется, затея посадить GNOME на диету провалилась.

P.P.S. А как называется программа в правом верхнем углу?

Slack
()

Делаем машину времени с Btrfs

 , ,

Делаем машину времени с Btrfs

Btrfs – это файловая система с легковесными снапшотами, которая позволяет создать самую настоящую машину времени, делая снимки состояния файловой системы (снапшоты) и монтировать их на лету. Этой файловой системе скоро стукнет 16, а значит уже можно ее попробовать.

( читать дальше... )

rtxtxtrx
()

Записи докладов с C++Russia 2023

 

В преддверии конференции C++Russia 2024 организаторы выложили на YouTube записи докладов с прошлогодней C++Russia 2023. Публикация прошлогодних докладов началась месяца три назад но по одному докладу в неделю, а пару дней назад вроде как выложили вообще все.

На данный момент на канале конференции доступны следующие видео (если к докладу прилагались слайды, то рядом приведена и ссылка на PDF-ку):

Евгений Григорчук — GPU Driven Rendering Pipeline, или Как пишется графика в современных видеоиграх, PDF (jugru.team)

Юрий Грибов — Как правильно писать компараторы, PDF (jugru.team)

Илья Казаков — Кастомизируем ASIO, PDF (jugru.team)

Дмитрий Мельник — Безопасный компилятор: надежная оптимизация и улучшение защищенности кода, PDF (jugru.team)

Эрнест Асанов — Модель асинхронности в C++: теория и практика

Антон Сысоев — Dynamic Libraries for Bare Metal, PDF (jugru.team)

Илья Шишков — Что-то у меня тормозит: заглядываем внутрь С++ контейнеров, PDF (jugru.team)

Тот самый стендап от Павла Филонова на C++ Russia 2023

Дмитрий Ермолов — Roren — С++ фреймворк для описания пайплайнов распределенных вычислений, PDF (jugru.team)

Ростислав Михеев — Эффективное использование GPU на примере разработки игр, PDF (jugru.team)

Олег Сенин — Sizecoding: взгляд изнутри

Максим Кита — Техники оптимизации производительности, PDF (jugru.team)

Александр Еналдиев — C++ Experiments: The Battle Continues: Cpp2 vs Carbon, PDF (jugru.team)

Иван Смирнов — YsonStruct: дешевая сериализация иерархических JSON-структур, PDF (jugru.team)

Владимир Ситников — B-tree индексы в базах данных на примере SQLite и PostgreSQL

Артем Хорошев — Ускоряем синтез: от TensorRT до CUDA C++, PDF (jugru.team)

Аяз Салихов — Имплементируем класс tuple в 100 строк кода, PDF (jugru.team)

Ashot Vardanian — Advanced Linux Kernel Bypass Techniques in 2023

Егор Суворов — Санитайзеры и стандарт не спасут, PDF (jugru.team)

Александр Ганюхин — Машина состояний: непридуманная история

Rainer Grimm — Concurrency Patterns, PDF (jugru.team)

Денис Легезо — Злые фреймворки и генерируемый ими позиционно-независимый код, PDF (jugru.team)

Елена Веселовская — Как перейти от ученичества к работе, PDF (jugru.team)

Андрей Аксенов — Про алгоритмы в поисковых движках

Техническое интервью: Архитектурная секция

Сергей Ларин, Владислав Столяров — Как сделать фронтенд компилятора в домашних условиях, PDF (jugru.team)

Антон Потапов, Антон Малахов — Учим Кукушку Летать, или ConcurrentHashMap with Seqlocks, PDF (jugru.team)

Александр Фокин — Designing Robust APIs: C++ Code that’s Safe, Extensible, Efficient & Easy to Use, PDF (jugru.team)

Дмитрий Стародубцев, Ольга Кузьмичева — Практическое применение dev-контейнеров, PDF (jugru.team)

Степан Дятковский — Почти полноценный RTTI с контролируемым overhead, PDF (jugru.team)

Иван Афанасьев — Loop unrolling в деталях, PDF (jugru.team)

Александр Ляпунов — Максимально быстрый и максимально удобный С++ msgpack-кодек

Марсель Галимуллин — Back to Basics: Lock-free, PDF (jugru.team)

Алексей Степанов, Евгений Зуев — Исходный код: скрытое знание и как его показать?, PDF (jugru.team)

Павел Новиков — Про flat_map, PDF (jugru.team)

Антон Ласточкин — Мониторим FSM во встраиваемом ПО, PDF (jugru.team)

Александр Бычук — Производство ПО глазами разработчика и менеджера, PDF (jugru.team)

Константин Владимиров — Семантические процессы в C++

Александр Кирсанов — nocc — распределенный компилятор для гигантских проектов на C++, PDF (jugru.team)

Евгений Ерохин — Back Deep to Basics: Наследование и виртуальность в C++ (Часть 1), PDF (jugru.team)

Евгений Опарин — Опыт использования Bazel

Семен Буденков — С Conan за кроссплатформенностью, PDF (jugru.team)

Сергей Талантов — С++ и безопасность: правда ли все так плохо?, PDF (jugru.team)

Александр Боргардт — Колоночное хранилище в памяти: void* и шаблоны

Петр Советов — Автоматизация программирования в СССР. Трансляторы (60–70-е годы), PDF (jugru.team)

Александр Корнилов — Идея по улучшению многопоточного кода, PDF (jugru.team)

Александр Кухаренко — Демосцена: в погоне за wow-фактором, PDF (jugru.team)

Виктор Шампаров — Компилятор LCC и оптимизация слияния кода, PDF (jugru.team)

Евгений Зощук — Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году, PDF (jugru.team)

Михаил Лукин — Практика программирования тензорных ядер

Вадим Винник — Элементы функционального программирования в языке C++, PDF (jugru.team)

Антон Соснин — С++ в мемах, PDF (jugru.team)

Антон Полухин — C++ трюки из userver

Нужны ли профсоюзы в IT?

Тренды от HR

Интервью с Максимом Бабенко

PS. Практически все доклады перечислены в том порядке, в котором их мне показывает YouTube, никакой сортировки по какому-либо принципу здесь нет.

PPS. Сам ничего из этого не смотрел, никаких рекомендаций на тему «интересно/не интересно» дать не могу.

eao197
()

VMware Workstation Pro и Fusion Pro теперь бесплатны для личного пользования

 

VMware Workstation Pro и Fusion Pro теперь бесплатны для личного пользования
Группа Проприетарное ПО

VMware – крупнейший разработчик ПО для виртуализации и облачных вычислений.

В своём блоге они объявили, что с 13 мая 2024 года локальные гипервизоры Workstation Pro и Fusion Pro становятся бесплатными для личного пользования, а для коммерческого —потребуется платная подписка. Продукты Workstation Player и Fusion Player больше нельзя скачать как отдельные приложения, однако, они всё ещё будут поставляться вместе с их Pro-версиями.

( читать дальше... )

>>> Блог VMware (vmware.com)

MrCookie
()

SimCity в 2024 году

 , , ,

SimCity — игра в жанре градостроительный симулятор, разработанная Уиллом Райтом и компанией Maxis в 1989 году.

Немного истории. Это та самая игра, для которой было сделано исключение в обработке памяти в винде. Игра больше не работала после того, как была выпущена Windows 95. Microsoft не стали ждать патча от разработчиков, а сделали хак сами. В Microsoft был создан специальный костыль для ОС, который отслеживал запуск SimCity на компьютере. Если это происходило, Windows 95 изменяла работу распределителя памяти таким образом, чтобы симулятор не считывал освобождённую память. (То есть изменяла работу на то как это работало в DOS). Благодаря этому патч от разработчиков для решения данной ошибки, не потребовался.

В дальнейшем исходники игры были открыты и выложены разработчиком под именем Micropolis (поскольку Simcity является торговой маркой, а Micropolis было оригинальным именем данной игры) - Выложен исходный код SimCity для OLPC

Собирал так:

make -j1
То есть строго в 1 поток, иначе не соберется, код достаточно древний.

Список зависимостей такой:

bash-5.1$ ldd /usr/lib/micropolis/sim
        linux-vdso.so.1 (0x00007ffc20bd7000)
        libm.so.6 => /lib/libm.so.6 (0x00007f1fc8e2e000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f1fc8cea000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f1fc8cd5000)
        libXpm.so.4 => /usr/lib/libXpm.so.4 (0x00007f1fc8cc2000)
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x00007f1fc8c2a000)
        libSDL_mixer-1.2.so.0 => /usr/lib/libSDL_mixer-1.2.so.0 (0x00007f1fc8bd9000)
        libc.so.6 => /lib/libc.so.6 (0x00007f1fc89f6000)
        /lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007f1fc903f000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f1fc89cb000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f1fc89c6000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f1fc89be000)

Собирал отсюда — git://git.zerfleddert.de/micropolis

Суть в том что если просто взять и запустить после сборки, то игра подменит шрифты на свои. То есть игра использует свой собственный fonts.alias и fonts.dir со своим собственным набором шрифтов. То есть после запуска игры все шрифты поменяются на шрифты игры собственно.

Для того чтобы этого избежать, были заменены fonts.alias и fonts.dir игры на те что взяты из текущей настройки системы. То есть фактически замена шрифтов все равно происходит, но поскольку замена идет на ту же конфигурацию, то это незаметно для глаза.

vbcnthfkmnth123
()

ResearchGate - как зарегистрироваться?

 , ,

В общем, вопрос в заголовке.

Там они настойчиво просят почту на домене какого-нибудь известного института и тому подобное, а я обычный птушник. Помню, лет 10 назад делал какие-то подобные финты через intuit.ru, но сейчас что-то не нашел там регистрации почты (может и не было)

ps: это соцсеть для «ученых» researchgate.net с их работами

admucher
()

Проприетарный дестктоп на QNX 6.5

 , ,

QNX 6.5 датируется 2010 годом, и система все еще развивается. Но начиная с 6.6, оболочка Photon считается deprecated и удалена из системы. Версии qnx7 и qnx8 в свободном доступе найти не удалось вовсе.

Установка полностью в текстовом режиме, не совсем интуитивная, но если читать все что пишет установщик (ну или нажимать всегда F1), то все проходит успешно. После установки система сразу предлагает настроить дисплей, все стандартно, кроме аппаратного/программного курсора, так и не понял в чем у них разница.

QNX --- безопасная система реального времени, потому предлагает не париться и работать под root.

А вот DHCP не отработал и пришлось вводить настройки сети руками. Из 8Gb RAM система видит только 3.5 (free и /proc/mem отсуствуют). При 4 выделенных ядрах CPU показывает только одно (/proc/cpuinfo отсутствует).

Панелька справа --- это что-то вроде панели быстрого запуска+ панель виджетов, Launch --- привычное каскадное меню «аля Start», окна сворачиваются на нижнюю панель.

Где брать сторонний софт, пока не искал, но QNX --- это же SDP и пользователь должен сам написать себе ПО. В комплекте замечены gcc, python2.5 и vi. Но из коробки идет Firefox 2.0 Bon Echo, можно почитать LOR.

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

Игори в комплекте: Аниме-Тетрис, Го, Солитер, Покер, Камушки.

Присутствуют средства удаленного подключения к другим QNX (к localhost подключаться отказалась, хотя в настройках разрешил подключения) и некое отладочное ПО для графического режима.

Выключать ПК следует самостоятельно.

В целом система интуитивно понятна, отзывчива и визуально выглядит более чем приемлемо. Пока оставлю, может найду что интересного можно на ней запустить.

Kolins
()

Удаление deb-пакетов с некорректными pre- и post-скриптами

 , ,

Иногда возникает ситуация (особенно на машине разработчика/мейнтейнера), когда deb-пакет нельзя ни корректно доустановить, ни удалить, поскольку сценарий prerm (postrm, preinst, postinst) содержит ошибки. Ключи в apt и dpkg, посвящённые сломанным пакетам (--force-remove-*, -f) тоже могут не помочь, поскольку в первую очередь разруливают битые зависимости между пакетами.

В этом случае эффективным может оказаться «лечение» на низком уровне. Наиболее радикальный метод предлагался на опеннете: просто зайти в /var/lib/dpkg/info и удалить все файлы package-name.*, после чего удалить упоминания о пакете из /var/lib/dpkg/status (подробности по ссылке). Однако в этом случае удалится лишь метаинформация о пакете, а вот хвосты в /usr, /etc и др. останутся, как отмечали в комментариях.

Мне помог похожий, но чуть более тонкий способ. Надо зафиксировать, какая именно ошибка возникает в сценарии и в каком именно сценарии (для корректного удаления в первую очередь нас интересуют .prerm и .postrm).

Далее мы заходим в /var/lib/dpkg/info и просто исправляем package-name.prerm или package-name.postrm так, чтобы он отработал корректно. Например, если в .prerm удалялся несуществующий каталог без проверки на его существование, стираем или комментируем команду удаления.

После этого, как обычно, сносим пакет средствами dpkg -r.

Перемещено hobbit из development

hobbit
()

Накидайте книг для продвинутого Си под онтопик

 ,

Сто лет назад прочитал K&R и всегда хватало, а если я хочу углУбить?

// друг спрашивает :)

UPD: собрал из темы списочек, особо не редактируя (экстримов и модернов поболее одного, но пусть будет) – думаю, заглянувшим в будущем будет полезно:

  • modern c by jens gustedt
  • Thomas Mailund - Pointers in C Programming (2021)
  • Gustedt - Modern C (2020)
  • Kalin - Modern C Up and Running (2022)
  • King - C Programming. A Modern Approach, 2nd ed. (2008)
  • Хэзфилд «Искусство программировани на C»
  • «Язык C в XXI веке»
  • Экстремальный Си
  • extreme c programming
  • «UNIX. Профессиональное программирование» Уильям Ричард Стивенс, Стивен А. Раго
  • C Interfaces and Implementations: Techniques for Creating Reusable Software
  • Peter van der Linden, Expert C Programming: Deep C Secrets https://progforperf.github.io/Expert_C_Programming.pdf
  • Чан Теренс «Системное программирование на С++ для Unix»
pihter
()

Gloire — ОС с ядром Ironclad, написанном на языке Ada

 , gloire, ironclad,

Gloire — ОС с ядром Ironclad, написанном  на языке Ada
Группа Open Source

Недавно на Github появился репозиторий операционной системы Gloire. Gloire использует ядро Ironclad, написанное на языке программирования Ada, и пользовательское окружение GNU. На сайте, посвященном Ironclad, написано что оно находится в процессе «формальной верификации».

( читать дальше... )

>>> Подробности (github.com)

watchcat382
()

Вышел симулятор электронных схем Qucs-S 24.1.0

 , , , ,

Группа Open Source

Сегодня, 16 февраля 2024 года, вышел релиз симулятора электронных схем Qucs-S 24.1.0 В качестве движка моделирования рекомендуется использовать открытый Ngspice: https://ngspice.sourceforge.io/

Начиная с этой версии, система нумерации версий переведена на CalVer. Теперь первая цифра означает год, вторая номер релиза в году, третья – номер патча.

( читать дальше... )

>>> Подробности (github.com)

DarthVadimius
()

Восстановление удалённых фото с NTFS. easyrecovery

 , ,

Доброе время суток. Задача: восстановить фото, удалённые (несколько месяцев назад) с ноутбука (которым с тех пор неактивно, но пользовались) под оффтопиком 10. photorec под линуксовым live-usb восстановил часть. Хотела попробовать easyrecovery, образ (для вин10) взяла отсюда, live-usb записала через приблуду от тех же авторов, однако эта, как оказалось, FreeBSD не грузится на целевом ноуте (Lenovo IdeaPad L340-15API, проц Ryzen 5 3500U 2.10 Ггц). В Safe Mode в лог валится:

uhub_reattach_port: could not allocate new device
usbf_setup_device_desc: getting device descriptor at addr 1 failed, USB_ERR_TIMEOUT
ahcich: Timeout on slot 0 port 0
ahcich0: AHCI reset: device found
ahcich0: SATA connect time=100us status=00000133
(aprobe0:ahcich0:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00
(aprobe0:ahcich0:0:0:0): CAM status: Command timeout
(aprobe0:ahcich5:0:0:0): Error 5, Retries exhausted
...

При этом на других ноутах запускается без проблем; замена флэшки, образ из других источников ничего не меняют. Биос у целевого ноута очень куцый, там фактически нечего включать/выключать. Нагуглить удалось только предложение указывать при загрузке set hint.ahci.0.msi="0", но и это (ни так, ни с добавлением префикса kFreeBSD.) ничего не изменило.

Вопросы такие:

  1. Что ещё можно сделать чтобы запустить изю на означенном ноуте?
  2. Может быть я зря мучаюсь, и в 2024-м есть какие-то более эффективные способы восстановить утраченные файлы (или убедиться, что это невозможно)?

Заранее благодарю за ответы.

Pepsi
()

FreeCAD — погружение и внедрение

 , , , ,

В середине уходящего года я захотел провести эксперимент: создать некую параметрическую систему, которая смогла бы облегчить, а может даже полностью заменить конструкторскую работу.

В целом, эксперимент оказался очень удачным, а FreeCAD – единственным, кто смог справиться с этой задачей и в чём-то даже превзойти мои ожидания… а перепробовал я многое.

Хочется поделиться впечатлениями :)

@AP, @DR_SL, @Aceler, @Zhbert, @Turbid

  • Плюсы, выборочно:

    • Полноценный Python, а значит и вся его экосистема.
    • Стабильность! Серьёзно, в сравнении с тем же SolidWorks он просто скала непоколебимая.
    • Удобство, скорость работы и так сказать – предсказуемость результата.
    • Много-много фишек, которых больше нигде не найти: link, clone, spreadsheet & configuration table, property и т. д.
  • Особенности:

    • Нет какого-то определённого вектора развития… хотя может это не есть проблема.
    • Topological naming problem – то, о чём все так много говорят меня вообще не напрягает в работе.
    • Отсутствие верстака для сборки – при параметрическом моделировании он более чем не нужен, лишние проблемы могут быть из-за привязок.
  • Из негативного:

    • В стандарте отсутствует верстак для работы с листовым металлом.
    • Обновления… многое (что идеально работало) сломали изменили в новых версиях, а потом ещё залезли в модуль SheetMetal и его сломали поменяли… но ладно, это скорее субъективное.

Для интересующихся есть долгое видео - YouTube

Noir
()

Ext4 гробит данные (в том числе в Debian Stable)

 , ,

Привет, ЛОР!

Тут модно ругать ZFS недавно было, но мы этот тренд изменим. В ядре 6.1.64 есть баг, из-за которого при некоторых условиях файловая система ext4 может терять данные. Баг исправлен в ядре 6.1.66, так что дебианщикам и всем остальным стоит обновиться. Баг также исправлен в ядрах 6.5 и новее.

Примечательно, что ядро с дефектом поставляется в том числе в дистрибутиве Debian Bookworm 12.3. Вот вам и стабильный дистрибутив без багов!

Тыц раз: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1057843

Тыц два: https://lore.kernel.org/stable/20231205122122.dfhhoaswsfscuhc3@quack3/

hateyoufeel
()

Повреждение данных в Ext4 под ядрами в ветке LTS-версий 6.1.X.

 , ,

Группа Linux General

Из-за проблемного патча, перенесенного обратно из Linux 6.5 в 6.1, вызывающего помехи между кодом Ext4 и iomap, существует вероятность повреждения данных в старых ядрах - особенно в последних точечных выпусках Linux 6.1 LTS, которые в настоящее время можно найти в таких дистрибутивах, как Debian 12.

В возможной ошибке повреждения данных файловой системы EXT4, которая встречается в подобных версиях Linux 6.1.64 и 6.1.55, обвиняют «тонкое взаимодействие» (subtle interaction) между iomap и Ext4. Новая версия Linux 6.1.66 уже исправляет выявленный баг.

>>> Подробности в рассылке разработчиков ядра. (kernel.org)

NeTC
()

Самая первая версия debian на qemu

 ,

Ну, собственно, первая версия Debian запущена из под QEMU 2.0 под Windows XP, которая работает из-под QEMU 7.2.7.

ne-vlezay
()

Emacs, VS Code, NeoVim, IntelliJ IDEA... and Emacs

 , , , ,

В названии, конечно, отсылка к фильму Spring, Summer, Fall, Winter… and Spring.

Обещал накатить вброс по Emacs, ибо как писали постом выше, народ заскучал. Речь идет о продолжении топика Жизнь после Emacs.

Вообще, суть моего мессенжа, пожалуй, точнее всего передает это короткое видео :).

Но если все же попытаться раскрыть суть чуть подробнее. Да, лучше Emacs пока никто ничего не придумал, хотя есть интересные попытки. Никакие элементы архаики, сохранившиеся в Emacs не могут преуменьшить те уникальные преимущества, которых больше нигде нет. Тут дело не в том, что в других редакторах/IDE они хуже или, скажем, они пока недоработанные. Их просто нет.

Итак, в продолжении темы предыдущей серии, я перешел на 1,5 года на VS Code.

Плюсы:

  1. Производительность UI, который рендерится на GPU.
  2. Производительность JavaScript (спасибо Electron/NodeJS/V8).
  3. Вменяемый API.

Минусы:

  1. Не keyboard-centric. Некоторые вещи вообще без мыши не сделать, что раздражает.
  2. Хотите переименовать текущий файл? Вам нужен плагин для этого! В Emacs это была бы просто небольшая функция - кинул в конфиг и всего делов. Тут же 8 плагинов, половина из них заброшена в 2015-м, другая половина помимо необходимой функции добавляет еще 100500 других. Доков нет, докстрингов нет, что кто-то другой будет открывать код плагина и в мыслях не было. Спасибо, если есть ридми, пусть и не обновляемая много лет, и уже не релевантная коду.
  3. Культура разработки. Вне официального кода от Microsoft ее нет (см. выше). Писать плагины на ClojureScript возможно, но не вполне натурально (как проба пера, например advanced-navigation-cljs). Да, есть еще joyride. API неплох, да, но многие вещи гвоздями прибиты и всего не настроишь.

Наверное, основной вопрос в плане конфигурации VS Code по сравнению с Emacs в том, что для Emacs можно было не особо переключаясь из контекста текущей деятельности быстренько перейти в .emacs, что-то там подправить и вернуться к основной задаче. В VS Code флоу совсем иной. Если ты вдруг понял, что тебе нужно что-то доконфигурировать, ты понимаешь, что либо на это нужно просто забить, либо мысленно сказать что-то вроде, «ну что ж, а теперь девочки и мальчики мы все бросаем и осваиваем/вспоминаем специальность «конфигуратор/плагинописатель» для VS Code», ибо быстренько что-то подхачить там не выйдет. Например, тебе дополнительно нужен инстанс среды для тестирования изменений плагина. Плагин дописывается, отлаживается и потом устанавливается в рабочую среду. Если же, ко всему прочему, это не твой плагин (что почти всегда), то нужно понимать, что вникать придется долго, ибо комментариев и докстрингов нет примерно никогда (за исключением собственно описания API от Microsoft).

При этом, всегда надеяться на то, что все будет «просто работать» нельзя. У меня например, после очередного обновления как-то отваливалась Calva (Clojure IDE) и edamagit (Magit for VSCode). Опять же, в Emacs у меня тоже были случаи, когда достаточно мейнстримовые плагины приходили с ошибками после очередного обновления. И в этой ситуации всегда можно быстренько это на лету починить, зарепортить багу или сразу прислать пулрек мейнтейнеру.

По итогу, решил попробовать NeoVim, ибо тоже в теории гибкая расширяемая среда, да и вообще, интересно и полезно из бочки вылезти, посмотреть, что в мире вимеров происходит.

Плюсы:

  1. Производительность UI, для чего делаются отдельно UI клиенты. Я по итогу выбрал neovim-qt
  2. Производительность Lua. Чуть хуже, чем JavaScript, но сильно лучше EmacsLisp. Впрочем, про производительность UI на относительно больших файлах будет ниже оговорка.
  3. Fennel - Lisp, работающий на Lua прекрасен. Это дает в чем-то схожий флоу конфигурации, что и в Emacs, когда поведение меняется на лету (см. подробнее: conjure)
  4. Сопоставимая с Emacs экосистема. Например, Magit (для Emacs), Edamagit (для VSCode) и NeoGit (для NeoVim) работают почти одинаково.

Минусы:

  1. Модальность. Для кого-то это плюс, я ее не люблю. Я настраивал конфигурацию без модальности. Но тут периодически натыкаешься на ограничение возможностей Vim по тонкой настройке.
  2. Менее удобная работа с Fennel, чем то, что предоставляет Emacs для EmacsLisp. На самом деле, они, конечно, не сопоставимы. Т.е. NeoVim не может быть такой же удобной IDE для Fennel как Emacs для EmacsLisp, уже по причине невозможности такой же интроспекции.
  3. Довольно причудливый API, многие вещи прибиты гвоздями еще со времен царя-гороха. Например, для некоторой функциональности нет полноценных функций, которые можно было бы вызвать через API, есть только хоткеи, т.е. приходится эмулировать их нажатие для вызова этих функций. Ситуация прежде всего в NeoVim постепенно меняется к лучшему, но до API Emacs пропасть неизмеримых размеров.

Но вот то, что реально заставило меня отказаться от пути использовать NeoVim и планомерно конфигурировать его в соответствии со своими предпочтениями, это то, что на больших файлах он стал повисать прям конкретно на десятки секунд. В Neovim Qt это очень сильно сказывалось. В Neovide лучше, но там нет антиалиасинга. А хотелось бы. В консольной версии аналогично. Отключил все плагины - ситуация не сильно поменялась. И максимальным шоком стало то, что Emacs с этим файлом спокойно работал. Подвисал, да, но на доли секунд.

Про Lapce и Helix, наверное, пока говорить рано, они довольно экспериментальные еще.

В общем, лучше Emacs пока никто ничего не придумал, хотя есть интересные попытки.

Kostafey
()