LINUX.ORG.RU

Сообщения Xintrea

 

Кино и космос

 ,

Смотрю сейчас трансляцию полета Союза на МКС с киноделами на борту с сайта NASA. При стыковке отказали оба аппарата управления сближением КУРС 1 и 2, стыковка произведена в ручном режиме.

При подготовке к открытию люка тренированная актриса прямым текстом говорит: «Я сейчас у вас тут сейчас уписаюсь, не могу больше терпеть». Тетка из NASA переводит что актриса роскосмоса собирается juice, и надо что-то делать.

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

В общем сейчас на орбите по-настоящему жарко.

https://www.youtube.com/watch?v=21X5lGlDOfg

Xintrea
()

Linux демо победило на фестивале Chaos Constructions 2021

 , ,

По итогам прошедшего фестиваля компьютерного искусства Chaos Constructions 2021, в номинации One Scene demo compo первое место заняло кроссплатформенное демо Retrogram. Традиционно, в качестве программной PC-платформы для создания демо используется Windows, и множество инструментов демосцены существует только под платформу компании Микрософт. Однако Retrogram было изначально разработано под ОС Linux, а затем была сделана кроссплатформенная сборка, пригодная для запуска и в среде Windows.

В качестве OpenGL-обвязки была использована модифицированная open source утилита Bonzomatic, предназначенная для проведения реалтаймовых конкурсов в формате Shader Showdown. Сама сцена была написана на фрагментном GLSL шейдере с классической реализацией алгоритма Ray March с беззастенчивым использованием заранее подготовленных текстур. В процессе разработки была найдена ошибка в вычислении арктангенса в драйверах Mesa 13 в связке с Intel HD Graphics 4000 (используется в Debian 9), которая была исправлена в Debian 10.

Скриншот был сделан в момент проверки работоспособности демо на видеокарточке GeForce GT 640 с драйверами Mesa 18.1.3 в Astra Linux 1.6.

Следует отметить, что в номинации One Scene demo compo так же на первом месте (одинаковое количество очков) была демо Hypnotoad со всеми любимой гипножабой для ZX Spectrum от товарища Norduk, известного своими многочасовыми стримами на Youtube.

Подробности о демо и конференции CC2021 можно прочитать на сайте автора Retrogram.

Xintrea
()

Команда экспорта *.svg в *.png в Inkscape: как отключить окно «png bitmap image import»?

 , , , ,

Использую Inkscape 1.1.

Нужно мне сделать команду экспорта *.svg в *.png с помощью консольных опций Inkscape.

Картинка svg содержит растровые картинки, они интергрированы в svg-файл.

Я написал такую команду:

inkscape --export-width=1920 --export-type=png "page-01.png" "page-01.svg"

Проблема в том, что при запуске этой команды почему-то открывается окно «png bitmap image import», в котором спрашиваются Image Import Type, Image DPI, Image rendering mode. Такое окно обычно появляется, когда растровая картинка вставляется в svg-файл и интерфейсе Inkscape. В этом окне можно нажать Отмена, и консольная команда продолжит свою работу, png-файл будет сгенерирован правильно.

Вопрос: как подавить появление этого диалога, чтобы была только консоль? Пробовал в команду добавить:
--shell
--actions="quit"
--verb="quit"

и всякие подобные комбинации, но окно импорта все равно появляется.

Вопрос: как сделать чтобы это окно не появлялось и работал экспорт в консоли?

Xintrea
()

Видеокарта Intel HD Graphics 4000 с Linux-драйверами i915 криво считает функцию арктангенса

 atan, , , ,

Linux в очередной раз меня подвел.

На моем ноуте HP450 стоит карточка Intel HD Graphics 4000. Информация о чипсете и драйверах:

Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
        Kernel driver in use: i915
        Kernel modules: i915
filename:       /lib/modules/4.9.0-4-amd64/kernel/drivers/gpu/drm/i915/i915.ko
license:        GPL and additional rights
description:    Intel Graphics
author:         Intel Corporation
author:         Tungsten Graphics, Inc.
vermagic:       4.9.0-4-amd64

