LINUX.ORG.RU

Сообщения hippi90

 

Бага или фича? Flex-контейнеры и печать

Форум — Development

Столкнулся с неожиданным поведением flex при печати html и пытаюсь понять, это бага или фича. Дело в том, что поведение одинаковое и для Chrome и для Firefox.

Дано: html с такой структурой

<body>
    <div style="display: flex; flex-direction: column;">
        <...>
        <div style="display: flex;">Lorem ipsum <...> </div>
        <...>
    </div>
</body>
Т.е. в body находится div c display: flex, внутри него много-много div так же с display: flex, достаточно чтобы не влезло на одну страницу A4 (лучше 3-4).

Отправляем html на печать и видим, что при переходе на другую страницу строка разрезается по середине. Выглядит вот так https://i.imgur.com/zZuwZwc.png

Если внешний div не flex или его вообще нет, или внутренние div не flex, то всё нормально.

Может кто сталкивался с похожим или знает от чего так?

 

hippi90 ()

Настройка bridge с NetworkManager

Форум — Admin

Опять в этой убунте перетрясли управление сетями, то у них netplan, то systemd-network, теперь по умолчанию предлагают использовать NetworkManager. Ок, попробуем.

Дано: Хост-машина с одним сетевым интерфейсом, в который воткнут кабель до роутера, контейнеры на хосте, которые надо объединить в одну сеть с хостом.

Ок, создаем bridge:

nmcli con add ifname lxcbr0 type bridge con-name lxcbr0
nmcli con add type bridge-slave ifname enp0s31f6 master lxcbr0
nmcli con modify lxcbr0 bridge.stp no

Перезапускаем NetworkManager:

sudo systemctl restart NetworkManager
Всё вроде работает, контейнеры видны в сети, внешняя сеть доступна. Перезагружаем машину, внешняя сеть не работает, опять перезапускаем NetworkManager, всё работает.

После перезагрузки, но до рестарта NM состояние подключения такое:

$ nmcli d show lxcbr0    
GENERAL.DEVICE:                         lxcbr0
GENERAL.TYPE:                           bridge
GENERAL.HWADDR:                         00:16:3E:00:00:00
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (подключено)
GENERAL.CONNECTION:                     lxcbr0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]:                         10.0.3.1/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 10.0.3.0/24, nh = 0.0.0.0, mt = 0
IP4.DNS[1]:                             192.168.1.1
После перезапуска NM:
$ nmcli d show lxcbr0 
GENERAL.DEVICE:                         lxcbr0
GENERAL.TYPE:                           bridge
GENERAL.HWADDR:                         00:16:3E:00:00:00
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (подключено)
GENERAL.CONNECTION:                     lxcbr0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]:                         192.168.1.156/24
IP4.ADDRESS[2]:                         10.0.3.1/24
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 425
IP4.ROUTE[2]:                           dst = 10.0.3.0/24, nh = 0.0.0.0, mt = 0
IP4.ROUTE[3]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 425
IP4.ROUTE[4]:                           dst = 10.0.3.0/24, nh = 0.0.0.0, mt = 425
IP4.DNS[1]:                             192.168.1.1

Т.е., после рестарта NM lxcbr0 подхватывает второй IP из нужной сети, контейнеры получают тоже ip вида 192.168.х.х.

Собственно, вопрос, какого лешего NM не хватает при старте системы, чтобы нормально поднять соединение?

 , , ,

hippi90 ()

Хранение состояния приложения

Форум — Development

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

Будет хорошо, если ткнете в пример кода, где можно посмотреть.

 

hippi90 ()

Pulseaudio падает с сегфолтом при добавлении наушников

Форум — General

Как говорится, ничто не предвещало беды и вдруг.

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

Опытным путем выяснилось, что к падению приводит вставка наушников. Сразу скажу, что наушники пробовал разные, порты тоже. Конфиги пульсы чистить пробовал, пакет переустанавливать тоже.

Запускаем ручками пульсу, запускается. Вставляем наушники - сегфолт, в логе следующее

