LINUX.ORG.RU

Сообщения hobbit

 

Опять NVIDIA в Манжаре (mhwd спас)

Привет, ЛОР.

Всё-таки, в ЛЮБЫХ роллинговых дистрибутивах надо обновляться почаще. Когда-то давным давно у меня так гента умерла.

На сей раз есть отмазка: где-то между двумя командировками механизм обновлений в манжаре лихорадило (про это и на ЛОРе писали), и в какой-то момент я на это забил. Теперь вот вчера дождался, что обновлений набралось на 8 гигов, и обновлятор работает.

Обновился. Выключился (глубокая ночь уже была). Сегодня запускаю – иксы не стартуют. Где-то раз в год у меня такое бывает, обычно решается запуском ядрышка постарше и выжиданием следующего обновления. На сей раз не помогло. Сел разбираться. Выхлоп dmesg сообщил мне, что из новейших дров 590.48.01 (кажется, так) мою 1030 выкинули, надо ставить 580xx. В репе 580xx при этом нет (интересно, откуда оно взяло эту версию), но есть 575xx. Попробовал поставить через pacman, предварительно вычистив последние nvidia-dkms и lib32-nvidia-utils. Вроде бы даже встало, но ни startx не работает, ни sddm через systemd не запускается.

Пришлось покурить матчасть и открыть для себя спасательный mhwd (да-да, 5 лет прожил на Манжаре, не зная про него, ну что же, это значит, всё это время он просто работал):

sudo mhwd -i pci video-nvidia-575xx

Команда бодро стартовала, отрапортовала, что получает пакеты… и задумалась минут на 10. Я уже совсем уверился, что она просто ничего не делает, прервал по Ctrl+C. При повторных запусках жалуется на невозможность блокировки БД. Ну значит, это я торопыжка криворукий.

По наитию переустановил пакет mhwd-db. Ещё раз запустил с ключом -i – ура, сообщения про невозможность блокировки нет. Думает. Переключился на соседнюю консоль, и в недрах /var/tmp со злорадством нашёл каталог с подгружающимися пакетами. Ну вот что им мешает при загрузке прогресс выводить, а? (Может, стоит им багрепорт написать?) Дождался окончания процесса. Пару раз передёрнул sddm через systemctl… и графика, наконец, заработала. На всё угрохал где-то пару часов, включая перерыв на ужин.

Мораль. Я вообще-то люблю десктопный линукс, иначе не сидел бы на нём. Но уже что-то хочется, чтобы такие вещи работали как-то… более автоматизированно, что ли. У системы ведь хватило соображалки вполне внятно, хоть и по-английски, сообщить мне через dmesg, что проблема в слишком новом драйвере. Может, можно продумать и какой-то механизм с предложением установки нужного драйвера? Понятно, что в общем случае он зависит от дистрибутива, ну так это решаемо, если API устаканен.

«…Пусть безумная идея, не решайте сгоряча…»

 , ,

hobbit
()

Механическая полноразмерная клавиатура с подсветкой для ПК

Привет, ЛОР.

На Яндекс.Мракете нашёл чудо под названием PANTEON T15 PRO RS HS.

Интересно, 1) (обязательно) будет ли там в линуксе подсветка и 2) (опционально) возможно ли её в линуксе настраивать? А то там фирменным софтом пугают, который, скорее всего, под винду…

Или какую другую модель порекомендуете? Собственно, RGB и программируемость для меня, возможно, излишние. Мне нужно, чтобы клавиши светились (для работы в темноте), чтобы клавиатура была механическая и полноразмерная. Но товаров попроще с таким сочетанием я не нахожу.

 , ,

hobbit
()

Ищу двумерный аналог OpenSCAD

Привет, ЛОР.

Для 3D есть такая замечательная штука как OpenSCAD. Где можно наколхозить программно, например, 5 цилиндров в цикле, раскрасить, трансформировать и всё это экспортировать.

А есть ли что-то аналогичное для двумерного рисования? Чтобы рисовать на скриптовом языке линии, круги, многоугольники, текстовые вставки, закрашивать всё это? Потом экспортировать в векторный (SVG) либо растровый (PNG) файл.

В принципе, в самом OpenSCAD 2D-примитивы имеются. Но вот как задать толщину обрамляющей линии для square, например, я так и не нашёл (да, подозреваю, что можно наложить два square через difference, но это уже лютый колхоз и натягивание филина на глобус, если мне нужно просто порисовать квадратики и линии).