Так вот, наткнулся я на проблему в шейдерах GLSL локально в Bonzomatic, а потом увидел ее же в браузере в ShaderToy. Проблема в том, что функция atan() выдает дикую дичь.

Ссылка на пример: https://www.shadertoy.com/view/NljSzV

В телеграмканале «Newskool demomakers' chat» мне подтвердили, что на карточках других производителей такой проблемы не наблюдается.

Вначале думал, что проблема аппаратная. Но заморочился и на этом же оборудовании запустил Windows. И что я вижу? Все прекрасно работает, atan() считается как положено.

Пока что сделал workaround через арксинус, хорошо что хоть он вычисляется правильно:
float arctangens(float a)
{
    return asin(a/sqrt(1.0+a*a));
}

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

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

Xintrea
()

Как дать доступ пользователю монтировать сетевой каталог, прописанный в /etc/fstab ?

 , , , ,

У меня в /etc/fstab прописана такая строчка:

//server.lo/pub /media/OurServer/pub cifs rw,file_mode=0777,dir_mode=0777,username=xintrea,user=xintrea,cruid=xintrea,vers=1.0,sec=krb5 0 0

Если я от пользователя root даю команду:
mount /media/OurServer/pub
то происходит монтирование сетевого каталога. Размонтирую.

Далее пробую от пользователя xintrea дать ту же самую команду. В ответ получается ошибка:
mount: only root can mount //server.lo/pub on /media/OurServer/pub

На просторах Интернета я нахожу утверждение, что если в опциях в файле /etc/fstab написано user=xintrea, то данному пользователю должно даваться разрешение на монтирование сего ресурса. Но на деле этого не происходит.

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

Xintrea
()

Останавливается видео в Blender 2.93 после 1 секунды проигрывания

 , ,

Стоит значит у меня Blender 2.93 на Debian Linux.


Открываю я Video Editing Workspace. Перетягиваю на Timeline видеоролик. Пытаюсь его проиграть. Для этого нажимаю клавишу Пробел или кнопку внизу с названием Play Animation (треугольная такая). Видео проигрывается ровно 1 секунду и останавливается.

Причем, кнопка Play Animationиз треугольничка превращается в кнопку паузы. Типа все в порядке, видео проигрыватеся, ты можешь нажать паузу. Но видео стоит на месте, номер текущего кадра тоже стоит на месте.

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


Что это за дичь? Может быть, где-нибудь есть какая-то настройка, которая ограничивает проигрывание вперед одной секундой? Я ничего не нашел.

Xintrea
()

Qt. Как проще сделать виджет, сильно похожий на заданный?

 , , отрисовка

Имеется следующий виджет-меню:

http://i.piccy.info/i9/c7c16510d27ba4873ffec2e649009df0/1626854321/67618/1436...

Нужно сделать такой же на Qt5 (обычные виджеты, не QML), всеми пикселями похожий на заданный.

Стиль Windows для QToolButton или для QFrame, в принципе, подходит. Я бы мог понапихать слева-направо или кнопки или фреймы, чтобы составить такое меню. Но если присмотреться, то между секциями вертикальные разделители не «на полную глубину» а как бы «в половину глубины».

Вот я и думаю, каким макаром проще всего сделать меню с такими разделителями секций?

Xintrea
()

Новая версия низкоуровневого переключателя клавиатуры LoLo Switcher 0.39 для X11 с поддержкой KVM-switch

 , , ,

Новая версия низкоуровневого переключателя клавиатуры LoLo Switcher 0.39 для X11 с поддержкой KVM-switch
Группа Open Source

Выпущена новая версия низкоуровневого переключателя клавиатуры LoLo Switcher v.0.39, в которой реализована поддержка работы через «тупые» KVM-свитчи, не поддерживающие эмуляцию присутствия устройств на отключенных портах. Для этого были доработаны механизмы первичной инициализации устройства ввода, и добавлен механизм удержания устройства ввода, первую версию которого сделал товарищ bodqhrohro.

