LINUX.ORG.RU

Сообщения hobbit

 

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

Форум — Development

Привет, ЛОР.

Столкнулся с тем, что в 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 сломались неюникодные кодировки

Форум — Desktop

Привет, ЛОР.

С обновлением системы прилетел 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 затыкается на обновлении ☑️

Форум — Desktop

Привет, ЛОР.

В отличие от истории двухлетней давности, графическая обновлялка, она же 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
()

ReactOS 0.4.15

Новости — Open Source
Группа Open Source

После долгого перерыва разработчики Windows-совместимой операционной системы ReactOS, исходные тексты которой доступны по лицензии GPL, выпустили версию 0.4.15.

В этом выпуске:

  • исправления Plug and Play;
  • исправления в аудиостеке;
  • исправления в управлении памятью;
  • улучшение работы реестра;
  • улучшения в работе системных утилит, включая Notepad, Paint, RAPPS и Input Method Editor.

ReactOS разрабатывается группой энтузиастов с 1998 года и по-прежнему находится в альфа-стадии.

>>> Подробности

 

hobbit
()

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

Форум — Development

Привет, ЛОР.

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

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

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
()

Хочу Live Flash с двумя разделами

Форум — Admin

Привет, ЛОР.

Я вот о чём задумался. Часто, загружаясь с лайва, надо иметь возможность что-то записать с компа на сменный носитель. Понятно, можно воткнуть две флешки в разные порты и смонтировать вторую руками.

А ведь, наверное, можно было бы сделать готовый лайв с двумя разделами: с одного грузится система, другой автомонтируется при входе как rw. И телодвижений меньше, и экономится один порт USB (ситуация, когда доступно только одно гнездо, не самая частая, но иногда бывает).

Интересно, такое кто-нибудь уже сделал?

 ,

hobbit
()

А как комфортно работать со строками в современном C++?

Форум — Development

Привет, ЛОР.

Старый добрый std::string, как мы знаем, это по сути char* на стероидах. А во многих случаях надо работать со строками именно как со строками текста.

К примеру, в библиотеке QtCore, входящей во фреймворк Qt, есть класс QString. Её часто ругают за изобретение велосипедов. Но именно благодаря этой «фабрике велосипедов» я могу написать, например, так:

QString s;
QStringList sl;
...
if (sl.contains(s, Qt::CaseInsensitive)) {
    ...
}

И оно мне проверит наличие строки в списке, причём регистронечувствительным (второй параметр) способом. И не только для латинских символов. То есть если в списке есть «Капибара», в строке подойдёт как «Капибара», так и «капибара». Ещё есть split(), join() и дофига полезного.

А как такое сделать без QtCore, на голом STL? В C++20 появился некий std::u8string, он мне поможет, например?

 , ,

hobbit
()

Линус Торвальдс пояснил свою позицию в отношении приёма изменений на Rust

Новости — Ядро Linux
Группа Ядро Linux

К обсуждению сопротивления мэйнтейнеров внедрению Rust в ядро подключился Линус Торвальдс, который пояснил, что никто не заставляет мэйнтейнеров изучать язык Rust, использовать код на Rust, или принимать во внимание наличие в ядре кода на Rust. Мэйнтейнеры могут спокойно продолжать работать только с кодом на Си и никак не пересекаться с Rust. Но подобные сопровождающие не могут и влиять на то, как развивается Rust в ядре, например, не могут вмешиваться в организацию внешнего взаимодействия Rust-кода с кодом их подистемы.

Линус раскритиковал действия Кристофа Хелвига, мэйнтейнера подсистем DMA, KVM, Slab Allocator и архитектуры PowerPC. По мнению Линуса, Кристоф превысил свои полномочия и попытался повлиять на код, который не затрагивал код подсистемы DMA, был реализован в отдельном подкаталоге и не влиял на код, за который отвечает Кристоф. Кристоф попытался контролировать то, для чего используется подсистема DMA, и его действия можно сравнить с попыткой запрета использования DMA в каком-то драйвере, лишь потому, что ему не понравился этот драйвер. Итог: несмотря на то, что сопровождающие отвечают за свой код, они не отвечают за то, кто и как использует результат работы этого кода.

>>> Письмо Линуса