С экспортом тоже проблема. Я нарисовал в опенскаде два разноцветных квадратика. Сохранил в SVG. Потом открываю что в gimp, что в inkscape – вожделенная плоская картинка есть, но информация о цвете потеряна. А «Экспорт в растр» из OpenSCAD вместо плоской картинки записывает в PNG вид на трёхмерную сцену (и я его не обвиняю, он, в общем-то, для другого делался).

В общем, ищется более подходящий инструмент.

В принципе, есть подозрение, что большая часть моих хотелок закрывается скриптингом, к примеру, на питоне (или другом скриптоЯП общего назначения). Если есть для него простейшая библиотека рисования, которая умеет не только на экран вывести, но и в файлик вывести (те же PNG и SVG, на крайняк обойдусь каким-то одним из них) – сойдёт, хоть это и менее удобно, чем специализированный инструмент. Есть такое (желательно с примерами)?

Обновление: всем спасибо за советы, остановился на PyCairo. Совет писать простой SVG вручную тоже интересен, там оказалось не так сложно, как я думал. Может, как-нибудь тоже пригодится.

 , , ,

hobbit
()

Чем посмотреть статистику пакетов по UDP-портам

Привет, ЛОР.

Есть набор сетевых программ, который для общения между собой может использовать UDP-порты из довольно широкого диапазона. Хочется как-то отследить это процесс: сколько портов они захватили, по каким реально шла передача и по каким сколько пакетов передано.

Гугл советует netstat либо ss. Но то ли я ключи неправильно подобрал, то ли хочу странного… Один вариант мне просто выдаёт список занятых портов без статистики. Другой выдаёт общую статистику UDP без разбивки по портам.

Посоветуйте, пожалуйста правильную утилиту с ключами.

В идеале хотелось бы видеть что-то типа того, что top выдаёт для процессов – только для сетевых портов. В реальном времени таблица: порт, кто на нём сидит, сколько по нему передано/принято. И чтобы можно было грабить корованы хоткеями сортировать по объёму, скорости и т.д. Неужели за полвека юниксостроения никто такого не написал?

В не совсем идеале подойдёт и слепок со статистикой на текущий момент. Который на стандартный вывод выводит опять-таки список портов, и сколько по каждому из них на данный момент передано/принято. Вот такое, подозреваю, точно должны были написать, только туповатый я неправильно ключи подобрал или программу не ту взял. Скрипт анализа слепков я и сам напишу, скриптом обещаю поделиться, если решение есть только такое :)

Есть идеи?

 , ,

hobbit
()

Как облегчить сохранение файлов из Андроид-приложений

Привет, ЛОР.

Есть ли какая-нибудь программа, добавляющая в меню «Поделиться» (насколько я понимаю, в Андроиде оно стандартизовано на уровне системы) пункт, позволяющий сохранить артефакт в произвольное место файловой системы, к которому у пользователя есть доступ?

Например, мне в Телеграм прислали PDF, я его хочу с минимумом нажатий сохранить на подключенную по OTG флешку. Сейчас это можно сделать через Total Commander, и он, к счастью, даже добавляет себя в это самое меню «Поделиться». Но всё равно довольно громоздко получается.

Гугл советует какую-то дичь: то сохранение в облака, то программу linkora, которая, как я понял, всё же несколько для другого. :) Возможно, я неправильно гуглил.

Линукс здесь, во-первых, при том, что Android это Linux, хоть и не GNU. А во-вторых, я надеюсь, что такая простая (по идее) утилита вполне может быть опенсорсной и находиться на F-Droid, например.

Обновлено: см. комментарий @rwunlr0

 ,

hobbit
()

Установка экзотического модуля ядра

Привет, ЛОР.

Отмазка. Тема в текущем виде балансирует на грани Development и Talks, но если, как я надеюсь, в ней будут внятные ответы, то появятся и технические подробности.

Вопрос в следующем. Мне нужно поставить драйвер, о существовании которого ядро линукса может не знать (но в целом о существовании этого класса устройств знает (*)). Драйвер поставляется в виде модуля ядра, вероятно, проприетарный (но это пока не точно). Нужно ли под это дело перекомпилировать само ядро или достаточно положить его в нужное место и скомандовать insmod/modprobe?

(*) Один из примеров (не единственный) интересующих меня устройств – платы видеозахвата.

 ,

hobbit
()