pulseaudio -v
I: [pulseaudio] (alsa-lib)utils.c: could not open configuration file /usr/share/alsa/ucm/Philips Philips SHG7980 at usb-0000:00:1a.0-1.3, full speed/Philips Philips SHG7980 at usb-0000:00:1a.0-1.3, full speed.conf
I: [pulseaudio] (alsa-lib)parser.c: error: could not parse configuration for card Philips Philips SHG7980 at usb-0000:00:1a.0-1.3, full speed
I: [pulseaudio] (alsa-lib)utils.c: could not open configuration file /usr/share/alsa/ucm/Philips SHG7980/Philips SHG7980.conf
I: [pulseaudio] (alsa-lib)parser.c: error: could not parse configuration for card Philips SHG7980
I: [pulseaudio] (alsa-lib)main.c: error: failed to import Philips SHG7980 use case configuration -2
I: [pulseaudio] alsa-ucm.c: UCM not available for card Philips SHG7980
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:hw:1: Недопустимый аргумент
I: [pulseaudio] (alsa-lib)control.c: Invalid CTL front:1
I: [pulseaudio] alsa-util.c: Unable to attach to mixer front:1: Нет такого файла или каталога
I: [pulseaudio] alsa-util.c: Successfully attached to mixer 'hw:1'
I: [pulseaudio] (alsa-lib)control.c: Invalid CTL iec958:1
I: [pulseaudio] alsa-util.c: Unable to attach to mixer iec958:1: Нет такого файла или каталога
I: [pulseaudio] alsa-util.c: Successfully attached to mixer 'hw:1'
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:hw:1: Недопустимый аргумент
I: [pulseaudio] (alsa-lib)control.c: Invalid CTL front:1
I: [pulseaudio] alsa-util.c: Unable to attach to mixer front:1: Нет такого файла или каталога
I: [pulseaudio] alsa-util.c: Successfully attached to mixer 'hw:1'
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:surround21:1: Недопустимый аргумент
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:surround40:1: Недопустимый аргумент
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:surround41:1: Недопустимый аргумент
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] (alsa-lib)pcm_hw.c: Invalid PCM state for chmap_get: OPEN
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:surround50:1: Недопустимый аргумент
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:surround51:1: Недопустимый аргумент
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] (alsa-lib)pcm_params.c: Slave PCM not usable
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plug:surround71:1: Недопустимый аргумент
I: [pulseaudio] (alsa-lib)control.c: Invalid CTL iec958:1
I: [pulseaudio] alsa-util.c: Unable to attach to mixer iec958:1: Нет такого файла или каталога
I: [pulseaudio] alsa-util.c: Successfully attached to mixer 'hw:1'
I: [pulseaudio] (alsa-lib)pcm_a52.c: Cannot set slave rate 48000
Ошибка сегментирования (стек памяти сброшен на диск)
sudo dmesg | tail
[ 8745.336134] usb 2-1.2: new full-speed USB device number 7 using ehci-pci
[ 8745.649370] usb 2-1.2: New USB device found, idVendor=0471, idProduct=2118, bcdDevice= 3.11
[ 8745.649374] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8745.649377] usb 2-1.2: Product: Philips SHG7980
[ 8745.649379] usb 2-1.2: Manufacturer: Philips
[ 8745.762934] hid-generic 0003:0471:2118.0009: No inputs registered, leaving
[ 8745.763091] hid-generic 0003:0471:2118.0009: hiddev0,hidraw2: USB HID v1.00 Device [Philips Philips SHG7980] on usb-0000:00:1d.0-1.2/input3

 

hippi90 ()

Не подхватывается второй монитор на intel

Форум — Desktop

Дано: комп на интеловской интеграшке; основной монитор, подключенный через DVI, телевизор, подключенный по HDMI; Debian buster.

Собственно, проблема в том, что комп видит только один главный монитор, но не видит телевизор. xrandr говорит, что HDMI-2 disconnected.

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

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

lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)

xserver-xorg-video-intel/testing,now 2:2.99.917+git20171229-1 amd64

 ,

hippi90 ()

Oracle DB крайне медленная передача данных по сети

Форум — Development

Столкнулся с очень странной проблемой, раньше такого не встречал.

Дано:

Java-приложение запущенное локально, Oracle DB на удаленном сервере. Скорость соединения между ними - 2.5MB/s.

В приложении выполняем очень простой запрос вида «select id, name from table_name», запрос возвращает ~60K строк, общий размер данных - 1,5 Мб, время выполнения - 80 сек. Профайлер говорит, что всё это время приложение висит в методе oracle.net.Packet.receive.

Ок, открываем SQL Developer, выполняем тот же самый запрос - 0,6 сек/5000 строк, т.е. примерно 7-8 секунд на всю выборку. Повторяем то же самое в DBeaver - 7 сек/5000 строк или 80 сек, если убрать ограничение на размер выборки.

Какая-то нездоровая фигня получается. Берем в руки tcpdump и смотрим, как передаются данные от базы к нам. В случае Java-приложения и DBeaver данные передаются в пакетах размером ~200 байт, SQLDeveloper получает данные в пакетах ~2000 байт.

Ладно, лезем в официальную доку https://docs.oracle.com/cd/E18283_01/network.112/e10836/performance.htm#i1006332, находим что нам надо поднять размер SDU/TDU. На стороне базы я не могу ничего менять, таково требование заказчика. Пробуем добавить эти параметры на стороне клиента, получается вот такой URL:

jdbc:oracle:thin:@(DESCRIPTION=(SDU=11280)(TDU=11280)(ADDRESS=(PROTOCOL=tcp)(HOST=<host>)(PORT=1521)(SEND_BUF_SIZE=11784)(RECV_BUF_SIZE=11784))(CONNECT_DATA=(SERVICE_NAME=<db>)))
И ничего не происходит, время то же, размер пакетов такой же. WTF? База игнорит передаваемые ей параметры или драйвер ей просто их не передает? Или может я вообще не то пытаюсь поправить и истина где-то в другой бочке вина?

 , ,

hippi90 ()

Плоский Mate на нетбуке

Галерея — Скриншоты

Делюсь с общественностью скриншотами своего походно-разъездного нетбука Toshiba NB550D. Выпущен сей девайс был в далеком уже 2011 году, и на тот момент был флагманской моделью в линейке нетбуков данного производителя.

В данный момент аппарат используется в основном в качестве терминала для доступа по SSH к другим машинам, чтения pdf, правки на месте скриптов на Python и всякого такого прочего.

На скриншотах:

  • Gtk theme: Arc-dark
  • Icons: Papirus-dark
  • Plank theme: Arc-Plank

Браузер и ФМ

Терминал

About MATE

>>> Просмотр (1024x600, 333 Kb)

 

hippi90 ()

Не соображу, как SQL запрос составить

Форум — Development

Доброго времени суток, ЛОР. Нужна помощь коллективного разума в составлении sql-запроса, так как сам в этом не силён.

Дано две таблицы (в упрощенном виде):

Users:
--------------------------------------------------
| Login |      Email      | A half-dozen columns |
--------------------------------------------------
| vasya | vasya@vasya.com | Some other data      |
--------------------------------------------------

TestResults:
----------------------------------------------------------
|    TestName    | Login | Points | A half-dozen columns |
----------------------------------------------------------
| Some cool test | vasya |   146  | Some other data      |
----------------------------------------------------------

Результатом выполнения запроса должна быть таблица следующего вида:

-------------------------------------------------------------------------
| Login | TestName1 Points | TestName2 Points | TestName3 Points | etc. |
-------------------------------------------------------------------------
| vasya |        92        |        87        |         56       | etc. |
-------------------------------------------------------------------------

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

 

hippi90 ()

BetterProgrammer.com Сколько баллов нормально для Junior?

Форум — Talks

Доброго времени суток всем. Пытаюсь устроиться на вакансию Junior Java Developer, предложили сначала пройти тест на BetterProgrammer.com. И мне вот стало интересно, а сколько баллов нормально для Junior'а? Есть у кого истории успеха/неуспеха?

P.S. Погуглил на эту тему, встречаются иногда вообще странные комменты, когда чуть ли не рандомом рещали задачи и получали 95% за тест.

Перемещено mono из development

 , ,

hippi90 ()

Помогите разобраться со схемой

Форум — Talks

Есть замечательный прибор - БПРТ-1, надо его подключить к печке. Есть схема подключения - http://i.imgur.com/PXaG0OP.png

В принципе с ней всё понятно, затык вызывают два элемента, обозначенные на схеме Д1 и Д2, насколько я понимаю (а понимаю я хреново, ибо электроника не моя специальность даже не близко), это должны быть тиристоры. В качестве источника использоваться будет ЛАТР с максимальным напряжением 200В и максимальным током 5А.

Вопрос собственно в том, тиристоры ли это, и если да, то какие брать? Номинал, марка, что там еще важно учитывать при этом?

 ,

hippi90 ()

Опознать метод стат. обработки

Форум — Talks

Доброго времени суток! Нужна помощь в опознании метода стат обработки, чтобы потом можно было найти его литературное описание.

Исходные данные - массив результатов измерений Х. Это массив сортируется и разбивается на интервалы ΔХ. Размер интервала H = ΔХmax - ΔХmin подбирается вручную. Затем для каждого интервала ΔХ находится частота вхождения конкретного значения Хj в этот интервал: ω = sum((Xj)⁰) и строится график зависимости частоты от значения Х на середине интервала: ω(Xj) - 0,5ΔХ.

 , , ,

hippi90 ()

Установка OpenJDK без зависимостей X11

Форум — General

Собственно, сабж. Есть ли вариант установить OpenJDK так, чтобы он не тянул зависимости типа X11 и пр.? Ставлю на VPS из реп, так он тянет за собой X11, GTK, куски гнома и прочую фигню, которая на серваке вообще не уперлась никуда. Беглый гуглеж показал, что это общая проблема и для Debian-based и для RH-based дистрибутивов. В качестве решения предлагают ставить Oracle JDK, но меня этот вариант не очень устраивает.

 ,

hippi90 ()

Как выполнить требования CC-BY-SA 3.0?

Форум — Talks