Низкоуровневый переключатель клавиатуры LoLo Switcher работает напрямую с файлом устройства ввода, вычленяя в потоке скан-кодов нужные последовательности, которые должны приводить к переключению раскладки. С помощью него решаются все существующие проблемы конфигурирования клавиш-модификаторов, когда у пользователей Linux не работают хоткеи Ctrl+Shift+Буква или Alt+Shift+Буква при настроенном переключении языка через сочетания Ctrl+Shift или Alt+Shift. Кроме того, LoLo Switcher позволяет настраивать переключение по отпусканию клавиш, а не только по нажатию. LoLo Switcher не имеет графического интерфейса настройки, все конфигурирование происходит через конфиг-файл. Для вычленения последовательностей скан-кодов используются регулярные выражения, компилируемые во время старта переключателя.

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


На официальной странице проекта LoLo Switcher размещена готовая бинарная сборка.

Unofficial:
А еще, в этом году переключателю LoLo Switcher исполняется 10 лет! Историческая новость на Лоре: Вышел LoLo Switcher v.0.25 (когда доллар был по 32 рубля).

>>> Новость на сайте автора (webhamster.ru)

Xintrea
()

Куда должен пойти ученик, чтобы купить книгу про Гарри Поттера?

 , mystery,

Ребенку задали задание по английскому, чтобы он лучше ориентировался в Linux, естественно.

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

Что думает коллективный разум?

Задание: http://i.piccy.info/i9/5cbb7534eeea4c8f11ca5b5b2edee6e4/1618855970/139100/142...

Xintrea
()

Как правильно запустить очередь в Laravel с именованными очередями?

 , ,

Восстанавливаю сейчас к работе проект двухлетней давности.

В нем используется Laravel 5.5.45.

Сам забыл уже и PHP, и Laravel, и что там где там надо крутить.

Проблема вот в чем. Очереди в проекте настроены на драйвер database, используется MySQL (MariaDB). Таблицы jobs и failed_jobs созданы. Задания очереди успешно создаются, и появляются в таблице jobs. Для заданий предусмотрено 3 очереди:

- email
- phone
- telegram

В таблице jobs в поле queue видно соответствующее имя очереди.

Если согласно документации запустить очередь командой:

php artisan queue:work

то задания выполняться не будут, и поле attempt (количество попыток запуска) для всех заданий будет содержать значение 0.

В какой-то момент я нащупал, что если запустить команду:
php artisan queue:work --queue=telegram,default

то задания из очереди telegram таки выполнятся.

Но в документации я не нашел описания того, что для работы обработчика очереди требуется обязательно указывать имя очереди. Вроде как команда php artisan queue:work должна обрабатывать все очереди, но этого не происходит.

Вопрос: а какой командой таки можно запустить обработку всех именованных очередей? Я ее пропишу в Supervisor.

Xintrea
()

А у меня одного в Firefox 86.0.1 не работают ссылки на сообщения из уведомлений ЛОР-а?

 

Поставил Firefox 86.0.1, и обнаружил что при нажатии ссылок на сообщения в уведомлениях происходит переход на страницу, но прокрутка на этой странице не проматывается до нужного сообщения, а останавливается на совершенно случайных местах. Так и должно быть?

Xintrea
()

Почему не работает monospace в font-family?

 ,

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

Есть, к примеру, такая страничка:

Как разобраться, почему некоторые каталоги в DropBox не синхронизируются под Linux

На ней есть следующий HTML-код:

<p style=" margin-top:0px; 
           margin-bottom:0px; 
           margin-left:20px; 
           margin-right:0px; 
           -qt-block-indent:0; 
           text-indent:0px;">
  <span style=" font-family:'monospace'; color:#6a1009;">
    chmod 755 ./dropbox.py
  </span>