>>> Подробности (OpenNet)

 ,

hobbit
()

Как распарсить версию ffmpeg из программы ☑️

Форум — Development

Привет, ЛОР.

Не секрет, что в библиотеках ffmpeg неоднократно ломали API. Поэтому важно проверять их версию на этапе компиляции.

В libavutil есть ffversion.h. Однако вместо понятных XXX_VER_MAJOR и XXX_VER_MINOR там определяется строка. Например, для старенького ffmpeg 3.2 написано:

#define FFMPEG_VERSION "3.2

А для более новых, так и вообще с буковками:

#define FFMPEG_VERSION "n4.4.5"

или

#define FFMPEG_VERSION "n7.1"

Как вы думаете, как в таких условиях написать #if для препроцессора, что код ниже действителен, например, для ffmpeg 4 и выше? Например, в совсем древних ffmpeg-ах была функция avcodec_register_all(), потом её выкинули, а потом выкинули и av_register_all(). И это только одна из «мутаций».

Обновление: всем спасибо за ответы, видимо, самый надёжный метод – проверять версию не FFMPEG в целом, а библиотек из его состава. Для этого соответствующие определения есть, см. комментарий ниже.

FFMPEG API changes log

 ,

hobbit
()

Фиксированное число знаков после запятой ☑️

Форум — Development

Проблема решена, дело было в моей невнимательности (см. ниже)

Привет, ЛОР.

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

В официальной доке SQLite написано:

The format(FORMAT,…) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library.

Но при этом в сишечке я могу написать:

    printf("%0.2f\n", 33.35);
    printf("%0.2f\n", 44.);

И первое число выведется как 33.35, а второе как 44.00. Такой результат меня устраивает, и что-то подобное я хотел получить в SQLite.

Авотфиг.

select format(magicnumber/100.00, '%0.2f') from magictable;

(где magicnumber имеет тип integer) возвращает результат с ОДНИМ нулём. Т.е. если magicnumber равен 3845, то всё в порядке, в выводе будет 38.45. А вот если он равен 4200, то вывод даст 42.0 (один нуль вместо двух).

Ради справедливости надо отметить, что эксперимент у меня не совсем чистый, я SQLite дёргаю через QtSql. Но поскольку результатом format() уже является строка, я полагаю, что на результат это влиять не должно. Совсем чистым экспериментом было бы написать тестовую программу на голом libsqlite3-dev, но боюсь, чем колхозить такой тест, я скорее плюну и сделаю форматирование не в SQL а уже на стороне плюсов, в своём наследнике QSqlQueryModel – там понятно, как это делать, и там всё работает.

Но хочется всё-таки попробовать на стороне SQL… Куда копать?

lib32-sqlite 3.47.2-1
sqlite 3.47.2-1

Обновление Спасибо, оказалось, я тупо перепутал местами аргументы функции.

 ,

hobbit
()

Можно ли задать компилятор при сборке через qmake?

Форум — Development

Привет, ЛОР.

Есть проект на основе qmake, который должен уметь собираться как в clang, так и в g++.

По умолчанию qmake генерирует Makefile для g++, в дебиане, на котором идёт сборка, оба компилятора присутствуют. При сборке в Qt Creator я могу выбрать «комплект» из версии Qt и компилятора. Это работает.

Но хотелось бы получить такую же гибкость и при сборке из командной строки. Версия Qt определяется самим запускаемым qmake, тут понятно. А вот как задать компилятор? Может, ключом qmake (я такого не нашёл, но возможно, плохо искал)? Или конфиг какой надо править?..

 , ,

hobbit
()

Драма со шрифтами из 2020 года: было ли продолжение?

Форум — Desktop

Наткнулся тут на тему из 2020 года «Библиотека Pango отказалась от мягкого сглаживания шрифтов (hintfull)». На опеннете тоже обсуждали.

Кто-нибудь следил за дальнейшем развитием темы? Чем кончилось? Мониторы с 1920x1080 надо закапывать или?..

 

hobbit
()

Как собрать сторонний Kotlin-проект для Андроида

Форум — Development

Привет, ЛОР.

На гитхабе есть программа Simple-Contacts. Написана на Котлине. Инструкция по сборке отсутствует. Ну или слепой я её не нашёл.

