LINUX.ORG.RU

Сообщения al_exquemelin

 

Обновление @world после трёхмесячного перерыва

Здравствуйте, товарищи гентоводы!

Мой ноутбук с Gentoo (Asus Eee PC, Intel Atom N450) долго лежал на работе без дела из-за перехода на удалёнку и прочего. В последний раз пересобирал мир ещё в марте. Теперь, забрав ноут, попробовал обновить систему и, понятно, получил конфликты. Кое-как поставил mesa-20.0.8 (записал -libglvnd в make.conf, иначе этот флаг «с минусом» брался из ебилда, как я понял, и всё равно конфликтовал с eselect-opengl). А вот с xorg-server труднее.

$ sudo emerge -a1 =x11-base/xorg-server-1.20.8
Password: 

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U  ] x11-base/xorg-server-1.20.8 [1.20.6]

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

x11-base/xorg-server:0

  (x11-base/xorg-server-1.20.8:0/1.20.8::gentoo, ebuild scheduled for merge) USE="suid udev xorg -debug -dmx -doc -elogind -ipv6 -kdrive -libglvnd -libressl -minimal (-selinux) -static-libs -systemd -unwind -wayland -xcsecurity -xephyr -xnest -xvfb" pulled in by
    =x11-base/xorg-server-1.20.8 (Argument)

  (x11-base/xorg-server-1.20.6:0/1.20.6::gentoo, installed) USE="suid udev xorg -debug -dmx -doc -elogind -ipv6 -kdrive -libglvnd -libressl -minimal (-selinux) -static-libs -systemd -unwind -wayland -xcsecurity -xephyr -xnest -xvfb" pulled in by
    x11-base/xorg-server:0/1.20.6= required by (x11-drivers/xf86-video-intel-2.99.917_p20190301:0/0::gentoo, installed) USE="dri sna udev -debug -tools -uxa -xvmc"
                        ^^^^^^^^^^                                                                                                                                                                                                                                                                                                          
    x11-base/xorg-server:0/1.20.6= required by (x11-drivers/xf86-input-mouse-1.9.3:0/0::gentoo, installed) USE=""
                        ^^^^^^^^^^                                                                                                                   
    x11-base/xorg-server:0/1.20.6= required by (x11-drivers/xf86-input-libinput-0.29.0:0/0::gentoo, installed) USE=""
                        ^^^^^^^^^^                                                                                                                       
    (and 1 more with the same problems)

NOTE: Use the '--verbose-conflicts' option to display parents omitted above

!!! The slot conflict(s) shown above involve package(s) which may need to
!!! be rebuilt in order to solve the conflict(s). However, the following
!!! package(s) cannot be rebuilt for the reason(s) shown:

  (x11-drivers/xf86-input-libinput-0.29.0:0/0::gentoo, installed): ebuild is masked or unavailable
  (x11-drivers/xf86-video-intel-2.99.917_p20190301:0/0::gentoo, installed): ebuild is masked or unavailable
  (x11-drivers/xf86-input-mouse-1.9.3:0/0::gentoo, installed): ebuild is masked or unavailable

То есть три драйвера из x11-drivers не признают моего апдейта. Где их ебилды, кто виноват и что делать в таких случаях?

 , ,

al_exquemelin
()

Массив в классе и странности

Всем привет. Давно не писал на C++, захотелось вспомнить этот язык. Накатал следующий класс.

plane.hpp

class Plane
{
    public:
        Plane(int planetype);
        float *bodyx;
};

plane.cpp

#include "plane.hpp"
float bx[][6] = {{0, -5, -6, 0, 6, 5}, {1, 1, 1}};

Plane::Plane(int planetype)
{
    cout << sizeof(bx[planetype]) << " " << sizeof(bx[planetype][0]) << " " << sizeof(bx[planetype]) / sizeof(bx[planetype][0]) << endl;
    for(unsigned int k=0; k<sizeof(bx[planetype])/sizeof(bx[planetype][0]); k++)
    {
        bodyx[k] = bx[planetype][k];
        cout << bodyx[k] << " ";
    }
    cout << endl;
}

