LINUX.ORG.RU

Сообщения thunar

 

Никак не могу напиать конструктор статично полиморфного класса.

 ,

Например, есть базовый шаблонный класс в котором содеражатся настройки:

template<int nd>
struct config_t<nd> {};
Есть класс, содержащий данные, который дожен инициироваться с помощью config_t:
template<typename tp>
struct data_t {};
Эти классы упакованы в варианты:
typedef std::variant<config_t<1>, config_t<2>, ...> сonfig_var;
typedef std::variant<data_t<float>, data_t<double>, ...> data_var;
Эти варианты хранятся в холдере где для них делается выделение памяти, инициализация и пр:
struct config_holder : config_var {
	struct {
		// stuff
	} control;
	
	config_holder (int nd, ...); // nd -> config_t<nd>
};

struct data_holder : data_var {
	struct {
		// memory management & stuff
	} control;
	
	data_holder (std::string &&type, const config_var &cfg, ...) { // data_holder -> data_t<type>
		// What to do in the Kathmandu?..
	}
};

Смысл конструкции в том, что config_holder кодирует некоторые операции, а data_holder хранит данные (над которыми проводятся эти операции) и иницируется строкой задающей тип и конфигом. Базовые шаблонные типы (которые с *_t) потом передаются в числодробильный бэкэнд. А *_holder это интерфейсы, с которыми взаимодействует пользователь.

И вот тут я застрял. Следуя совету intelfx, у меня получилось написать конструктор для config_holder, но с data_holder не понимаю как подступиться...

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

$Cast AntonI; $Cast mittorn;

thunar
()

Как правильно унаследоваться от std::variant?

 ,

Хочется сделать контейнер, что-то вроде такого:

template <int n>
struct foo {
	float v[n];
};

struct foo_holder : std::variant<foo<1>, foo<2>> {
	
	struct {/* some stuff */} info;
	
	foo_holder (int nd) {
		if (nd==1) /* foo<1> */;
		if (nd==2) /* foo<2> */;
	}
};
Где хранимый тип определяется параметрами конструктора. Никак не пойму как такое сделать правильно. Или как тут лучше быть?

thunar
()

ПОГРОМИРОВЫВАЙ

 

thunar
()

Странный варнинг c++.

 ,

Есть вот такая структура, типы с py:: — из pybind11-неймспейса.

struct csection_set_cfg {
	typedef mprog_t::opc_t opcode;
	
	std::vector<std::string>      ptinfo, bginfo;
	float                         max_energy;
	std::vector<mprog_t>          progs;
	std::vector<float>            cffts, points, cstabs, rates, tabs;
	std::map<uint16_t, py::tuple> dset;
	uint8_t                       tsize, ntype; 
	uint8_t                       ncsect, nprog;
	