Ищу двухпанельный файловый менеджер на Qt

Привет, ЛОР.

Сабж. Интересует проект на чистой Qt/С++, без привязки к кедолибам, т.е. это не Double Commander, не Konqueror и не Krusader. Помнится, как-то я натыкался на этот проект, его написали на Qt4, потом кто-то форкнул под другим названием и кажется, перевёл на Qt5.

Но сейчас на том же гитхабе я нашёл только KamiCmd, его тоже потыкаю, но кажется, это всё же не он. Да, я в курсе, что последний коммит сделан 14 лет назад. :)

P.S. Интересуют именно классические двухпанельные ФМ с концепцией источника, приёмника и развитой системой горячих клавиш. Клоны Проводника, к которым присобачили вторую панель, не интересуют, такое и в Dolphin есть.

 ,

hobbit
()

Посоветуйте бюджетного регистратора

Привет, ЛОР.

Ру-центр в последние несколько лет стал отличаться в первую очередь совсем уж конским ценником. Основной домен я оттуда выводить вряд ли буду, но вот что-то новое там регистрировать совсем неохота.

Какого регистратора можете посоветовать, если понадобится завести домен (желательно в .org или .io, но возможны варианты) для сайта заведомо некоммерческого небольшого технического проекта?

Цена – чем дешевле, тем лучше. Варианты с халявой тоже рассматриваю, если там не придётся 20 раз приседать а-ля «Dear PVS Studio».

География не особо важна, но принципиально важна безгеморройная оплата из России. С криптой связываться неохота, с маскировкой своего географического положения тоже.

Обновление: всем спасибо, выбрал Beget. В гугле не забанен, но в силу не слишком большого опыта (кроме ру-центра, дел особо больше ни с кем и не имел) могу не отличить маркетинговые обещания и проплаченные обзоры от реальной экономии. Поэтому ЛОРовцам с опытом поверю больше, чем гуглу. :)

 ,

hobbit
()

Отключили EnableAUR

Привет, ЛОР.

Мне перед отпуском в манжару прилетел новый pamac.conf.pacnew, но руки до него дошли только сейчас. В основном, мелочь, но я заметил, что EnableAUR закомментирован.

Кто знает, почему?

 ,

hobbit
()

Аппаратные текстовые процессоры

Привет, ЛОР.

Все мы знаем, что певец Льда и Пламени Джордж Мартин пишет свои романы в WordStar 4.0 для MS-DOS, а классик киберпанка Нил Стивенсон (написавший, помимо прочего, книгу «В начале была командная строка») – так вообще в GNU Emacs.

Но оказывается, бывает ещё круче. Я тут зашёл на Википедию почитать библиографию Кобо нашего Абэ и набрёл на следующее:

Абэ был первым японским писателем, который стал сочинять свои произведения, набирая их в аппаратном текстовом процессоре (начиная с 1984 года). Абэ пользовался продуктами фирмы NEC модели «NWP-10N» и «Бунго» (яп. 文豪).

К сожалению, ни Гугл, ни Яндекс ничего внятного про NWP-10N не говорят, почти все содержательные ссылки ведут на тексты, посвящённые биографии Кобо Абэ.

…Ну и понятно, что с массовым развитием ПК подобная продукция сошла на нет…

А если пофантазировать? Я бы вот не отказался от электронной записной книжки в формате нетбука. Аппаратная клава и экран. Заманчиво выглядело бы с экраном e-Ink, но они слишком тормозные, по крайней мере, недавно такими были.

И оснастить всё это дело операционкой, которая грузится за 2-3 секунды. Появилось вдохновение – включил и начал строчить. Пора прерваться – сохранил и выключил.Либо сильно оптимизированный линукс, либо вообще какой-нибудь EmBox. Кроме редактора, можно добавить ещё пару-тройку приложений типа органайзера, но не в ущерб быстродействию. Полноценная многозадачность и многооконность не нужна, вполне устроит переключение задач по типу PalmOS.

Wi-Fi желателен, но не обязателен, меня бы вполне устроило, чтобы оно подключалось по проводу по UMS как обычная флешка (и режим хоста как альтернатива). Впрочем, сильно возражать не буду если и с вайфаем, он просто слишком много технологий за собой потянет, как аппаратных, так и программных.

Скажите, я чего-то совсем нереального хочу?

P.S. Да, разумеется, это уже не аппаратный текстовый процессор, а аппаратно-программный. Но я про применяемость, а не про то, что под капотом.

 , ,