Заюзал на сайте несколько изображений, распространяемых под CC-BY-SA 3.0. Так как такая лицензия требует указывать авторство, возникает вопрос, как это сделать, так чтобы не мешало и чтобы условия лицензии выполнялись?

 ,

hippi90 ()

Подскажите хороший готический шрифт с поддержкой кириллицы

Форум — Talks

Собственно сабж. Обязательное требование — возможность свободного некоммерческого использования.

 

hippi90 ()

Разрезать контур по линиям

Форум — General

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

http://storage1.static.itmages.ru/i/15/0113/h_1421138049_2394163_9971faebe7.png

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

 ,

hippi90 ()

QScrollArea обрезает надписи

Форум — Development

Здравствуй, лор. Помоги побороть QScrollArea. Выглядит сей ужас как-то так: http://storage9.static.itmages.ru/i/14/1221/h_1419206232_7463140_047159d91e.png Т.е. надписи, находящиеся в QScrollArea обрезаются по горизонтали. Надо, чтобы все элементы показывались полностью, при этом, при изменении размеров окна эта область не увеличивалась в размерах, а оставалась постоянной.

 

hippi90 ()

Выбор телефона с gps

Форум — Mobile

Здравствуй, коллективный разум! Нужна помощь в выборе телефона. Требования: 1) нужно что-то простое, никаких флагманов, лопат и прочего, хочется недорогого в районе $100; 2)важен работающий GPS, независимо от погоды, положения Юпитера в Сатурне и прочего; 3) В качестве ОС Android, желательно версии 4+. Думал взять какого-нибудь китайца. За такую цену можно найти аппараты с адекватными характеристиками, но почитал отзывы в интернете, практически везде пишут, что у китайских товарищей GPS либо вообще не работает в телефонах, либо заводится с помощью бубна и известной матери, а GPS один из основных критериев выбора. Что можно подобрать по таким требованиям, может есть всё-таки китайцы с работающим GPS, или придется брать «фирму»?

 , , ,

hippi90 ()

Сглаживание графика функции

Форум — Development

Доброго времени суток! Имеются в довольно большом количестве данные рентгенофазового анализа, приходят они в виде массивов чисел (2theta - I). Их надо красиво построить в виде графика, чтобы потом было удобно работать. В этих целях предыдущими сотрудниками была установлена программа WinScaler (да, она под Windows). У неё есть полезная функция, которая позволяет сгладить экспериментальную кривую, сделать пики более выделенными, убрать фон (выглядит это так http://storage9.static.itmages.ru/i/14/0609/h_1402313655_4124490_87780f253f.png).

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

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

 , ,

hippi90 ()

[любознательности-тред] Чем так плохи callback-функции?

Форум — Development

Доброго времени суток! В процессе поглощения умных (и не очень) книг возникло недопонимание, связанное вот с чем: многие авторы неприязненно относятся к обработке событий через вызовы callback-функций. Надо обязательно ткнуть пальцем в какой-нибудь другой тулкит, сказав, что там для обработки событий используются callback'и, поругать разработчиков этого тулкита, а разработчиков сабжа похвалить, потому что они не стали использовать callback'и, а написали свой велосипед, который самый лучший и впереди планеты всей. Встречал подобное в книгах по Qt и Swing.

Погуглив, нашел по теме не так уж и много, единственное, что нашел - это лишний оверхед на вызовы функций (имхо, притянуто за уши, разве такой уж он большой?), и ухудшение читаемости кода, поскольку приходится лазить по всему дереву вызовов, чтобы разобраться в коде. Кто что может рассказать по теме? И какие есть альтернативы callback-функциям, чем они лучше или хуже?

hippi90 ()

[EmbeddingPython] Не импортируется модуль

Форум — Development

Доброго всем времени суток! Хочу попробовать встроить в свое приложение возможность выполнения скриптов на Python. Возникла проблема с импортом собственных модулей. Например, есть два файла main.cpp и script.py в одном каталоге.

script.py:

def func:
	print "Hello World"

main.cpp:

#include <Python.h>

int main()
{	
	PyObject *pname, *pmodule, *pfunc;	
	Py_Initialize();
	
	PyRun_SimpleString("import sys"); 
	PyRun_SimpleString("sys.path.append('.')");
	
	pname = PyString_FromString("script");	
	pmodule = PyImport_Import(pname);
	
	if (pmodule) {
		pfunc = PyObject_GetAttrString(pmodule, "func");
		PyObject_CallObject(pfunc, NULL);
	}
	
	Py_Finalize();
	return 0;
}

При выполнении программы функция PyImport_Import() возвращает 0, т.е. модуль не импортируется. Модули самого Python, например sys или os, импортируются нормально. Способ с включением текущего каталога в sys.path подсказал гугл, но он также не помогает.

hippi90 ()

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