Насколько я понимаю, для сборки нужны как минимум gradle и компилятор самого Kotlin. Что ещё, какие-то библиотеки? Какие телодвижения надо предпринять, чтобы получить из этого APK-файл? Как узнать диапазон поддерживаемых версий Андроида?

 , ,

hobbit
()

Импорт файлов mbox в Thunderbird ☑️

Форум — Desktop

Привет, ЛОР.

Вчера понадобилось прочитать файл mbox от Roundcube на локальной машине. Ну я беззаботно запустил Thunderbird, сейчас, думаю, загружу.

Ищу и не нахожу. Адресные книги можно, календари можно, чужие профили от того же Thunderbird можно, даже зазипованные. А наистандартнейший юниксовый мейлбокс – хренушки.

Минут 20 с этим воевал, потом решил таки загуглить. И даже результат гуглинга правильно трактовал не сразу. Оказывается, чтобы в заслуженном и в целом очень хорошем почтовом клиенте в 2024 году прочитать mailbox-файл, формату которого фиг знает сколько лет, надо УСТАНАВЛИВАТЬ РАСШИРЕНИЕ.

У меня нет слов.

Впрочем, после того, как я это осознал, всё остальное прошло как по маслу. Для тех, кто будет прыгать по тем же граблям – расширение называется ImportExportTools NG (для сильно старых версий Thunderbird то же самое, но без NG), есть в базе addons.thunderbird.net.

Тему создал для тех, кто будет мучиться так же, как я, наивно полагая, что это элементарная встроенная функция.

 , , ,

hobbit
()

Статическая сборка Qt5 и шрифты ☑️

Форум — Development

Привет, ЛОР.

Я сейчас осваиваю статическую сборку Qt5 для линукса. (Для Windows я эту задачу решил давно, в линуксе лично меня устраивает Qt из репозиториев, но понятно, что для пользователей произвольного дистрибутива, хотя бы в рамках x86_64, нужна универсальная сборка.)

Сборку веду из тарболла qt-everywhere-src-5.12.12.tar.xz под старенькой Ubuntu 18.04. Почему именно 5.12, а не 5.15 – в 5.15 поменялись ключи для включения libxcb в сборку (если её не включать, Qt при запуске прикладной программы будет искать xcb-плагин и разумеется, обломается), и новые ключи у меня пока не заработали.

Кроме очевидного build-essential, я доустановил (как раз для xcb) пакеты libx11-*, libxcb-*, libxkbcommon-dev и libxkbcommon-x11-dev, а также (на будущее, для OpenSSL) libssl-dev. Из конфига исключены QtWebEngine, QML и openGL (но QML и openGL я планирую вернуть потом).

Мой текущий configure для Qt:

QTDIR=/opt/Qt/5.12.12.st

sudo mkdir -p ${QTDIR}

./configure -opensource -confirm-license -platform linux-g++ -static -release \
 -skip qtwebengine -no-opengl \
 -qt-xcb -I /usr/include/xcb/ -L /usr/lib/x86_64-linux/gnu/ \
 -qt-zlib -qt-libpng -qt-libjpeg -openssl-linked -nomake examples -prefix ${QTDIR}

Далее понятно, make и sudo make install. Сборка прошла успешно. Далее собираю с этим Qt DoubleContact (пришлось немного пропатчить исходники, чтобы алгоритм прицепливания встроенного в Qt zlib-а работал). Полученный бинарник я вытаскиваю из виртуалки на хост (Manjaro KDE), запускаю. Открывается окно с табличками без единого символа. При этом видно, что логика программы работает, окна вызываются (если помнишь, куда тыкать).

В konsole ругань следующая:

QFontDatabase: Cannot find font directory /opt/Qt/5.12.12.st/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.

Вопрос 1. Я правильно понимаю, что Qt именно в этом каталоге и собирается шрифты искать во время выполнения (судя по тому, что путь оказывается захардкожен в бинарник уже моей программы)? Если так, то это не то, что мне надо.