hobbit
()

Ищу роутер для самостоятельной установки OpenWrt в 2025 году

Привет, ЛОР.

Что из доступного в российских магазинах посоветуете? Чтобы гарантированно ставился ванильный OpenWrt (самостоятельно, не ограничиваясь прошивкой от поставщика роутера).

Из прочих требований:

  • LAN - не менее 4 портов;
  • WAN - щобы был (хотя мне кто-то говорил, что с OpenWrt можно любой порт назначить WAN-ом, не знаю, правда ли, матчасть ещё не курил, но обязательно буду);
  • Wi-Fi - специальных требований нет, но наличие требуется.

Наткнулся на статью на хабре прошлого года, но перечисленных в ней моделей в продаже уже не вижу.

Личный опыт по прошивке рекомендованной вами модели КАТЕГОРИЧЕСКИ ПРИВЕТСТВУЕТСЯ.

 , ,

hobbit
()

Стиль отображения в Roundcube

Привет, ЛОР.

Недавно я перенёс свою почту на другой VDS. Сказать, что новый вид Roundcube мне сильно не понравился – ничего не сказать.

Ну ладно. Решил посмотреть, можно ли его как-то потюнить. Во всех руководствах написано, что Roundcube поддерживает разные стили оформления, и даже на официальной странице со скриншотами есть примеры, тема Larry сильно напоминает старую и меня бы вполне устроила…

Но почему-то у меня в настройках такого не наблюдается. По идее это должно быть Settings -> Preferences -> User interface. Но я там наблюдаю только выбор языка и несколько галочек («Pretty dates» я, разумеется, тут же злобно отключил, на мой взгляд, все эти «пн» вместо даты и времени совсем не Pretty).

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

ii  roundcube                        1.6.9-70-deb11                        all          skinnable AJAX based webmail solution for IMAP servers - metapackage
ii  roundcube-core                   1.6.9-70-deb11                        all          skinnable AJAX based webmail solution for IMAP servers
ii  roundcube-mysql                  1.6.9-70-deb11                        all          metapackage providing MySQL dependencies for RoundCube
ii  roundcube-plugins                1.6.9-70-deb11                        all          skinnable AJAX based webmail solution for IMAP servers - plugins
ii  roundcube-plugins-extra          1.4.10+1-3                            all          skinnable AJAX based webmail solution - extra plugins

Все пакеты, кроме последнего, были предустановлены на VDS. Последний я сам поставил с горя (разумеется, из репы, через apt-get), но это не помогло (и номер версии намекает, что с ним не всё так просто).

Куда копать?

P.S. додумался сделать обновление системы из реп, перегрузил сервер. Roundcube минорно обновился до 1.6.9-79, но моей беде это не помогло…

P.P.S. Оказалось, у меня сборка Roundcube от ispmanager. Что с этим делать, пока не решил, второй переезд подряд затевать сразу как-то неохота. Интересно, параллельно с ней «ванильный» поставить получится?..

 ,

hobbit
()

Сюрпризы сборки Qt 5.15 на GCC 15 (Qt5 EOL Official Edition посвящается...)

Привет, ЛОР.

Пытаюсь собрать Qt 5.15.4 с GCC 15.1.1. Часть граблей знакомые, обошёл. Но выявились новые. Причём ругань не на сам кутешный файл, а на заголовочник из ICU, который у меня в системе стоит. Вызывает его подпроект в qtlocation/src/3rdparty/mapbox-gl-native.

Текст ошибки (даже двух, но вторая, вероятно, наведённая):

/usr/include/unicode/localpointer.h:561:26: ошибка: «auto» параметр недопустим в данном контексте
  561 | template <typename Type, auto closeFunction>
      |                          ^~~~
/usr/include/unicode/localpointer.h:573:76: ошибка: некорректный аргумент шаблона 2 [-Wtemplate-body]
  573 |     explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p)

Кусок самого localpointer.h:

template <typename Type, auto closeFunction>
class LocalOpenPointer : public LocalPointerBase<Type> {
    using LocalPointerBase<Type>::ptr;
public:

Подозреваю, конечно, что компилятор шарашит по либо слишком старому, либо слишком новому стандарту C++. В файле mapbox-gl-native.pro на себя обращают внимание строки

CONFIG += qt c++14 exceptions warn_off staticlib object_parallel_to_source
CONFIG -= c++1z

А рядом лежит свеженький Makefile, который qmake из этого проекта сгенерировала, и там в переменной CXXFLAGS присутствует -std=c++1y.

Как связать концы этого клубка?

