LINUX.ORG.RU

Форум

Активные теги:

 , , , , , , , , , , , , , ,

Qt5 to Qt6 проблемы

Форум — Development

Есть такой простенький класс - обертка для QProcess:

namespace Ui {
    class Proc;
}

class Proc : public QObject {
    Q_OBJECT

public:
    explicit Proc( QObject *parent=0 );
    virtual ~Proc();

private:
    QProcess        *process;

public:
    void        startProcess (QString binaryPath);
    void        sendCommand (QString command);

private slots:
    void        readFromProcess();
    void        errorFound(QProcess::ProcessError err);

signals:
    void        messageRecieved(QString);
    void        processFault(QProcess::ProcessError);
    void        processStarted();
    void        processFinished(int exitCode, QProcess::ExitStatus exitStatus);
};


Proc::Proc(QObject* parent) : QObject (parent) {
    process = new QProcess(this);
    process->setReadChannel(QProcess::StandardOutput);
    connect (process, SIGNAL(readyRead()), SLOT(readFromProcess()));
    connect (process, SIGNAL(errorOccurred(QProcess::ProcessError)), this, SLOT(errorFound(QProcess::ProcessError)));
    connect (process, SIGNAL(started()), SLOT(processStarted()));
    connect (process, SIGNAL(finished(int, QProcess::ExitStatus)), SLOT(processFinished(int, QProcess::ExitStatus)));
}

void Proc::startProcess (QString binaryPath){
    process->start(binaryPath);
}

void Proc::sendCommand (QString command){
    process->write(command.toLatin1());

}

void Proc::readFromProcess(){
    while (process->canReadLine()){
        QString line = QString::fromLatin1(process->readLine());
        emit messageRecieved(line);
    }
}

void Proc::errorFound(QProcess::ProcessError err){
    emit processFault(err);
}

void Proc::processStarted(){
    qDebug()<<"started";
}
void Proc::processFinished(int exitCode, QProcess::ExitStatus status){
    qDebug()<<"finished";
}

Proc::~Proc(){

}

Запускаю процесс xinput и жду выхлопа:

xinput = new Proc();
connect(xinput, SIGNAL(messageRecieved(QString)), this, SLOT(xinputRecieved(QString)));
xinput->startProcess("xinput --test-xi2 --root");


xinputRecieved(QString msg){
    qDebug()<<msg;
}
До сих пор это работало (на qt5), выхлоп xinput приходил в слот xinputRecieved и там я его парсил как мне нужно.

Сегодня обновилась система и qt5 больше нету, только qt6. И с qt6 выхлоп xinput не приходит. Более того, xinput в списке процессов top вообще отсутствует. Хотя слот processStarted пишет, что процесс стартанул. Слот processFinished при этом молчит.

Что такого поменялось в qt6, что процесс xinput стал вести себя таким образом? Сам xinput будучи запущен вручную в консоли исправно работает.

 , ,

Chord
()

В разделе Games нельзя выкладывать игры?

Форум — Talks

Собственно вопрос в названии темы.

AZJIO
()

Тут автор Дилберта умер

Форум — Talks

Молодое поколение наверное уже не знает, но раньше эти комиксы были популярны в окололинуксовой/«нердовой» среде, его даже включили в Geek Code (про него молодое поколение тоже не знает).

https://ru.wikipedia.org/wiki/Дилберт
https://www.perturb.org/images/1/dilbert-unix.png
https://en.wikipedia.org/wiki/Scott_Adams#Health_and_death.

 ,

pelmeshechka
()

Возможность добавления вложенных файлов к постингу.

Форум — Linux-org-ru

Почему нельзя? У всех давно есть. Будете добавлять?

 

jura12
()

Интерфейсы в ООП

Форум — Development

Введение: Объект != Класс

Тут народ путается с понятиями: интерфейс - переходник, класс - тип, объект - модуль («физическая» часть системы, класс это описание, объект это функционирующая сущность: Состояние+Методы). Многие вообще классы с объектами путают.

Под «физическим» понимается участвующий в работе, а не являющийся описанием. Разница как описанием типа Int, и реальными 32битами в RAM в которых хранится число. Объект это то, что «работает», а «класс» это описание того как данный «тип» должен работать.

Интерфейс: Прослойка между Объектами

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

  • «Модуль» как правило объект.
  • «Тип» как правило класс.

Пример: интерфейс Писатель используются для сохранения данных, а по этому интерфейсу данные могут передавать на сохранения в разные места: по сети, на диск, на принтер.

Пример из жизни: электрическая розетка/штепсель - передают энергию на разные устройтсва от разных источников: ГЭС, Генератор, ТЭЦ, Аккумулятор.

