LINUX.ORG.RU

Сообщения Xintrea

 

Посоветуйте монитор 1920x1200, аналог HP Z24n G2

Форум — Talks

Нынче нет в продаже моников HP Z24n G2. В свое время не купил, теперь найти не могу. В DNS есть HP Z24n G4, но у него вертикальное разрешение меньше - 1920x1080.

Основные требования:

- разрешение 1920x1200
- матрица IPS
- управление подсветкой по току, а не ШИМ, чтобы не мерцало
- желательно (но не критично) наличие разъема DVI

Или подскажите где можно купить именно модель HP Z24n G2. Чтобы можно было прийти, открыть коробку, включить, проверить наличие битых пикселей, и только потом взять. А то по почте пришлют с матрицей на которой 3 пикселя будут гореть на постоянку, и менять не будут, типа это допустимо. Локация СПБ.

 , ,

Xintrea
()

Непонятки с репозитариями Astra Linux

Форум — Admin

Привет, народ.

Имеется вот такая страница в официальной Astra Linux Wiki:

https://wiki.astralinux.ru/pages/viewpage.action?pageId=158598882

На этой странице имеются http-ссылки на репозитарии и прочие ресурсы, например такие:

https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/
https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.1/iso/

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

1. Согласно информации из приложенной статьи ссылки репозиториев не должны быть доступны для Astra Linux Special Edition.

2. Доступность по протоколам HTTPS и HTTP обеспечивает доступность всех файлов репозитория по прямым ссылкам, что позволяет использовать для установки и обновления пакетов из этих репозиториев стандартные программы.

3. Помимо доступности протоколов HTTPS и HTTP для того, чтобы было возможно открыть ссылку в браузере и просмотреть содержимое репозитория так, как это делается в файловом менеджере, в репозитории должна быть включена автоматическая индексация содержимого (autoindex). Автоматическая индексация поддерживается в репозиториях Astra Linux Common Edition и не поддерживается в репозиториях Astra Linux Special Edition.



И я ничего не могу понять из этой белиберды.

Абзац 1 - с чего бы ссылки репозитариев «не должны быть доступны для Astra Linux Special Edition»? Ссылки вообще-то доступны кому угодно у кого есть интернет. Что значит недоступны для Astra Linux SE? Что они хотели сказать этим предложением?

Абзац 2 и 3 техподдержка тупо скопировала в разделе Протоколы передачи интернет-репозиториев Astra Linux с той же страницы официальной Wiki.

Вопрос: у нас возникло предположение, что это значит, что веб-сервер настроен так, что он не отдает HTML-представление списка файлов при запросе директорий, относящихся к 1.7. Но должен отдавать файлы если они запрашиваются напрямую.

Чтобы проверить это предположение, я проверил ссылки на файлы:

https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/Release
https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/Release.gpg
https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/binary-amd64/Packages.gz
https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/binary-amd64/Release

https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/Release
https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/Release.gpg
https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/binary-amd64/Packages.gz
https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/binary-amd64/Release

Но все они возвращают 404. Может я неправильно предположил какие файлы могут быть. А может быть, путь, начинающийся с https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/... действительно не существует. Как это можно однозначно проверить?



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

 , , ,

Xintrea
()

15 лет без кулхацкеров: наконец-то кто-то засунул троян. Но как?

Форум — Web-development

Имею старенький сайто с 9-м Debian Linux и nginx + php-fpm. Сайт самописный, не имеет всяких wordpress-сов или jooml-ов. Фреймверк - Codeigniter-2. Из стороннего - имеется форум punBB 1.4.6 с самодельной капчей.

Обнаружил случайно, что 27 октября 2022 в /tmp каталоге сайта каким-то образом оказался интересный файл с именем phphaATEM. Пользователь и группа у него www-data.

Вот что про него сказал trendmicro посредством virustotal:

https://www.trendmicro.com/vinfo/us/threat-encyclopedia/malware/Backdoor.PHP....

Свеженькая хреновина, от October 18, 2022.

Посмотрел access-лог по времени создания файла, там ничего сверхестественного не увидел, сплошные GET-запросы, один POST-запрос какого-то робота:

https://pastebin.com/raw/8Cuh755E

Я расковырял всякие обфускации, достал PHP-шный код. Оказалось что это кулхацкерская консоль управления файлами через WEB. Никаких ссылок в коде не обнаружил, деструктивного кода тоже. Вот собственно сам код:

https://hastebin.com/qujigumadu.php

Я его даже скопировал в каталог web-сервера и зашел на эту страницу. Открылась web-консоль. Ну консоль как консоль: управление файлами, запуск шелл-команд, информация о хосте, прочие дополнительные инструменты.

Собственно, вопрос: как понять, каким макаром эта штука оказалась на хосте? Что нужно донастроить, чтоб убрать дырку? Обновиться до Debian 11 не могу, потому что в нем уже PHP5 нет, а код весьма старый.

Вопрос второй - а можно ли узнать, смогли ли этой консолью воспользоваться? Я посмотрел логи - нигде доступа к /tmp или phpha* нет. Файлы самого сайта вроде как нетронутые.

 , ,

Xintrea
()

Почему не создаются каталоги из DEBIAN/dirs?

Форум — General

Создаю deb-пакет через dpkg-deb.

В каталоге исходных файлов deb-пакета имеется файл ./DEBIAN/dirs.

В нем прописан каталог:

/var/log/ourProgramm

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

 , , dpkg-deb,

Xintrea
()

Ошибка CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

Форум — Development