Исходя из этого предположения, я поискал другие пути. В принципе, через QFontDatabase::addApplicationFont() и QApplication::setFont() можно добавить любой нужный шрифт и даже добавить его в ресурсы программы. Программа при этом начинает показывать строки нормально… если ограничиваться одним шрифтом. Но у меня, например, в программе есть ещё и кутешный диалог выбора шрифтов для таблиц, и он при таком решении показывает только один шрифт – именно тот, который я добавил.

Вопрос 2. Можно ли как-то заставить программу искать шрифты уже в той системе, на которой он запускается? В том же QFontDatabase я вижу только методы добавления шрифтов по одному, я так понимаю, работе QFontDialog это не сильно поможет.

Вопрос 3. Формулировку «switch to fontconfig» я не очень понял, fontconfig – это ведь библиотека? И что мне с ней делать?

Интересно, что со статической сборкой под винду этой проблемы нет. Правда, виндовые сборки, которые я раньше распространял, основаны на более ранних версиях Qt (4.8 и 5.10).

Обновление. Проблема решилась по наводке анонимуса. Я поставил пакеты libfreetype6-dev и libfontconfig1-dev и в ./configure дополнительно к указанному выше написал:

-fontconfig -feature-freetype -system-freetype FREETYPE_INCDIR=/usr/include/freetype2

После этого при переносе бинарника со сборочной виртуалки на хостовую систему программа запускается с отображением текста без плясок с QFontDatabase. Диалог шрифтов для таблицы в настройках также отображает все доступные шрифты.

Отмечаю тему решённой. Но если у кого есть рабочий комплект ключей к Qt 5.15 (особенно в части libxcb) – будет интересно почитать и скорее всего, не только мне.

 ,

hobbit
()

Чёрный экран по выходе из кед ☑️

Форум — Desktop

Привет, ЛОР.

Система Manjaro KDE, кеды шестые, sddm, обновляюсь регулярно. Видеокарта нвидия 1030, драйвер блоб, сеанс X11.

Примерно неделю или две назад (точную дату не записал, к сожалению), началось. Загружаюсь, логинюсь через sddm, работаю. Потом хочу выключиться, перезагрузиться или выйти из сеанса, вместо экрана логина получаю чёрный экран и курсор на нём.

По описанию похоже на первый пункт отсюда, но у меня сама система при этом вполне работает, можно по Ctrl+Alt+F3 переключиться на консоль и перезапустить sddm через systemctl или просто перезагрузить операционку. Но хочется, чтобы при выходе из кед отображался экран sddm, как у людей. Тем более комп многопользовательский, жена и сын на нём тоже работают.

Пару дней назад обсуждали блокировку сайта нвидии для России, думаю, что это здесь не при чём, поскольку моя проблема началась раньше.

Куда копать?

Обновлено: Всем спасибо за советы, особенно @spal, @hargard. Судя по этому багрепорту, сломано восстановление сеансов (Session Restore), заявлено, что проблема решена в Плазме 6.2.0.

Временное решение для более ранних версий: для всех пользователей, которые запускают KDE на компьютере, нужно в настройках сессий (systemsettings / сессии или «Управление сеансами») поставить «Начинать с пустой сессии/сеанса».

 , , ,

hobbit
()

Пользователи Sylpheed, поделитесь, пожалуйста, файлом контактов

Форум — Desktop

Привет, ЛОР.

После недавнего обсуждения я решил добавить в DoubleContact поддержку CSV-файлов от Sylpheed и даже начал это делать. Только сейчас я в дороге, исходники взял, а контрольный файл от Sylpheed 3.7 нет. И Sylpheed ставить особо некуда, под рукой только древняя макось. Да и под макось предлагают сборку Sylpheed только 3.41, где CSV ещё не было. Мне сейчас проще всего этот вопрос отложить на несколько дней.

Но может, кто-нибудь придёт на помощь и сделает в Sylpheed CSV буквально на 3-4 контакта типа Иван Петров и John Doe? Желательно, чтоб хотя бы в одном контакте были заполнены все поля и хотя бы в одном – не менее 2 емейлов.

Поскольку CSV – текстовый файл, результат можнл выложить прямо в комментариях, оформив как код. Начинаться он, как я предполагаю, будет с заголовка, приведённого здесь. Если нет – это тоже интересно.

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

 , ,

hobbit
()

QSqlQueryModel, сортировка и фильтрация

Форум — Development

Привет, ЛОР.