	csection_set_cfg
	(py::str, py::str, std::vector<py::dict>, float, py::dict);
};
Компилирую и вылезает такое:
./g++ -std=c++20 -fPIC -O3 -Wall -Wpedantic -fopenmp -Waggressive-loop-optimizations -c def_csections.cxx -I. -I./fmt/include 
In file included from def_csections.cxx:1:
def_csections.hxx:21:8: warning: ‘csection_set_cfg’ declared with greater visibility than the type of its field ‘csection_set_cfg::dset’ [-Wattributes]
   21 | struct csection_set_cfg {
      |        ^~~~~~~~~~~~~~~~
WAT. Причём на остальные члены класса ему пофиг, а на этот конкретный ругаетс хоть тресни. ЧЯДНТ?

thunar
()

cudatext, как его заставить работать?

 cudatext

This command requires Python engine. Set proper value of «pylib__linux» in the user.json.

ок, добавляю в user.json

{
  "font_name__linux": "Fira Code",
  "font_size__linux": 16,
  "ui_font_name__linux": "Fira Code",
  "ui_font_size__linux": 12,
  "pylib__linux": "/usr/lib/x86_64-linux-gnu/libpython3.10.so"
}

И, получаю всё ту же ошибку. ЧЯДНТ? Сudatext взял из flathub io.github.cudatext.CudaText-Qt.

thunar
()

История появления null-терминированных строк

 , ,

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

thunar
()

Текстовый (tex/latex) редактор с совместным редактированием по сети?

 , ,

subj. Есть ли такое?

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

thunar
()

Eureka editor

 , , ,

Оказывается, есть такой редактор карт для классических *doom, Eureka.

Программа приятно удивила своим быстродействием (особенно в сравнение со SLADE), благо UI написан на FLTK. Поначалу сильно озадачило управление — чем-то напомнило старый интерфейс Blender`а — очень много хоткеев, при этом, большая часть их совершенно не нужна. Но в плюс автору можно сказать, что всё это настраивается (хоть и весьма странным способом), и ненужности легко отключить.

Немного озадачила работа с 3d-камерой — так и не понял как её использовать с тачпада. Впрочем, как оказалось, танковое управление с клавиатуры на ноутбуке вполне себе удобно. Как я понял, на контрасте с вышеупомянутым SLADE, автор эврики не пытается сделать комбайн, покрывающий все потребности ретро-сцены, а сосредоточил усилия хорошем редакторе карт, и у него получилось. Поэтому пожелаю ему всяческих успехов.

P.S.: Не нашёл, умеет ли он UDMF, впрочем, мне сейчас интересно сделать что-то совместимое с ванильным Ultimate DOOM.

thunar
()

скобочка ломает парсер ссылок

 

subj:

https://foo%29bar

Перемещено shell-script из linux-org-ru

Перемещено shell-script из development

thunar
()

latex: chemformula + babel — Command \ch already defined.

 , chemformula,

В который раз натыкаюсь, \ch из русскоязычного babel конфликтует с \ch из chemformula, и никак не могу вспомнить хак, как это забарывал. Минимальный пример

\documentclass[10pt]{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[russian,english]{babel}

\let\ch\relax % <<=== не работает ЧЯДНТ!?
\usepackage{chemformula}


\begin{document}

\ch{H2O}
\end{document}
Command \ch already defined. \begin{document}

thunar
()

geeqie okular plugin

 ,

subj. geeqie умеет показывать превью pdf-файлов, что весьма удобно если нужно разбирать большое количество материала. Но очено не хватает возможности открыть этот файл в okular. Есть опции для gimp, для imagemagic. В меню плагинов okular есть, но в состоянии hidden. При этом никакой галочки что бы его анхайдить нет. В документации сказано что за это отвечают опции NoDisplay и Hidden в .desktop-файле. Но их явное указание не дают ни какого эффекта. ЧЯДНТ и ДОКОЛЕ?

thunar
()

Какую систему сборки выбрать для c++-библиотеки для пайтона.

 , ,

В продолжение этой темы.

Вообщем, потихонечку финализирую и готовлю к публикации свой pet-project. Но возник вопрос какую выбрать приличную сборочную систему, т.к. сейчас я использую абсолютно непортабельный Makefile с кучей костылей — и выносить такое на публику не хочу.

Собственно subj. Проект — библиотека для python, написанная на c++ с использованием pybind11.

Фактически, библиотека состоит из двух частей, которые шарят между собой некоторые хедеры:

  • frontend взаимодействующий с python-кодом, содержащий биндинги для всех классов и функций;
  • backend (которых, в перспективе будет несколько, но пока один) — динамически загружаемая библиотека, содержащая сами расчётные функции.

Подводные камни, с которыми не понимаю как правильно быть:

  • зависимости (которые я сейчас просто скриптм сгружаю с гибхаба и кладу в отдельную директорию и симлинкаю в директории с исходниками):
  • на этапе сборки backend скриптом из python делается немного кодогенерации что бы проинстанцировать все комбинации шаблонных параметров.
  • разнцые опции компилятора при сборке front- и backend, в дальнейшем и разные компиляторы (т.к. буду использовать hip и cuda)
  • как-то хочется что бы оно минимально зависело от версии интерпретатора и избегать подобного:
    ImportError: Python version mismatch: module was compiled for Python 3.10, but the interpreter version is incompatible: 3.11.4 (main, Jul  5 2023, 14:15:25) [GCC 11.2.0].
    (upd: избежать не получится)

Соответственно, хочется что бы всё это это собиралось как-то максимально безболезненно, желательно прямо в python-пакет, который можно будет впоследствии установить pip-ом. Вероятно, мне нужна какая-то python-центричная сборочная система.

Так-как сам я не программист, то спрашиваю советов и best-practice для моего случая.

thunar
()

Генерация многомерной случайной величины по заданной плотности вероятности.

 , ,

subj. Для одномерной всё понятно: интегрирую плотность верятности f(x) что бы получить cumulative distribution function F(x). Дальше элементарно нахожу обратную функцию F^{-1}: x(R∈0..1) и получаю интересующие сэмплы подставляя в обратную функцию равномерное распределение, отыскивая конкретную точку бинарным поиском. Как такое же проделывается для многомерного распределения?

thunar
()

xfce4 отключить screen lock при закрытии крышки, но оставить про suspend?

 

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

thunar
()

acer aspire A315-35

 acer aspire

Насколько subj совместим с линаксом и какие подводные камни? Читаю страшилки про oem lock и пр.: https://community.acer.com/en/discussion/635997/is-it-possible-to-install-ubu.... Насколько всё проблемно?

Внезапно, ubuntu 22.04.3 установилась без проблем (только секурбуут отключил в бивисе).

thunar
()

виртуалбокс на ведроиде?

 ,

subj. Возможно ли на ведроид установить виртуалбокс с полноценным линаксом?

thunar
()

matplotlib.pyplot.imshow — вывести png без искажений

 ,

Хочу вывести фоном к своим графикам скриншот из статьи. Делаю

ax.imshow(mpimg.imread(f"img.png"), extent=[x0,x1,y0,y1], ...)
Но проблема в том, что у меня на графиках логарифмический масштаб, и на рисунке тоже — но при отображении matplotlib трансформирует рисунок в логарифмический масштаб ещё раз. Как сказать ему не делать так, а просто отобразить изображение как есть без трансформации в такой-то области?

thunar
()

belline отключить подписку

 , ,

Случилось. Выскочило на уведомление, по которому включили платную подписку при закрытии. Как эту дрянь убрать? Перепробовал уже десяток вариантов из сети — хрен бы. По USSD удалось добиться только то что он показывает, «да подключили», и никакой команды на отключение не возвращает. Пробовал добраться до личного кабинета, так сайт устроен так что по кругу мотает, а вместо временного пароля по смс присылает временный код, который не работает. Вообщем, реквестирую помощи у тех, кто знает как гадину забороть.

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

thunar
()

python + внешний контроль программы

 ,

Задача. Есть числодробилка засылаемая на кластер, с которой нет возможности как-то взаимодействовать после запуска (python-скрипт дрёгающий HPC-библиотеку, в бесконечном цикле рассчитывающую эволюцию системы). Тем не менее, хочется некоторого уровня интерактивности (кроме тупой возможности прикончить таск из менеджера задач). В идеале, хочется что-то вроде debug-режима, по которому можно подсоединиться к таску, послать туда какие-то команды и/или иметь полноценную ipython-консоль с доступом во всем внутренностям скрипта. Как такое лучше реализовать?

$cast AntonI

thunar
()

tail нескольких файлов?

 , ,

Есть необходимость периодически посматривать 100500 логов расчёта задач. Заводить под это дело множество фреймов в screen как-то не с руки. Можно ли как то сделать это средствами самого tail c переключением логов по хоткеям?

thunar
()

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