 , ,

hobbit
()

Запуск sberbankPDF2Excel.py в Linux: благодарность micronekodesu и ещё раз о Питоне

Привет, ЛОР.

С некоторых пор Сбербанк-онлайн выпилил «физикам» возможность сохранения выписок в структурированных форматах, оставил только PDF. Разработчик, публикующийся на Гитхабе под именем Ev2geny, создал программу на Питоне, конвертирующую этот PDF в форматы xlsx и csv. К сожалению, внятную сборку он сделал только для Windows, а инструкция по запуску под линуксом у меня не заработала.

К счастью, @micronekodesu откликнулся на мою проблему и написал мини-инструкцию по запуску sberbankPDF2Excel.py в виртуальном окружении. Я её протестировал – работает, в CSV сохраняет.

Однако на вопрос по ссылке (заданный в контексте дискуссии о лучшем способе распространения программ на Питоне)

просто из-за того что я питоняша у меня не возникает проблем?

Мой ответ – «видимо, да». Я бы без инструкции долго блуждал в трёх соснах. И мне кажется, что сишную программу, запакованную в AppImage, запустить реально проще, чем вот это вот. Не только для «простого пользователя», но и для продвинутого.

Ещё раз спасибо @micronekodesu! Ну и автору программы, конечно, хотя я не уверен, что он читает ЛОР.

P.S. Та тема уже в архиве и отвечать там нельзя. Иначе я бы просто оставил там комментарий. С другой стороны, я уверен, что я не единственный линуксоид, пользующийся Сбербанком, поэтому дополнительный пиар способу обхода его закидонов :) не помешает.

P.P.S Под firefox Сбербанк-онлайн создаёт битые PDF. Под chromium всё прекрасно работает. Это замечание, конечно, уже не по тематике нашего форума, хотя… как мы радовались когда-то, что монополии IE пришёл конец… Эхъ…

 , ,

hobbit
()

Потыкайте мой AppImage, пожалуйста

Привет, ЛОР.

Вооружившись appimagetool и башем, я склепал AppImage для DoubleContact с условным номером версии 0.2.5beta2. Собирал под Ubuntu 18.04, по идее на практически любом x86_64-дистрибутиве моложе 7 лет должно работать. Кому интересен мой проект – просьба потыкать и отписаться, что за дистрибутив и каков результат. В отличие от предыдущей статической сборки, рут не требуется.

Не получилось добавить в программу Appstream. Проблема очень похожа на описанную в крике души по ссылке: сначала она предупреждает, что Id должен быть в формате обратного доменного имени, когда я делаю его таким, склоняет переименовать сам файл, когда я это делаю, не видит файл метаданных вообще. Если кто-то знает, что с этим делать – добро пожаловать в комментарии. Но на работоспособность самой программы это не влияет, только на предупреждение при вызове appimagetool.

Скачать с гитхаба

Основная тема по DoubleContact

 ,

hobbit
()

Можно ли определить (хотя бы примерно) искажённый байт в JPEG?

Привет, ЛОР.

Возникла нетривиальная задачка уровня «шлакоблокунь». :) Есть кучка JPEG-файлов, вытащенных из MJPEG-потока с довольно большим количеством битых участков. Оригинальный поток тоже имеется и связать позиции файлов с позицией потока я могу. Нужно определить закономерность, с которой возникают сбои.

Со сбоями в растровых изображениях я сталкиваюсь не в первый раз, даже написал простенький алгоритм, который на раскодированном битмапе считает разности цветовых компонентов и определяет строку, с которой начался искажённый фрагмент. Немножко усложнив алгоритм, можно и пиксель определить (хотя там уже есть нюансы). Так вот, а получится ли, зная X и Y, определить, какой байт в JPEG-е виновен в его подтверждении?

На самом деле да, я понимаю, что этих байт может быть несколько, поскольку JPEG собирается из нескольких таблиц. Но если на выходе у меня будут несколько «подозреваемых», это тоже поможет сложить пазл.

Битые байты, разумеется, могут попадать не только на «количественные» поля. Но если в сигнатуре «JFIF» или «AVI1» вместо I будет Q или что-то вообще нечитаемое – тут сразу понятно, кто виноват. Если в таблице смещений попадётся смещение, выкидывающее за пределы файла – тоже. К сожалению, не все искажения такие легко определяемые.