Как целесообразнее прикручивать сортировку и фильтрацию к связке QTableView и QSqlQueryModel, если я собираюсь выводить информацию из таблиц SQLite и ориентировочное количество записей – от 40000 до 100000? Без сортировки на моём железе эта связка выводит 40 тыс. записей менее, чем за секунду, что меня вполне устраивает.

Справится ли с этим обычный QSortFilterProxyModel, вставленный между моделью и представлением, или он может «потонуть в данных» и целесообразно модифицировать SQL (колхозить в этом случае, конечно, придётся куда больше)? Или, может, для баз данных есть отдельное готовое решение? Можно, конечно, сказать «попробуй сам», но может, здесь есть люди с более богатым опытом? Вопросы быстродействия они ведь такие – на одной машине/системе может сработать по-одному, а на второй совсем по-другому, поэтому и хочется послушать форумчан, которые шишки, возможно, уже набивали.

Если руками вставлять допусловия в SQL, как сделать, чтобы работа была похожа на сортировку через прокси-модель, щелчками по заголовкам таблиц - это придётся колхозить самостоятельную обработку? Или есть готовое решение? Понятно, что можно отдельную формочку сделать, со списком критериев…

Кто-то на форуме, я смотрю, несколько лет назнад даже свои классы мастерил, правда, на вопросы отвечать не стал…

P.S. Если у кого-то по прочтении моего вопроса возникло дежавю, могу успокоить: это не дежавю. Точно такой же вопрос я задавал на prog.org.ru. И даже автор класса по ссылке там тоже когда-то отметился :))) с тем же результатом :)))

 , , ,

hobbit
()

SDDM запущен, но ничего не кажет (+ про nvidia, dkms и заголовочные файлы разных ядер) ☑️

Форум — Desktop

Привет, ЛОР.

Извиняюсь, если разметка поедет, я сейчас пишу из links и не могу проверить, как отправленное ОП будет выглядеть в графическом браузере. Впрочем, нет худа без добра, я наконец-то настроил шрифты и раскладку в /etc/vconsole.conf. :)

В общем, некоторое время назад у меня перестала грузиться система с любыми ядрами из линейки 6.*. Загрузка останавливается (ну по крайней мере, мне так казалось) со словами Finished TLP system startup/shutdown. Я отсиживался на стареньком ядро 5.4. Однако после последнего обновления оно таки сломалось и спамит сообщениями Failed to start Journal Service.

Решил чинить современное ядро (на данный момент это 6.2). Как оказалось, линукс-то у меня загрузился. По крайней мере, я могу нажатием Alt+F2 переключиться на соседнюю консоль, запускать mc и другие консольные программы. Стало быть, она просто графический сервер запустить не может.

В системе стоят 6-е кеды, запускались через sddm. Запускаю ps -A. SDDM висит в процессах. Запускаю sudo systemctl status sddm. Пишет active (running). Выгружаю SDDM, пишу руками по старинке startx. Отваливается с криками No screens found. Похоже на драйверопроблемы. Но с ядром 5.4 всё работало. Нвидия 1030, блоб.

Куда копать?

P.S. А что, Shift+PgUp в ядерной консоли таки починили? Вроде бы Линус это выкидывал в ядре 5.9 по соображениям безопасности…

 , ,

hobbit
()

МЦСТ раскрыл исходные коды компонентов Linux, системных библиотек и ПО для платформы «Эльбрус»

Новости — Hardware and Drivers
Группа Hardware and Drivers

Компания МЦСТ открыла веб-портал dev.mcst.ru для разработчиков ПО на платформе Эльбрус, где публикует исходные тексты и патчи.

На данный момент опубликованы:

  • исходный текст ядра Linux для архитектуры Эльбрус;
  • исходный текст библиотеки glibc для архитектуры Эльбрус;
  • набор патчей для оригинальных исходных текстов прикладных пакетов дистрибутива Эльбрус Линукс.

Также на портале доступны для скачивания учебные материалы и руководства для программистов, собраны ссылки на ресурсы и сообщества, посвященные тематике платформы Эльбрус. Через форму запроса можно подать заявку на получение удаленного доступа к серверам Эльбрус.

>>> Подробности

 , ,

hobbit
()

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