</p>

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

Вопрос: почему не применяется monospace для вывода текста?

Проблема есть в Crome 89.0.4389.72 (Официальная сборка), (64 бит).

Xintrea
()

Как запустить скрипт через at от non-root пользователя?

 , , ,

У меня есть два простых скрипта:

/opt/script/loloswitcher.sh

#!/bin/bash

echo "/opt/script/loloswitcherPostRun.sh" | at now

/opt/script/loloswitcherPostRun.sh
#!/bin/bash

logFile="/tmp/loloswitcherLog.txt"

/bin/date > $logFile
/bin/echo "Label 1" >> $logFile


/bin/sleep 3


/bin/date >> $logFile
/bin/echo "Label 2" >> $logFile

Права на эти скрипты следующие:
$ ls -la | grep lolo 
-rwxrwxrwx  1 root root  391 мар  2 10:47 loloswitcherPostRun.sh 
-rwxrwxrwx  1 root root  204 мар  2 10:24 loloswitcher.sh

Проблема в том, что если запустить loloswitcher.sh от root, то произойдет запуск loloswitcherPostRun.sh, будет создан файл /tmp/loloswitcherLog.txt, в него будут записаны обе метки Label 1 и Label 2.

Но если удалить /tmp/loloswitcherLog.txt и запустить loloswitcher.sh от обычного пользователя, то скрипт loloswitcherPostRun.sh не будет выполнен, и файл /tmp/loloswitcherLog.txt вообще не будет создан. В системных логах полное молчание, никаких ошибок или предупреждений.

Почему-то команда at способна выполнять скрипты только при запуске от рута. Что где еще нужно докрутить, чтобы можно было запускать команды через at от обычного пользователя?

Xintrea
()

Как выкачать определенный pack-файл с Git-репозитария?

 , gitfs,

Сижу сейчас на мобильном интернете.

У меня в локальной копии репозитария оказался поломанный pack-файл. Я бы мог перевыкачать весь репозитарий, но размер репозитария несколько гигабайт.

Я знаю точно название pack-файла, и мне надо выкачать только его:

.git/objects/pack/pack-dd181d6ed4ebbcf10347fb0908a2f644ef40b993.pack

Вопрос: как это сделать? Репозитарий на Гитхабе.

Xintrea
()

Как вставить значение переменной в одинарные кавычки?

 , , ,

В bash есть особенность: внутри одинарных кавычек значение переменной не разворачивается:

networkByte="205"

result1=`echo $networkByte`
result2=`echo '$networkByte'`

echo $result1
echo $result2

Выхлоп:
205
$networkByte

В связи с этим вопрос: а как тогда подставлять значения переменных в grep/sed? Вот есть такая команда:
projectType=`cat ./config.xml | \
 grep '^\s*<\s*App\s*name.*project.*network\s*=\s*\"$networkByte\".*>\s*' | \
 sed -E 's/(^.*project\s*=\s*\")(.*)(\"\s*network\s*=\s*\"$networkByte\".*>\s*)/\2/'`

Здесь используется переменная $networkByte, но ее значение не вставляется в команду, как хотелось бы, а вместо этого всовывается строка «$networkByte».

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

Xintrea
()

Почему работает доступ к значению без $ в условном выражении?

 , ,

Сейчас наткнулся вот на такую особенность:

#!/bin/bash

regExpLen="1"

if [[ regExpLen -eq 1 ]]; then
  echo "Равно 1"
fi

Вопрос: почему в условии можно не писать $regExpLen, почему работает просто имя переменной?

Xintrea
()

Как выполнить команду в Bash из переменной?

 , , ,

Проблема при выполнении следующего куска кода. Скрипт запускается от обычного текущего пользователя:

#!/bin/bash

    hostIp="192.168.150.101"
    userPwd="12345"

    echo "Настройка хоста $hostIp"

    command="sshpass -p '$userPwd' ssh-copy-id -i ~/.ssh/id_rsa.pub user@$hostIp"
    echo "Выполняется команда:"
    echo "$command"
    $command