Уже вижу, как мне пишут про проблему XY. Да, методически я занимаюсь не совсем правильными вещами, надо искать сам источник искажений. Но доступ к нему у меня не слишком регулярный, а вот анализ потока помог бы понять, периодические эти искажения или нет? И если да, то с каким периодом? Байты только искажаются или добавляются/пропадают? В зависимости от этого уже можно определиться, кого пинать – канал связи, сервисы, через которые этот поток проходил до меня и др.

 , ,

hobbit
()

Как правильно включить поддержку ICU в SQLite

Привет, ЛОР.

Столкнулся с тем, что в SQLite не работают upper() и прочие регистрозависимые строковые функции для нелатинских символов. Долго искал, думал, я дурак, но оказывается, это поведение по умолчанию, давным-давно и много где описанное.

Почитал. В статье на Хабре предлагают либо пересобирать SQLite с включённым SQLITE_ENABLE_ICU, либо загрузить расширение. Ну, думаю, пересобрать и захламить систему я всегда успею, давай попробуем сначала второй путь.

Ссылка из статьи не работает, но в актуальных исходниках SQLite искомый icu.c находится без труда. Качаю. Собираю. Получаю libsqliteicu.so. Гружу его из SQLite CLI – LIKE и upper() начинают прекрасно работать.

Теперь пытаюсь подгрузить это в своей кутешной программе. Сначала вызываю sqlite3_enable_load_extension(), потом sqlite3_load_extension(). Первое проходит успешно, во втором получаю ошибку:

/usr/lib/libsqliteicu.so: undefined symbol: sqlite3_sqliteicu_init

Лезу в исходник: там вместо указанной присутствует функция sqlite3_icu_init(). Ну, хитрожопый я, конечно же, попробовал её переименовать. Добился только того, что текст ошибки поменялся на «error during initialization:».

По совету @utf8nowhere стал указывать другое имя точки входа третьим параметром sqlite3_load_extension() – тот же самый error during. Двоеточие намекает, конечно, что у ошибки должна быть дополнительная расшифровка, но где её искать, не очень понятно.

Подобного рода разночтения, конечно, первым делом наводят на мысль о несовместимости версий. Начинаю потрошить кутешный драйвер БД. Иду в /usr/lib/qt/plugins/sqldrivers (у меня он соответствует Qt5) и делаю ldd libqsqlite.so. Получаю, в числе прочего:

libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x0000728bea28f000)

В свою очередь, libsqlite3.so.0 является симлинком для libsqlite3.so.3.49.1. То есть «библиотечная» SQLite той же версии, что и sqlite3 CLI. Но во втором загрузка расширения работает, а в первой нет.

Куда копать? Можно, конечно, вернуться к варианту с пересборкой, но там свои вопросы будут…

P.S. Попробовал вариант с пересборкой, теперь кутешный драйвер верещит «Driver not loaded», а это может означать что угодно…

Обновление: как выяснил @utf8nowhere, загрузка расширения не работает, если есть открытые запросы к БД. Необходимо либо вызвать у них метод finish(), либо проследить, чтобы соответствующие объекты завершили работу (вызван деструктор).

 , ,

hobbit
()

В mcedit сломались неюникодные кодировки

Привет, ЛОР.

С обновлением системы прилетел mc 4.8.33. И при попытке отредактировать файлы в кодировках, отличных от UTF-8, часть заглавных букв в mcedit начинает отображаться точками. Грешил на шрифт – но mcview тот же самый текст отображает нормально, проблема именно при редактировании, когда я начинаю переключаться между кодировками в mcedit по Alt+E.

К примеру, в koi8-r сбивается отображение заглавных букв с А по П, в cp1251 – с А по О.

Скорее всего, придётся засучить рукава и написать в багтрекер, но прежде чем этим заниматься, я хочу понять, есть ли такая проблема у кого-нибудь на ЛОРе, и вообще, проблема ли это самого mc или какой-нибудь используемой библиотек.

Система Manjaro KDE с актуальными обновлениями, mc запускается из konsole. Шрифт – Terminus 12 (но как я уже сказал, mcview он нормально работать из той же konsole не мешает).