В Системной Дизайне Интерфейсы это «прокладки» через которые модули системы становятся отделяемыми и заменяемыми. Это уже не просто «тип-класса», а именно набор правил которым может соответствовать любой тип. Интерфейсы еще называют контрактами - т.е. наборами договоренностей которые должен соблюдать объект.

Заключение: Достаточно Объекта с Интерфейсом

В ЯП есть еще модули, миксины, лябды и прочее словеса которые затрудняют общее понимание системы как набора заменяемых модулей. Класс - это шаблон/тип по которому создаются объекты. Объект это «физический модуль», интерфейс - переходник по которому модули соединятся друг с другом. Вот и всё ООП.

ЭПИЛОГ

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

Убрали классы, убрали наследование, оставили Композицию/Агрегацию и Интерфейсы. Звучит сложно, на деле примитивно: представили программу как набор заменяемых «модулей» подключенных через интерфейсы.

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

Специально я не иду в детальное объяснение принципов проектирования и не пользуюсь словами вроде Dependency Injection. Цель статьи объяснить базовую идею OOD - Объектно Ориентированного Дизайна, того с чем мы сталкиваемся в быту на ежедневной основе: USB порт, крепление смесителя в ванной, приемник карточки в банкомате, диаметр горлышка пластиковой бутылки, габаритные размеры пакета с соком, высота полки в холодильнике, крышка на банке с соленьями, размер куска мыла - всё реализации концепции интерфейса. Каждый из этих объектов соответствует каким-то правилам, сохраняет контакт и делает элементы системы заменяемыми.

 , , , ,

lbvf50txt
()

Тайловый менеджер для GNOME

Форум — Desktop

Доброго дня! Решил однажды пощупать Hyperland, но по итогу понял, что сам DE еще сыроват (например нет тех же уведомлений из гуглокалендаря, только через костыли), однако идея тайлов очень зашла. Попробовал Tiling Shell, Forge и Pop Shell, в итоге на последнем и остановился. Но очень расстраивает, что переодически он все же сбоит (оставляет часть экрана пустой или уводит окно за пределы экрана). Подскажите, есть ли другие альтернативы для тайлинга на GNOME?

 , ,

RioBravo
()

Не было печали, но пришел glycin

Форум — Talks

Заметил, что моём файловом менеджере диалог «Свойства файла» стал открываться с задержкой в полсекунды.

Если запустить приложение с export G_MESSAGES_DEBUG=all, то в эти полсекунды имеем вот такую красоту на 360 строк: https://pastebin.com/G0ivjKnz

Если закомментировать вот эту строку то задержка исчезает. Можно считать, что причина локализована. Теперь это нужно как-то чинить.

Могу сказать спасибо Гному и всему опенсорцу за то, что не устают давать мне причины тренироваться в написании мультипоточного и асинхронного кода, чтобы уметь обходить тормоза во фреймфорках и библиотеках. И отдельное спасибо Расту, на котором собственно glycin и реализован.

Работаем дальше.

 , glycin, ,

wandrien
()

А это правда, что разработчики Gnome против кастомизации от слова совсем?

Форум — Talks

Где-то я нашел вот это. В этом посте даже видны признаки сочтения пользователей за умственно отсталых лиц с IQ ниже 60 единиц, в виде следующей цитаты (перевод Google):

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

Оказывается, тема может менять и название элемента на его родном языке, и его местоположение. И оказывается, в Android (в котором тысячи тем и оболочек, больше чем даже у Windows, Linux и MacOS вместе взятых) очень сложно пользоваться и разбираться. Там даже сортировка настроек настолько может отличаться… Действительно до шокирующих масштабов. Но люди живут и радуются жизни. А здесь кхм, такие странные посты. Хотя может это вообще фейк-карикатура, во что хочется все-таки верить.

 , , , ,

Govorilnik90
()

Наконец-то HAMR и CMR в свободной продаже по цене от $700 (880$ на Акихабаре)

Форум — Linux-hardware

Сабж и про Акихабару

Компания Seagate сообщила о начале глобальных поставок очень ёмких жёстких дисков серий Exos, SkyHawk AI и IronWolf Pro объёмом 32 Тбайт. Рекомендованная розничная цена модели SkyHawk AI объёмом 32 Тбайт составляет $699,99, модели Exos того же объёма — $729,99, а модель IronWolf Pro оценивается производителем в $849,99.