Пытаюсь собрать far2l (https://github.com/elfmz/far2l/), и получаю следующую ошибку cmake:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/home/xi/work/develop/cpp/far2l/colorer/XERCESC_INCLUDE_DIR
   used as include directory in directory /home/xi/work/develop/cpp/far2l/colorer
/home/xi/work/develop/cpp/far2l/colorer/src/Colorer-library/src/XERCESC_INCLUDE_DIR
   used as include directory in directory /home/xi/work/develop/cpp/far2l/colorer/src/Colorer-library/src

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

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

 , ,

Xintrea
()

Как увидеть лог в старом PHP-проекте? Не помню где лог-файл... Не вижу лога ошибок...

Форум — Web-development

Имеется старый рабочий проект, назовем его my-site.ru, написанный на Codeigniter 2. Он крутится на VPS под PHP 5.6. Используется nginx + php5-fpm. Система Debian Linux 9.

Я сделал минимальный контроллер, и он работает. Затем я создаю в нем ошибку:

./ci_application/controllers/hello.php

<?php
  itIsErrorString
  echo "Hello Codeigniter";
  // phpinfo();
?>

Явно тут парсер должен выдавать в лог ошибку типа:
PHP Parse error:  syntax error, unexpected 'echo' (T_ECHO) in .../ci_application/controllers/hello.php on line 3

И куда-то эту ошибку он должен писать. Но я не могу найти лог-файла с ошибкой!

В файле /etc/php5/fpm/php.ini стоит опция:
log_errors = On

Там же я ставил error_log = syslog (и перегружал nginx и php5-fpm) чтобы гарантированно увидеть ошибку в сислоге /var/log/syslog, но нет, туда ошибка не попадает.

В лог-файле самого Codeigniter тоже нет ошибок. В конфиге Codeigniter-а уровень ошибок 1 (1 = Error Messages including PHP errors):
$config['log_threshold'] = 1;


То есть, ошибки должны логироваться.

Я проверял файлы:

/var/log/php5-fpm.log
/var/log/syslog
/var/log/messages
/var/log/debug
/var/log/nginx/error.log
/var/www/my-site.ru/log/* - это каталог лога Codeigniter

Нигде ошибок скрипта не вижу.

Где блин еще искать лог?


Если это важно, вот выхлоп phpinfo() в браузере: https://hastebin.com/raw/wazayuluxi

 , , ,

Xintrea
()

Как добавить данные в БД только если БД пустая?

Форум — Development

База данных PostgreSQL 9.6.

Имеется две SQL-команды.

Первая создает таблицу в БД только если такой таблицы еще нет (if not exists):

create table roles if not exists (
 id serial primary key,
 name varchar(20)
); 


Вторая должна добавлять данные в эту таблицу только, если таблица пустая. Вот заготовка для такой команды:
insert into roles (name) values
 ('user'),
 ('security'),
 ('admin');

Вопрос: как можно доработать эту команду, чтобы добавление произошло только если в таблице ничего нет? Видимо, можно получить COUNT() на SELECT, но как сравнить значение COUNT() с нулем, и если ноль - то выполнить команду? Возможно ли такое сделать только лишь синтаксисом SQL?

 ,

Xintrea
()

Как организовать выполнение временных SQL-скриптов при инсталляции DEB-пакета?

Форум — General

Делаю самосборный DEB-пакет.

Имеется несколько SQL-скриптов, которые должны выполниться в момент инсталляции DEB-пакета, но после инсталляции нигде в системе не болтаться.

Понятно, что их вызов должен происходит в скрипте DEBIAN/postinst. Но непонятно где и как разместить сами эти скрипты.

Вот здесь написано следующее:

https://unix.stackexchange.com/questions/711654/setting-up-a-postinst-to-run-...

If sqlfile.sql is a temporary file, then install it to /usr/lib/mypkg/sqlfile.sql and use it from there in your postinst:

mysql ... < /usr/lib/mypkg/sqlfile.sql

Хм, но тогда файлы останутся в системе в каталоге /usr/lib/mypkg.

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

Как поступают в таких случаях?

 , postinst,

Xintrea
()

Что-то мой сайт недоступен. Что за?

Форум — Admin

Пинги на webhamster.ru не проходят.

Трейсроут ничем не заканчивается:

>traceroute webhamster.ru
traceroute to webhamster.ru (193.124.188.214), 30 hops max, 60 byte packets
 1  router.lan (192.168.88.1)  0.364 ms  0.397 ms  0.454 ms
 2  10.189.208.1 (10.189.208.1)  2.514 ms  2.923 ms  2.579 ms
 3  5.18.4.250 (5.18.4.250)  3.755 ms  2.804 ms  2.866 ms
 4  188x234x76x196.dynamic.omsk.ertelecom.ru (188.234.76.196)  11.142 ms  11.124 ms  11.198 ms
 5  188x234x76x197.dynamic.omsk.ertelecom.ru (188.234.76.197)  12.809 ms  12.103 ms  12.083 ms
 6  highspeed-peer.highspeednetwork.ru (92.63.203.97)  12.305 ms str147-peer.highspeednetwork.ru (92.63.203.107)  22.349 ms str147-5-peer.highspeednetwork.ru (92.63.203.59)  22.311 ms
 7  * * *
 8  * * *
 9  * * *

В чем может быть проблема? Недавно переносил домен с r01 на beget.com, может из-за этого? Кто виноват, что крутить?

 , ,

Xintrea
()

ARM ассемблер - не пойму, заинлайнилась ли функция?

Форум — Development

Пишу под STM32 (BluePill).

Есть вот такая функция:

__attribute__((always_inline, section(".ramfunc")))
uint16_t readAddressBus()
{
    // Для ускорения адрес вначале считается 32-х битным чтобы проще работать
    // с 32-х битным регистром PA, и только в конце он один раз преобразуется в 16 бит
    uint32_t addr = 0;

    // Установка на мультиплексоре сегмента адреса 00
    GPIOB->BSRR = 0 | (GPIO_BSRR_BR3_Msk | GPIO_BSRR_BR4_Msk );

    // Считывается и запоминается значение ножек сегмента 0
    addr = ((GPIOA->IDR & 0x0F00) >> 8);


    // Установка на мультиплексоре сегмента адреса 01
    GPIOB->BSRR = 0 | (GPIO_BSRR_BS3_Msk | GPIO_BSRR_BR4_Msk );

    // Считывается и запоминается значение ножек сегмента 1
    addr = addr | ((GPIOA->IDR & 0x0F00) >> 4);


    // Установка на мультиплексоре сегмента адреса 10
    GPIOB->BSRR = 0 | (GPIO_BSRR_BR3_Msk | GPIO_BSRR_BS4_Msk );

    // Считывается и запоминается значение ножек сегмента 2
    addr = addr | (GPIOA->IDR & 0x0F00);


    // Установка на мультиплексоре сегмента адреса 11
    GPIOB->BSRR = 0 | (GPIO_BSRR_BS3_Msk | GPIO_BSRR_BS4_Msk );

    // Считывается и запоминается значение ножек сегмента 3
    addr = addr | ((GPIOA->IDR & 0x0F00) << 4);

    return (uint16_t) addr;
}

Она вызывается из main loop:
__attribute__((noinline, section(".ramfunc")))
void mainLoop()
{
    ...
            // Нужно получить текущий адрес с ША
            uint16_t addr=readAddressBus();
    ...
}

В дизассемблере ARM это дело представлено таким образом:
Disassembly of section .ramfunc:

080004d0 <readAddressBus>:
 80004d0:	f44f 13c0 	mov.w	r3, #1572864	; 0x180000
 80004d4:	490d      	ldr	r1, [pc, #52]	; (800050c <readAddressBus+0x3c>)
 80004d6:	4a0e      	ldr	r2, [pc, #56]	; (8000510 <readAddressBus+0x40>)
 80004d8:	480e      	ldr	r0, [pc, #56]	; (8000514 <readAddressBus+0x44>)
 80004da:	610b      	str	r3, [r1, #16]
 80004dc:	6893      	ldr	r3, [r2, #8]
 80004de:	6108      	str	r0, [r1, #16]
 80004e0:	6890      	ldr	r0, [r2, #8]
 80004e2:	f3c3 2303 	ubfx	r3, r3, #8, #4
 80004e6:	0900      	lsrs	r0, r0, #4
 80004e8:	f000 00f0 	and.w	r0, r0, #240	; 0xf0
 80004ec:	4318      	orrs	r0, r3
 80004ee:	4b0a      	ldr	r3, [pc, #40]	; (8000518 <readAddressBus+0x48>)
 80004f0:	610b      	str	r3, [r1, #16]
 80004f2:	6893      	ldr	r3, [r2, #8]
 80004f4:	f403 6370 	and.w	r3, r3, #3840	; 0xf00
 80004f8:	4318      	orrs	r0, r3
 80004fa:	2318      	movs	r3, #24
 80004fc:	610b      	str	r3, [r1, #16]
 80004fe:	6893      	ldr	r3, [r2, #8]
 8000500:	011b      	lsls	r3, r3, #4
 8000502:	f403 4370 	and.w	r3, r3, #61440	; 0xf000
 8000506:	4318      	orrs	r0, r3
 8000508:	4770      	bx	lr
 800050a:	bf00      	nop
 800050c:	40010c00 	andmi	r0, r1, r0, lsl #24
 8000510:	40010800 	andmi	r0, r1, r0, lsl #16
 8000514:	00100008 	andseq	r0, r0, r8
 8000518:	00080010 	andeq	r0, r8, r0, lsl r0

0800051c <mainLoop>:
 800051c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 8000520:	2100      	movs	r1, #0
 8000522:	f44f 15c0 	mov.w	r5, #1572864	; 0x180000
 8000526:	f04f 0c18 	mov.w	ip, #24
 800052a:	f44f 3480 	mov.w	r4, #65536	; 0x10000
 800052e:	f04f 0e01 	mov.w	lr, #1
 8000532:	4a20      	ldr	r2, [pc, #128]	; (80005b4 <mainLoop+0x98>)
 8000534:	4820      	ldr	r0, [pc, #128]	; (80005b8 <mainLoop+0x9c>)
 8000536:	4e21      	ldr	r6, [pc, #132]	; (80005bc <mainLoop+0xa0>)
 8000538:	4f21      	ldr	r7, [pc, #132]	; (80005c0 <mainLoop+0xa4>)
 800053a:	f8df 8088 	ldr.w	r8, [pc, #136]	; 80005c4 <mainLoop+0xa8>
 800053e:	6893      	ldr	r3, [r2, #8]
 8000540:	f013 0fc0 	tst.w	r3, #192	; 0xc0
 8000544:	d005      	beq.n	8000552 <mainLoop+0x36>
 8000546:	2900      	cmp	r1, #0
 8000548:	d0f9      	beq.n	800053e <mainLoop+0x22>
 800054a:	f8c2 e010 	str.w	lr, [r2, #16]
 800054e:	2100      	movs	r1, #0
 8000550:	e7f5      	b.n	800053e <mainLoop+0x22>
 8000552:	6115      	str	r5, [r2, #16]
 8000554:	6883      	ldr	r3, [r0, #8]
 8000556:	6116      	str	r6, [r2, #16]
 8000558:	f3c3 2a03 	ubfx	sl, r3, #8, #4
 800055c:	6883      	ldr	r3, [r0, #8]
 800055e:	6117      	str	r7, [r2, #16]
 8000560:	ea4f 1913 	mov.w	r9, r3, lsr #4
 8000564:	6883      	ldr	r3, [r0, #8]
 8000566:	f009 09f0 	and.w	r9, r9, #240	; 0xf0
 800056a:	f8c2 c010 	str.w	ip, [r2, #16]
 800056e:	f403 6370 	and.w	r3, r3, #3840	; 0xf00
 8000572:	ea49 090a 	orr.w	r9, r9, sl
 8000576:	ea43 0909 	orr.w	r9, r3, r9
 800057a:	6883      	ldr	r3, [r0, #8]
 800057c:	011b      	lsls	r3, r3, #4
 800057e:	f403 4370 	and.w	r3, r3, #61440	; 0xf000
 8000582:	ea43 0309 	orr.w	r3, r3, r9
 8000586:	f483 4900 	eor.w	r9, r3, #32768	; 0x8000
 800058a:	f1b9 0f04 	cmp.w	r9, #4
 800058e:	bf8f      	iteee	hi
 8000590:	f04f 0988 	movhi.w	r9, #136	; 0x88
 8000594:	4443      	addls	r3, r8
 8000596:	f5a3 4300 	subls.w	r3, r3, #32768	; 0x8000
 800059a:	f893 9000 	ldrbls.w	r9, [r3]
 800059e:	6893      	ldr	r3, [r2, #8]
 80005a0:	b29b      	uxth	r3, r3
 80005a2:	ea43 2309 	orr.w	r3, r3, r9, lsl #8
 80005a6:	60d3      	str	r3, [r2, #12]
 80005a8:	2900      	cmp	r1, #0
 80005aa:	d1c8      	bne.n	800053e <mainLoop+0x22>
 80005ac:	6114      	str	r4, [r2, #16]
 80005ae:	2101      	movs	r1, #1
 80005b0:	e7c5      	b.n	800053e <mainLoop+0x22>
 80005b2:	bf00      	nop
 80005b4:	40010c00 	andmi	r0, r1, r0, lsl #24
 80005b8:	40010800 	andmi	r0, r1, r0, lsl #16
 80005bc:	00100008 	andseq	r0, r0, r8
 80005c0:	00080010 	andeq	r0, r8, r0, lsl r0
 80005c4:	20000000 	andcs	r0, r0, r0

И я вижу, что код функции readAddressBus() оттранслировался в отдельные адреса. Но я нигде не вижу вызова этой функции. При этом я вижу искаженный код данной функции внутри mainLoop(), значит readAddressBus() вроде как заинлайнилась.

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

Исходник на Си: https://github.com/xintrea/mikroshamem/blob/c00c10606dca71d3531c45f70b1169732...
Ассемблер: https://pastebin.com/gpc4tA03

 , , ,

Xintrea
()

Как сделать мигающую иконку в Telegram?

Форум — Desktop

Не могу нормально пользоваться Telegram из-за того, что все время про него забываю. Люди мне пишут, а я даже этого не вижу. Ну висит иконка и висит в трее с 100500 непрочитанными сообщениями. Зайду туда раз в неделю, посмотрю что там, может кому-то отвечу. Люди обижаются, что сразу не отвечаю. А я не вижу что мне кто-то что-то написал.

Хотелось бы как в ICQ/Miranda, если пришло личное сообщение - на иконке мигает конвертик. Если ответили в конференции - еще один конвертик другого цвета. Если и там и там - два конвертика.

DE использую LXDE.

Можно ли как-то это дело организовать на Telegram Desktop? Посмотрел на исходники - там сборка через docker, а изучать еще одну сущность - это выше моих способностей. Может, есть что-то готовое?

 , , , ,

Xintrea
()

QML - последовательность вызовов onAccepted(), onRejected(), onClose().

Форум — Development

Сделал окошечко на базе Dialog, сделал две кнопки [OK] и [Cancel] плюс в уголку кнопка закрытия [X].

[OK] - вызывает accept()
[Cancel] - вызывает reject()
[X] - вызывает close()

И, естественно, прописал диалогу обработчики:

onAccepted() { ... Действие 1 ... }
onRejected() { ... Действие 2 ... }
onClose() { ... Действие 3 ... }

Проблема в том, что если нажать OK или Cancel, то вначале QML сгенерирует вызов onClose(), и только потом onAccepted() или onRejected().

Получается, что хочу я того или не хочу, при нажатии OK будет выполнено:

Действие 3
Действие 1

А при нажатии Cancel будет выполнено:

Действие 3
Действие 2

Но в моей программе важна последовательность действий. И мне нужно, в идеале, как-то сделать, чтобы при нажатии OK или Cancel срабатывал только тот код, который написан в их обработчике.

Если это невозможно, то хотя бы сделать так, чтобы для ОК выполнялось:

Действие 1
Действие 3

А для Cancel выполнялось:

Действие 1
Действие 2

Как этого добиться?

Другими словами: в onClose() надо каким-то образом узнать, это «чистое» закрытие окна, или закрытие через кнопку OK/Close. И дело усложняется тем, что onClose() вызывается ПЕРЕД onAccepted()/onRejected(), то есть невозможно выставить, например, переменную-флаг, на которую можно было бы ориентироваться.

 , , , ,

Xintrea
()

Передача ассоциативного массива из QML в C++. Преобразование QJSValue в QVariantMap

Форум — Development

Имеется Qt 5.11.

Вызываю функцию из QML через JavaScript. В качестве параметра передается ассоциативный массив (индексы - строки и значения - строки).

var a;
a["one"]=odin;
a["two']=dva;

ourExemplar.ourMethod(a);

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

https://doc.qt.io/qt-5/qtqml-cppintegration-data.html

Однако все, что я могу вытащить из QJSValue - это QVariantList (это алиас QList<QVariant>). Да и то этот список будет нуливого размера.

Вот код:
void OurClass::ourMethod(QJSValue jsVal)
{
    qDebug() << Q_FUNC_INFO << "Слот ourMethod()";

    qDebug() << "Результат isObject(): "  << jsVal.isObject();
    qDebug() << "Результат isQObject(): " << jsVal.isQObject();
    qDebug() << "Результат isArray(): "   << jsVal.isArray();
    qDebug() << "Результат isVariant(): " << jsVal.isVariant();

    qDebug() << "QJSValue содержит тип " << jsVal.toVariant().userType();
    qDebug() << "Тип QVariant "     << qMetaTypeId<QVariant>();
    qDebug() << "Тип QVariantList " << qMetaTypeId<QVariantList>();
    qDebug() << "Тип QVariantMap "  << qMetaTypeId<QVariantMap>();
    qDebug() << "Тип QJSValue: "    << qMetaTypeId<QJSValue>();

    QVariantList list=jsVal.toVariant().toList();
    qDebug() << "Длинна list: " << list.size();

Вот результат:
void OurClass::ourMethod(QJSValue) Слот ourMethod()
Результат isObject():  true
Результат isQObject():  false
Результат isArray():  true
Результат isVariant():  false
QJSValue содержит тип  9
Тип QVariant  41
Тип QVariantList  9
Тип QVariantMap  8
Тип QJSValue:  1056
Длинна list:  0

Здесь видно, что isObject() и isArray() одновременно выдают true. Не знаю, должно ли так быть.

Узнать какой тип содержится в QVariant элемента списка я не могу придумать как, так как нет даже первого элемента, ведь список пустой.

В общем, задача - передать ассоциативный массив из QML в C++, но я не могу разобраться как это сделать. Везде пишется как конвертить из C++ в QML, а мне надо наоборот. У буржуев нашел вот такое:

https://lists.qt-project.org/pipermail/development/2014-September/018513.html

Но тут тоже направление из C++ в QML. Как будто из QML в C++ никто ничего структурированного не передает.

 , , , ,

Xintrea
()

Использование Linux в качестве цифровой музыкальной студии для записи гитары (видео)

Новости — Мультимедиа
Группа Мультимедиа

На YouTube появился видеоролик русскоязычного автора, в котором рассказывается о настройке и использовании Lubuntu Linux в качестве цифровой звукозаписывающей станции для записи гитары.

Linux для ГИТАРИСТА 🎸 Вместо ИМПОРТОЗАМЕЩЕНИЯ

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

В качестве стенда используется достаточно слабый двухядерный процессор Intel E2180 без технологии Hyper Threading (т. е. всего два аппаратных потока) в рабочей станции HP DC5800 образца 2007 года. Но для задач обработки звука такой аппаратуры, на удивление, хватает.

В видео демонстрируется использование Linux в качестве гитарного процесора, показывается настройка ALSA и сервера Jack, рассказывается как настраивать задержку обработки звука в единицы миллисекунд. Так же рассказывается о запуске проприетарных и свободных программ: ToneLib, Cadense, Catia, Reaper. Автор даже смог одновременно работать в связке ALSA+Jack+PulseAudio и у него ничего не трещало. Очень подробно автор рассказал про настройку звуковой коммутации внутри Linux.

Всем, кто интересуется возможностями музыкального софта в Linux, строго рекомендуется к просмотру.

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

 , ,

Xintrea
()

Четыре ошибки «Нет маршрута до узла» а потом «соединение установлено» - что это?

Форум — Admin

Что-то мой VPS-хостер крутил в своей сети, зачем-то вчера перегрузил мою VPS-ку, и стал мой сайт работать медленно.

Nginx показывает ошибку 504 Gateway Time-out.

В логах ошибки вида:

[error] 440#440: *103214 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 193.124.188.214, server: webhamster.ru, request: "GET /mytetrashare/index/mtb0/1510587037z3ybjqq0cv HTTP/1.0", upstream: "fastcgi://unix:/var/run/php5-fpm.sock", host: "webhamster.ru"
Проц не нагружен, памяти половина не используется, I/O небольшой, все в порядке, не знал на что грешить.

И походу нашел проблему. Фишка в том, что мои скрипты активно берут информацию с raw.githubusercontent.com. И я решил со своего сервера взять какой-нибудь файл:

И мне в ответ:
> wget https://raw.githubusercontent.com/xintrea/mytetra_syncro/master/base/0000003425/text.html             
--2022-09-08 13:53:07--  https://raw.githubusercontent.com/xintrea/mytetra_syncro/master/base/0000003425/text.html                                                                                                    
Распознаётся raw.githubusercontent.com (raw.githubusercontent.com)… 2606:50c0:8000::154, 2606:50c0:8001::154, 2606:50c0:8002::154, ...                                                                                
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8001::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8002::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... соединение установлено.                                                                                                   
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 8105 (7,9K) [text/plain]
Сохранение в: «text.html»                                                                                  
text.html 100%[=======================================>]   7,92K  --.-KB/s in 0,001s
2022-09-08 13:53:19 (12,0 MB/s) - «text.html» сохранён [8105/8105]

Похоже из-за этого подвисают веркеры php5-fpm, и весь сайт начинает тормозить.

Вопрос: что теперь надо крутить, чтобы соединение с raw.githubusercontent.com устанавливалось нормально? Раньше такой проблемы не было. Смогу ли я решить проблему, конфигурируя свой сервер, или без пинания хостера не обойтись? Тогда что требовать от хостера? Проблема на моей стороне? У кого-то DNS кривой? Что-то еще?

 , , , ,

Xintrea
()

Как в SED обработать только заданную строку?

Форум — General

Файл состоит из строк вида:

имя_опции=значение опции
или
имя_опции="значение опции"

Необходимо в значении опции, например с именем OUR_NAME, удалить повторяющиеся пробелы.

Как удалить повторяющиеся пробелы во всем файле понятно, например так:
sed -i -E 's/ */ /g' имя_файла

А как удалить повторяющиеся пробелы только в нужном месте?

 ,

Xintrea
()

Викторина по истории компьютерного железа с фестиваля Undefined 2022. А вы смогли бы? (+бонус)

Форум — Talks

Привет!

В видеотрансляции с фестиваля Undefined 2022 можно посмотреть викторину на знание истории компьютерного железа:

Викторина по истории компьютерного железа

Вопрос к аудитории ЛОРа: являются ли такие вопросы слишком легкими / слишком сложными? На сколько вопросов вы смогли ответить (всего 12 вопросов).

Какие вопросы вы сами могли бы предложить?


Бонус: для любителей и знатоков демосцены еще одна викторина:

Викторина по демомейкингу и демосцене

Что о ней думаете? Сложно? Столько вопросов из одолели?

Отвечать надо сразу, не гуглить.


UPD: Эти же викторины в текстовом формате:

https://pastebin.com/MCKYVRHi
https://pastebin.com/A7mvVnTe

 , ,

Xintrea
()

Напоминаю: конференция Undefined 2022 - уже на этих выходных

Форум — Talks

В ближайшую субботу, 20.08.2022, в поселке Рощино близ Петербурга, в комфортабельном конференц-зале состоится фестиваль компьютерного искусства Undefined 2022.

Сайт фестиваля: https://undefined.c-c.ru

Кто еще не определился, чем будет заниматься на выходных, рекомендую взять и приехать. Если вы конечно недалеко от Питера :) а Сапсан для вас - как проехаться на метро.