P.S. Я обычно не модерирую темы, которые сам создаю. Но если кто-то очень захочет подкинуть флуда на тему «азаза, какие ещё неюникодные кодировки в 2025 году» – буду сносить не глядя, по 17 пункту. Если вам лично не нужно – проходите мимо. А тут разговор про штатную и для многих очень удобную функцию mcedit.

 ,

hobbit
()

Manjaro затыкается на обновлении

Привет, ЛОР.

В отличие от истории двухлетней давности, графическая обновлялка, она же pamac-manager, обещает мне 7 ГБ обновлений. Даю добро, получаю:

не удалось удовлетворить зависимости:
- невозможно удовлетворить зависимость «libcap=2.71», необходимую для lib32-libcap
- невозможно удовлетворить зависимость «libffi=3.4.6», необходимую для lib32-libffi
- невозможно удовлетворить зависимость «pcre2=10.44», необходимую для lib32-pcre2
- невозможно удовлетворить зависимость «expat=2.6.4», необходимую для lib32-expat
- удаление qxlsx-qt6 нарушает зависимость «qxlsx-qt6», необходимую для stellarium

Библиотеки серьёзные, от lib32-expat, в частности, судя по выхлопу pactree -r, зависят steam и blender.

Ладно, запускаю sudo pacman -Syu:

 core is up to date
 extra is up to date
 community.db failed to download
ошибка: не удалось получить файл 'community.db' из mirror.truenetwork.ru : The requested URL returned error: 404
ошибка: не удалось получить файл 'community.db' из mirror.kamtv.ru : The requested URL returned error: 404
ошибка: failed to synchronize all databases (не удалось получить некоторые файлы)

После этого я уже начал искать в гугле упоминание проблем с community.db, и наткнувшись на эту тему, понял, что его просто объединили с extra.db.

В теме по ссылке много буков про то, как отредактировать /etc/pacman.conf разными редакторами, удалив оттуда секцию [community], но я просто-напросто обнаружил у себя в /etc файл pacman.conf.pacnew, который специально для нас, козлов, подготовили на замену оригинальному. Вот интересно, он должен был сам заменить оригинальный, но что-то не сработало? Или это принципиально ручная операция? Ладно, переименовываю его, то же самое проделываю с pacman-mirrors.conf. Ругань поменялась, теперь козлом отпущения оказался stellarium. С болью в сердце удаляю его, запускаю pamac-manager… и обновление, наконец, пошло.

Закончится – отпишусь, мало ли, может, не я один такой.

 , ,

hobbit
()

Карта указателей, ссылок и for по диапазону

Привет, ЛОР.

Тут такая задачка возникла. Поступает на вход массив неких структур, которые в чём-то схожи, а в чём-то различны и обрабатывать их надо и как единое целое, и по типам (записи разных типов перемешаны). Чтобы не копировать данные туда-сюда и вообще не нарушать целостность, я подумал «а давай-ка сделаю три контейнера ссылок и пусть они ссылаются на оригинальные структуры». Важно: структуры в процессе обработки меняются, т.е. константными я их делать не могу.

Попробовал примерно так:

struct AnyS {
    int a, b, c;
};

std::list<AnyS> anyList;
std::map<int, AnyS&> refs0, refs1;

    AnyS any;
    any.a = 0;
    anyList.push_back(any);

    int i=0;
    for (AnyS& yaAny: anyList) {
        if (yaAny.a==0)
            refs0[i] = yaAny;
        // Тут м.б. рациональнее было бы сделать switch, но не суть, это демо
        i++;
    }

На строке с присвоением получаю ошибку

/usr/include/c++/11/tuple:1824: ошибка: value-initialization of reference type ‘AnyS&’

Т.е. оно пытается присваивать по значению, хотя я хотел явно противоположного, и у него это не получается.

А что самое смешное? А то, что если я отказываюсь от ссылок и работаю по старинке с указателями, то всё прекрасно работает! Примерно так:

// ...
std::map<int, AnyS*> refs0, refs1;
//...
    for (AnyS& yaAny: anyList) {
        if (yaAny.a==0)
            refs0[i] = &yaAny;
        i++;
    }

Но нельзя ли всё-таки как-то заставить работать вариант со ссылками? Они, типа, безопаснее, и красивее и вообще сейчас считается, что работа с указателями это фи.

Я, конечно, догадываюсь, что я как-то неправильно использую range-based for… но вот как правильно…

P.S. GCC 11.3.1, если это важно.

 , ,

hobbit
()

RSS подписка на новые темы