В качестве ключевых особенностей HDD SkyHawk AI 32TB производитель выделяет оптимизированную архитектуру записи CMR для систем сетевой видеорегистрации с поддержкой ИИ и приложений безопасности на периферии сети. Накопитель поддерживает до 10 000 часов записи и аналитики с нагрузкой, в три раза превышающей показатели стандартных видеонакопителей. HDD поставляется с утилитой мониторинга состояния SkyHawk Health Management. Для SkyHawk AI 32TB заявлены 5-летняя ограниченная гарантия и 3 года услуг по восстановлению данных.

Для IronWolf Pro объёмом 32 Тбайт заявляется производительность NAS корпоративного уровня с технологией записи CMR и прошивкой AgileArray для круглосуточной работы. Модель позиционируется как решение для профессионалов в области создания контента, малого и среднего бизнеса, а также локальных рабочих нагрузок ИИ. Жёсткий диск имеет рейтинг рабочей нагрузки 550 Тбайт в год. HDD поставляется с утилитой мониторинга IronWolf Health Management, получил 5-летнюю ограниченную гарантию и предлагает 3 года сервиса по восстановлению данных.

Для жёсткого диска Exos объёмом 32 Тбайт заявлены лучшие в отрасли показатели ёмкости и энергоэффективности для облачных и корпоративных центров обработки данных. Плотность размещения данных достигает 3 Тбайт на пластину. HDD разработан для нагрузок ИИ, больших данных и гипермасштабируемых рабочих сценариев. Накопитель на 90 % состоит из проверенных компонентов, обеспечивающих надёжную и долговременную работу, а также устойчивую эксплуатацию. На него предоставляется 5-летняя ограниченная гарантия.

 , , , ,

tiinn
()

«iptables -t nat -j LOG» работает на fedora, но не на ubuntu

Форум — Admin

Уже несколько дней «бьюсь головой в непробиваемую стену», пытаясь заставить iptables-таблицу NAT работать на ubuntu. Выяснил следующее - если:

  • Поставить в виртуалку чистый дистрибутив
  • Прописать sudo iptables -t nat -A PREROUTING -j LOG
  • Сделать nc -l 1111 и nc <ip> 1111 с хоста и поотправлять сообщения

То в dmesg у ubuntu не появится ничего (что на 24.04, что на 22.04), но на fedora 43 сообщения о пакетах появляются. Хотя вроде как пакеты должны маршрутизироваться одинаково независимо от дистрибутива. Есть ли у кого-то догадки, почему это может так происходить, и как заставить ubuntu не игнорить таблицу nat? netcat нормально ловит сообщения на обоих

UPD: оказывается, таблица NAT в убунте не будет работать, пока в нее не добавлено хотя бы одно «настоящее» правило (типа -j REDIRECT). Добавить iptables -t NAT -A PREROUTING -j ACCEPT НЕ достаточно. В fedora это, видимо, пофиксили

 , ,

fox1432
()

Аналог doxygen для Java

Форум — Development

Сабж. Не для документирования (Javadoc тут отлично справляется), а для построения диаграмм классов и их связей. Что есть? Либо отдельное (без привязки к IDE), либо прибитое к Eclipse. Просто хочется кашу сложнозапутанную разгрести и понять что откуда и чем дёргается глобально в чужом проекте (судя по тому что я вижу там несколько версий древних API для совместимости висят ошмётками, а мне надо конкретно свежую версию API посмотреть что в неё входит). Можно конечно и doxygen взять (он Java поддерживает), но может что-то более заточенное есть для этих целей? Что именно для Java делали?

 , ,

peregrine
()

Линукс - отстой

Форум — Talks

Вот допустим у меня образ диска, сделанный dd if=/dev/sda if=image.img. А вот теперь, как в ваших хваленых Линуксах мне подмонтировать _раздел_ с этого образа, не разворачивая его? В Венде у меня есть программа PassMark OSF Mount. А у вас что? В тред приглашается vbr

 

lenin386
()

Не работает средняя кнопка в списке уведомлений

Форум — Linux-org-ru

Чтобы открывать новую страницу в новой вкладке в фоновом режиме. Работает Ctrl+клик, но это неудобно.

 

vbr
()

Винда отстой

Форум — Talks

Снёс линукс, решил установить заново. С винды скачал ISO. Через Rufus записал в DD режиме. Загружаюсь, делаю dd if=/dev/sda bs=2048 count=467733 | sha256sum, не совпадает. То бишь этот Rufus мне видимо вирусов насувал на диск, вместо того, чтобы байты копировать. Скачал balenaEtcher, с ним даже загрузиться не получилось. Чёрт-те-что. Во всей винде нет ни одной тулзы, которая тупо байты копирует. Такое ощущение, что надо самому брать MSVC и писать цикл. Дожили.

 

vbr
()

Хм, получается, подводная лодка без движущихся частей возможна?