Задумано много всяких разных конкурсов и активностей. Команда фестиваля делает все в первый раз, будет много неразберихи, факапов и драмы, в общем, все как вы тут на ЛОРе любите.

Для ценителей так же работает hidden-конференция под названием Бухаос.

 demoparty,

Xintrea
()

Конвертация из SVG в PDF в консоли через Inkscape упакованный в AppImage

Форум — General

Имеется Inkscape 1.2.1, который запускается из AppImage.

Графический запуск происходит без проблем. Но мне нужен запуск bash-команды, которая использует этот InkScape для преобразования одностраничного SVG в одностраничный PDF.

Вот пример команды (образец взят отсюда: https://graphicdesign.stackexchange.com/questions/5880/how-to-export-an-inksc...)

/opt/inkscape_1_2_1/Inkscape-9c6d41e-x86_64_1_2_1.AppImage /home/xi/work/develop/php/undefinedVictorin2022/src/../svg/victorine01/page00.svg --export-area-drawing --batch-process --export-type=pdf --export-filename=/home/xi/work/develop/php/undefinedVictorin2022/src/../pdf/victorine01/page00.pdf

Однако, эта команда, вместо того чтобы сконвертировать SVG в PDF, открывает SVG-файл в графическом интерфейсе и ничего не делает. В консоли никаких ошибок нет.

Вопрос: как сконвертировать SVG в PDF через InkScape из AppImage?

PS: Использовать для конвертирования утилиту rsvg-convert невозможно, она криво конвертит SVG, и как минимум не знает о переносе строк и различных режимах выравнивания текста по горизонтали.

 , , , ,

Xintrea
()

Что за странная синяя палочка в Konsole возле области прокрутки?

Форум — General

Имеется Konsole 20.12.3 в Debian Stable 11.

В ней появляется вот такая палочка:

https://dropmefiles.com/hLmMV

Ее высота и положение как-то зависит от колеса мышки.

Как ее убрать?

 konsile, ,

Xintrea
()

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