При запуске этого когда, в консоли видим следующую ошибку:
Настройка хоста 192.168.150.101
Выполняется команда:
sshpass -p '12345' ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.150.101

/usr/bin/ssh-copy-id: ERROR: failed to open ID file '~/.ssh/id_rsa.pub': Нет такого файла или каталога

Но дело в том, что, файл открытого ключа существует. Мало того, если в консоли скопировать «сконструированную» скриптом команду, и выполнить ее:
sshpass -p '12345' ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.150.101

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

Вопрос: почему не выполняется команда внутри скрипта? При этом почему она нормально выполняется в консоли?

Xintrea
()

Как в SED обработать диапазон строк?

 , диапазон

Есть такой текст:

...
[AC]
icon=battery-charging

[AC][DPMSControl]
idleTime=3600

[AC][HandleButtonEvents]
lidAction=64
powerButtonAction=8

[Battery]
icon=battery-060

[Battery][DPMSControl]
idleTime=300

[Battery][HandleButtonEvents]
lidAction=64
powerButtonAction=16

[LowBattery]
icon=battery-low

[LowBattery][BrightnessControl]
value=30

[LowBattery][HandleButtonEvents]
lidAction=64
powerButtonAction=16
...

Я хочу обработать диапазон строк между:
[AC][HandleButtonEvents]
...
[.*

В этом диапазоне надо изменить значение powerButtonActions.

Я пытаюсь сделать так:
cat f.txt | sed /\[AC\]\[HandleButtonEvents\]/,/\[.*/s/powerButtonAction\s*=\s*.*/powerButtonAction=125/

Но получаю ошибку:

sed: -e выражение #1, символ 81: незавершенное адресное регулярное выражение

Вопрос: как правильно написать эту команду?

Xintrea
()

Как в Python 2.7.13 изменить INI-файл с субсекциями?

 ,

Имеется INI-файл с вот такой структурой:

...
[AC]
icon=battery-charging

[AC][DPMSControl]
idleTime=3600

[AC][HandleButtonEvents]
lidAction=64
powerButtonAction=8

[Battery]
icon=battery-060

[Battery][DPMSControl]
idleTime=300

[Battery][HandleButtonEvents]
lidAction=64
powerButtonAction=16

[LowBattery]
icon=battery-low

[LowBattery][BrightnessControl]
value=30

[LowBattery][HandleButtonEvents]
lidAction=64
powerButtonAction=16
...

Здесь видно, что HandleButtonEvents - это «субсекция», а основная секция задается перед субсекцией в той же строке. Не знаю, является ли это стандартом для INI-файлов или нет, не я этот файл создавал.

Задача - поменять значения powerButtonAction в различных субсукциях.

Пробовал достучаться до нужного значения так (хотя бы считать):
import ConfigParser
config=ConfigParser.ConfigParser()
config.read('$fileName')

print( config.get('AC][HandleButtonEvents', 'powerButtonAction' ) )

Но возникает ошибка:
      "Traceback (most recent call last):",
      "  File \"<stdin>\", line 5, in <module>",
      "  File \"/usr/lib/python2.7/ConfigParser.py\", line 607, in get",
      "    raise NoSectionError(section)",
      "ConfigParser.NoSectionError: No section: 'AC][HandleButtonEvents'"

Вопрос: как работать с такими файлами?

UPD: При необходимости могу поставить Python 3.5.3, если это будет нужно для решения.

Xintrea
()

Как установить Linux-шрифты в Windows?

 , ,

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

А мне сейчас потребовалось сделать обратное действие: нужно стандартный набор шрифтов, который стоит по-умолчанию в Debian 9, установить в Windows. Как это сделать?

Может быть, есть какие-то LinuxFontPack или еще что-то такое для Windows? Или можно установить пачку шрифтов ручками? Откуда эту пачку взять? Как установить?

Xintrea
()

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