main.cpp

#include "plane.hpp"
int main(int argc, char* args[])
{
    Plane* player = new Plane(0);
    cout << sizeof(player->bodyx) << " " <<  sizeof(player->bodyx[0]) << " " << sizeof(player->bodyx) / sizeof(player->bodyx[0]) << endl;
    for(unsigned int k=0; k<sizeof(player->bodyx)/sizeof(player->bodyx[0]); k++)
    {
        cout << player->bodyx[k] << " ";
    }
    cout << endl;
}

Вывод:

24 4 6
0 -5 -6 0 6 5 
8 4 2
0 -5 
Ошибка сегментирования (стек памяти сброшен на диск)

То есть в конструкторе в массив благополучно перешли все 6 значений. А куда же по дороге делись 4 из них и что я делаю не так?

 , ,

al_exquemelin
()

Как правильно записать blob в таблицу?

Всем привет. Есть у меня в БД таблица, куда я хочу запихать (при помощи R и DBI) в бинарном виде картинки из файлов.

sqlite> .schema photo_blobs 
CREATE TABLE photo_blobs ( point_id integer PRIMARY KEY, photo blob );
Если для прочих таблиц я собирал в R data.frame и командовал dbWriteTable, то здесь получается ерунда:
> head(photo_blob)
  point_id photo
1        1    ff
2        1    d8
3        1    ff
4        1    e0
5        1    00
6        1    10
то есть на каждый байт по строчке. Можно ли весь блоб сделать одной «ячейкой»? Или нужно писать запрос с INSERT INTO photo_blobs (и так далее) и отправлять через какой-нибудь dbGetQuery?

 , ,

al_exquemelin
()

Ошибка TLS в браузерах на WebKit

Значит, собрал я в своей генте webkit-gtk, поставил Midori, в домашней сетке всё пашет как надо. А в рабочей трафик ходит через HTTP-прокси (задаю в /etc/environment), и Midori вместо любой страницы выдаёт что-то там про unexpected TLS packet. То же самое в surf (тоже на WebKit), который я поставил для проверки. Приложил бы более вразумительное описание ошибки, но оба браузера при этом ничего не выводят в консоль.

Софт, не требующий шифрования, работает: emerge, pyradio, например. Менеджер пакетов в R не работает, ему нужен HTTPS. Так вот, это я что-то не дособирал или просто кривые руки?

 , ,

al_exquemelin
()

Как собрать байты в строчку через \x?

Всё просто, как пареная репа, но я что-то слегка запутался в питоньих функциях.

>>> devId = 0x5a
>>> devInit = 0xa0
>>> hex(devId + devInit)
'0xfa'

Значит, для отправки в последовательный порт мне нужна строчка b'\x5a\xa0\xfa'. Как её сформировать, не разводя индусского кода?

 , ,

al_exquemelin
()

numpy в зависимостях

Всем привет. Я тут недавно впервые поставил Gentoo, типа, сколько живу на свете, а генту ни разу не ставил... ладно, неважно XD Есть такая полезная штука как numpy, но меня несколько удивляют зависимости от неё:

$ sudo equery depends numpy
 * These packages depend on numpy:
dev-python/pygtk-2.24.0-r4 (dev-python/numpy[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
$ sudo equery depends pygtk
 * These packages depend on pygtk:
dev-python/notify-python-0.1.1-r3 (>=dev-python/pygtk-2.24:2[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
net-misc/wicd-1.7.4-r3 (gtk ? dev-python/pygtk[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
x11-misc/sunflower-0.2_alpha59 (>=dev-python/pygtk-2.15.0[python_targets_python2_7(-)?,-python_single_target_python2_7(-)])
Это что, для того, чтобы поставить двухпанельник sunflower, мне действительно необходимы все возможности numpy? А то по времени компиляции и занимаемому месту она далеко не на последней позиции. Да и вообще не хочет собираться до конца после каких-то моих манипуляций, но это уже другой вопрос.

 ,

al_exquemelin
()

В чём организовать результаты измерений?

Значит, планируется один эксперимент, и на выходе, в каждой «точке» будет набор разнородных данных. Например: 1. дата и время (формат по какому-нибудь из стандартов); 2. координаты по GPS (float); 3. комментарий-1 (string); 4. фото (картинка в jpeg, конечно); 5. данные-1 (int[ ]); 6. данные-2 (int[ ][ ]); 7. комментарий-2 (string)... И так далее, и тому подобное. Будет этого, возможно, несколько сотен «точек», никаких терабайт big data и прочих модных словечек.

Так вот, с помощью чего разложить эти данные по полочкам, чтобы с минимумом возни получать выборки, например, по дате измерений или по одному из комментариев? Саму обработку, математику, можно будет делать в чём угодно, она будет простой.

 ,

al_exquemelin
()

COM -> USB с минимумом проблем

Есть один старый прибор, который отдаёт данные по последовательному порту (COM female на конце кабеля) и который надо будет подключать к ноутбуку, где есть только USB-порты. Есть вот такой девайс, но он здоров, требует питания (220 вольт) и свои драйвера. Т. е. я не уверен даже, что он заведётся под новой виндой, не то что под линуксом. Чем бы его заменить?

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

 , ,

al_exquemelin
()

pgfplots: что сломали между 1.5 и 1.13?

Это надо писать в рассылку pgfplots, наверное, или где его там обсуждают, но вдруг и здесь есть те, кто близко сталкивался.

У меня был трёхмерный график, вот код для него в отдельном документе (pastebin, потому что таблица длинная, 10 на 100 точек). С месяц назад у меня было задано \pgfplotsset{compat=1.5}, потом я этот график временно выбросил из документа, потом поменял на \pgfplotsset{compat=1.13} и благополучно забыл про это дело. А вчера вернул график в документ и сломал себе все мозги в попытках понять, почему вылезает по нескольку раз дурацкая ошибка Undefined control sequence. }\marray. Конечно, undefined, я ведь её здесь и объявляю, прочитав таблицу. Ни row sep=\\ не помогло, ни прочая беготня с бубном.

Так я это всё к чему: там правда что-то поменяли между этими двумя версиями? Но код-то совпадает с тем, что в мануале, будь он неладен.

 , ,

al_exquemelin
()

Где в LaTeX for?

Всем привет. Взялся я тут сделать в LaTeX листки с заданиями студентам: одна фамилия, один набор значений в задачке — один лист в pdf-ке на выходе. Но как сделать цикл по этим наборам? Под руку попался только \foreach из TikZ, хотя странно его подключать при том, что ничего не собираешься рисовать.

\documentclass[a4paper, 12pt, oneside]{scrartcl}

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}

\usepackage{soulutf8}

\usepackage{pgfplots}
\pgfplotsset{compat=1.5}

\newcommand{\ulfill}[1]{\ul{\mbox{~~~#1~~~}}}
\newcommand{\groupnumber}{1111}

\begin{document}
	\pagestyle{empty}
	
	\foreach \studentname / \mat / \dp / \ap / \A in {
		{Иванов И. И.} / {зачернённая алюминиевая} / {10} / {1} / {1},
		{Петров Е. Е.} / {зачернённая медная} / {10} / {1} / {1}
		} {
		\begin{center}
			
			\vspace{3ex}
			ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ ПО ПРАКТИЧЕСКИМ ЗАНЯТИЯМ №\ulfill{3} 
			
			\vspace{3ex}
			\textbf{МОДЕЛИРОВАНИЕ ПЕРЕХОДНЫХ ПРОЦЕССОВ В ПРИЁМНИКАХ ИЗЛУЧЕНИЯ}
		\end{center}
		
		Исходные данные:
		\begin{enumerate}
			\item Приёмная площадка: \ulfill{\mat} фольга толщиной \ulfill{\dp} мкм, площадью 
				\(A_p =\) \ulfill{\ap} \(\text{см}^2\), с неселективным коэффициентом поглощения 
				\(A =\) \ulfill{\A}.
		\end{enumerate}
		

		Студент гр. \ulfill{\groupnumber} \ulfill{\studentname}

		\clearpage
		}
\end{document}

Да и то — этот код начинает сыпать невразумительными ошибками типа Undefined control sequence.} на предпоследней строчке, если я оставляю три и больше параметра в наборе. Если закомментировать все, кроме \studentname и \mat, а также \clearpage, то собирается с грехом пополам.

P.S. Запоздало врубился, что везде на автомате ставил \usepackage{pgfplots} вместо \usepackage{tikz} напрямую, но второе зависит от первого, так что разница, вроде, невелика.

 ,

al_exquemelin
()

gnuplottex зацикливает сборку проекта

Приветствую. У меня есть проект, который собирается при помощи latexmk, в Makefile написано следующее:

dissertation:
	#	$(MAKE) -C Dissertation
	latexmk -pdf -pdflatex="xelatex --shell-escape %O %S" dissertation
Графика вставляется через graphicx. Всё работает, пока я не вставляю графики gnuplottex. Тогда получается вот что:
Rule 'pdflatex': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'gnuplottex/dissertation-gnuplottex-fig1.eps'
Latexmk: Maximum runs of pdflatex reached without getting stable files
Latexmk: All targets (dissertation.pdf) are up-to-date
Latexmk: Did not finish processing file 'dissertation':
   'pdflatex' needed too many passes
Latexmk: Use the -f option to force complete processing,
 unless error was exceeding maximum runs of latex/pdflatex.
Makefile:8: ошибка выполнения рецепта для цели «dissertation»
make: *** [dissertation] Ошибка 12
То есть график перестраивается при каждом проходе, и latexmk, как я понял, «решает», что файл изменился и надо ещё раз пройтись по проекту. Как этого избежать? Ну, кроме как построить графики руками и подсунуть в проект уже eps-ки.

Нагуглил вот эту тему на Stack Exchange, но там «виноват» был другой пакет. Первый вариант оттуда не помог, остальные пока не пробовал.

 , ,

al_exquemelin
()

Нужен русскоязычный live CD

Собственно, разыскиваю сабж, легковесный, но толковый и с интерфейсом на русском. Именно CD, старый ноутбук с флешки не грузится.

Скачал по старой памяти SLAX — там из коробки нет pptp. Раньше можно было скачать у них образ с добавленными модулями прямо с сайта, а-ля корзинка в супермаркете, а теперь я такой ссылки не наблюдаю. Надо перебирать вручную.

В PuppyRus pptp имеется, зато ничего не показывает which perl, а Perl нужен для работы этого самого VPN-клиента.

В общем, что ещё стоит попробовать?

 ,

al_exquemelin
()

swap блокирует загрузку

Всем привет. Поставил Xenial, обновляя по LTS, и теперь система грузится через два раза на третий. Останавливается на сообщении A start job is running for dev-sda2.service + A start job is running for dev-disk-by-uuid\(uuid раздела со swap) с таймаутом в полторы минуты. Иногда к этому добавляется Coldplug all devices с бесконечным таймаутом. Но в конце концов это всё выливается в maintenance console, из которой загрузка не идёт дальше.

Проверял UUID в /etc/fstab, /dev/disk/by-uuid и где там ещё они нужны — совпадают. Пробовал в /etc/fstab указывать /dev/sda2, добавлять noauto, комментировать эту строчку (на форуме Arch встречал утверждение, что systemd самостоятельно находит раздел со swap и монтирует, даже без записи в fstab). Ничего не меняется.

Понимаю, что без логов это слишком похоже на объяснение на пальцах, но тут у меня ещё загвоздка:

$ sudo journalctl -b -1
Specifying boot ID has no effect, no persistent journal was found
$ sudo mount
...
/dev/sda4 on / type ext4 (ro,relatime,errors=remount-ro,data=ordered)
...

 , ,

al_exquemelin
()

Список сложных объектов или словарь из них же

Это снова я. В предыдущих сериях темах упоминался класс для описания людей. Так вот, если я хочу насоздавать, допустим, пару тысяч его экземпляров с произвольными параметрами — во что удобнее их объединить? Можно в список — и ориентироваться по индексам, можно присвоить каждому уникальный ключ и собрать их в словарь.

С точки зрения объёма кода разница, вроде, невелика. Для внешнего пользователя тем более безразлично, потому что у всех экземпляров разные имена (значения self.name), и если кто-то захочет посмотреть сведения про Ивана Иванова, то будет искать его как раз по имени. Может быть, будет разница в скорости операций с этим самым списком или словарём?

 , ,

al_exquemelin
()

Класс-счётчик времени

Всем привет. Возник ещё один нубский вопрос про Python. Хочу сделать следующее: 1)создать свой класс вроде class MyTime(datetime.datetime); 2)написать в нём метод, чтобы выводил текущее значение в нужном мне виде; 3)написать в нём метод, чтобы увеличивал текущее значение на заданную datetime.timedelta в зависимости от аргумента.

И вот если первые две задачки не вызывают вопросов, то третья вызывает ещё как. По self собственное значение экземпляра не изменишь, как я уже понял из мануала. Поля у datetime.datetime не writeable, увы. Можно было бы сделать эту переменную глобальной, а функции написать «россыпью», но логичнее всё это объединить в класс, нет?

 , ,

al_exquemelin
()

Сгруппировать составляющие класса

Решил тут для разминки мозгов немного поучить Python и вспомнить навыки ООП (чего не сделаешь, чтобы не заниматься делами, хе-хе). Допустим, я хочу описать некоего абстрактного человека с вот такими характеристиками (не код, просто схема):

Person
|-name = 'John'
|-age = 40
|-face
  |-shape = 'round'
  |-color = 'bronzed'
|-body
  |-height = 'short'
  |-build = 'sturdy'
#и так далее...
Так вот, как получить структуру вроде той, что на схеме, чтобы потом писать, например, Person.face.shape? Нужно ли делать face и body классами внутри класса Person?

 , ,

al_exquemelin
()

Как русифицировать siunitx?

Вспомнил, что хотел в нескольких файлах заменить свои топорные единицы измерения (через \text{}) на siunitx. Вот тут нашёлся файлик для конфигурации, положил его рядом с исходными текстами. Но куда, собственно, ставить \usepackage{siunitx}?

Как обычно, есть кодировки и babel:

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
Ставлю после них — получаю
Symbol font `TS1letters' is not defined. ...Symbol \c__siunitx_minus_tl { TS1 } { 61 }

Ставлю до них — получаю не те символы: \SI{1,23}{\micro\meter} превращается в 1 . 23 РёРәРё. Где я ошибаюсь?

 ,

al_exquemelin
()

«Подстановка» шрифта в графику

Значит, такой вопрос. Вот я рисую, например, в Inkscape что-нибудь, сохраняю в .eps, вставляю в документ через \includegraphics. Есть способы удостовериться, что на рисунке будет то же начертание и размер шрифта, что в самом документе? Ну, кроме того, чтоб не рисовать в Inkscape, а рисовать скриптами прямиком из самого документа.

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

 ,

al_exquemelin
()

Сломал подсветку синтаксиса в vim

С праздниками всех! Я тут был неприятно удивлён тем фактом, что vim неправильно расставляет подсветку, если выбрать класс документа beamer.

Я создаю документ intro.tex, пишу \documentclass[utf8]{beamer} — получаю неправильную подсветку. Создаю рядом intro2.tex, пишу \documentclass[utf8]{report} — получаю правильную (gruvbox должен выглядеть, как в этой моей теме), меняю report на beamer — правильная подсветка сохраняется. Пытаюсь проделать то же с intro.tex — получаю облом, vim уже где-то взял на карандаш это имя файла, как я понимаю.

Вот, сижу пытаюсь гуглить — как сбросить эти настройки? И вообще, кто виноват и что делать?

 , ,

al_exquemelin
()

Рассортировать точки по областям

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

 

al_exquemelin
()

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