Форум — Talks

Сабж

Несмотря на то, что долгое время гребной винт и его производные остаются главным элементом для перемещения водных судов, альтернативные варианты также разрабатываются. Одним из любопытных вариантов является магнитогидродинамический двигатель, который использует силу Лоренца для движения судна по воде, задействуя проводящую морскую воду в качестве рабочей среды. Первое и единственное судно с таким двигателем было построено в Японии.

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

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

Главный недостаток двигателя «Ямато-1» заключается в его низкой эффективности. Рабочий КПД установки составлял всего 15 %, а максимальная скорость движения, которую она позволяла развить, — около 15 км/ч. Хотя разработки в этом направлении не прекратились полностью, фундаментальная проблема заключается в том, что морская вода сама по себе не является идеальной рабочей средой. Это означает, что суда, подобные «Ямато-1», вероятно, так и останутся технологическими диковинками. При этом, несмотря на футуристичность данной технологии, построить собственный магнитогидродинамический двигатель достаточно просто даже в домашних условиях.

Даже, скорее, не лодка, а торпеда. Жидкий гелий сейчас легко заменить на азот и ВТСП. Ну, да, магнитное поле там будет пожиже, скорость пониже, поставить ёмкие аккумуляторы…

 , , , ,

tiinn
()

slskd и имена файлов при скачивании

Форум — General

Есть такой клиент Soulseek slskd. После Nicotine+ он, конечно, так себе, зато работает в контейнере. Но когда скачиваешь каталог он добавляет к имени файла «_012345678901234567», т.е. нижнее подчёркивание и ещё 18 цифр.
Как сделать, чтоб slskd так не делал?

 , nicotine+, slskd,

Ololo_Trololo
()

sata/sas бэкплейны с возможностью «выключать» диски по питанию

Форум — Linux-hardware

Скопилось у меня условная куча 1Tb дисков. Много, выкидывать жалко, планирую использовать под бэкапы.

Я найду к ним блок питания, но только один и по мощности он все диски сразу точно не вытянет.

Идея - «включать» диски по запросу и выключать когда они не нужны.
Но т.к. блок питания все диски точно не вытянет, то это должно работать ещё до загрузки системы (т.е. все диски выключены по умолчанию)

Собственно вопросы:

  • А такое есть вообще? jbod вроде это как-то делают, может там просто соотв контроллер для этого, и может такое есть и вне jbod? (модельки/названия, я бегло не нагуглил)
  • А если нету, то насколько допустимо/сложно будет сколхозить скажем микроконтроллер с релешками в разрыв линий питания?

Кто что посоветует кроме «больше блоков питания/компьютеров/удалённое включение ПК»?

 , ,

Flotsky
()

python script

Форум — Development

есть python скрипт func.py

в нём 3 функций

func1 func2 func3

Какой будет строка http запроса к функций этого скрипта?

 , ,

antonio-an
()

А может я изначально неправильно начинал знакомство с Linux...

Форум — Talks

Что там сейчас с KDE? Не поздно ли надеть сейчас кеды и встать на сторону QT? Или уже слишком староват стал для освоения чего-либо с нуля (все-таки с 2004 года на гноме до 2017 это слишком много)?

 , , , ,

Govorilnik90
()

Работа ST31000340AS в режиме 1.5 Gb/s

Форум — Linux-hardware

Подключил старый диск ST31000340AS, но чтение идет только на скорости ~50Mb/s, ожидал на 100Mb/s. Кабель и порт подключения менять пробовал.

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.11
Device Model:     ST31000340AS
Firmware Version: SD1A
User Capacity:    1 000 204 886 016 bytes [1,00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 1.5 Gb/s
Local Time is:    Mon Jan 12 16:06:15 2026 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

в dmesg есть такие строки:

[    4.113123] ata3.00: ACPI cmd f5/00:00:00:00:00:00(SECURITY FREEZE LOCK) filtered out
[    4.137351] ata3.00: ACPI cmd b1/c1:00:00:00:00:00(DEVICE CONFIGURATION OVERLAY) filtered out
[    4.238467] ata3.00: ATA-8: ST31000340AS, SD1A, max UDMA/133
[    4.277742] ata3.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32)
[    4.447730] ata3.00: ACPI cmd f5/00:00:00:00:00:00(SECURITY FREEZE LOCK) filtered out
[    4.447734] ata3.00: ACPI cmd b1/c1:00:00:00:00:00(DEVICE CONFIGURATION OVERLAY) filtered out
[    4.566347] ata3.00: configured for UDMA/133

Вроде он должен уметь работать быстрее, не ?

 sata speed

x905
()

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