LINUX.ORG.RU

Сообщения thunar

 

Что установить на thinkpad x270?

Форум — Linux-install

Subj. Раньше пользовался убунтой, но с последними версиями с принудительным снапом, глючащим lightdm и пр. — не хочется даже связываться. Скачал последний mint-xfce — совсем не понравилось что там не работают кнопки регулировки яркости (laptop-tools не установлены, или фирмваря какая-то нужна?). Хочется, конечно, что-то deb-based и LTS.

 

thunar
()

matplotlib — экспортировать легенду в tex

Форум — General

Хочу сделать легенду в виде отдельного tex-файла, инжектируемого в пояснение к рисунку (кривые ссылаются на формулы, библиографию и пр.). Как такое можно провернуть, в каком формате, собственно, будут будут ключевые обозначения кривых? Можно конечно номерами сделать — но такое всегда настолько тяжело читать, что хочется сделать удобно.

 , ,

thunar
()

python: странная ошибка вычислений или я идиот

Форум — Development
#!/usr/bin/env python3
import numpy as np
import matplotlib.pyplot as plt

def main(args):
	
	th, a = 12.13, [1.8034,-1.4809,-3.8281,17.892,-30.666,16.38]
	
	evs = np.logspace(-3,3,100)
	
	ys1 = np.empty_like(evs)
	for n, ev in enumerate(evs+th):
		ys1[n] = \
		1/th/ev * (a[0]*np.log(ev/th) + np.sum([a*(1-th/ev)**j for j,a in enumerate(a[1:], 1)]))
	
	fn = lambda ev:\
		1/th/ev * (a[0]*np.log(ev/th) + np.sum([a*(1-th/ev)**j for j,a in enumerate(a[1:], 1)]))
	ys2 = fn(evs+th)
	
	fig,ax = plt.subplots()

	ax.plot(evs+th, ys1,"-k")
	ax.plot(evs+th, ys2,"-r")
	plt.show()
	
	return 0

if __name__ == '__main__':
	import sys
	sys.exit(main(sys.argv))

Две АБСОЛЮТНО ИДЕНТИЧНЫЕ формулы, одну считаем циклом, другую лямбдой. В результате в лямбде получается лажа. Это как вообще и ЧЯДНТ?

AntonI, help!

 

thunar
()

pip+cmake

Форум — Development

В продолжение этой темы. Потихоньку готовлю к публикации свой велосипед. В качестве системы сборки таки выбрал cmake и все завимисости тяну им же через FetchContent (кроме самого пайтона с хедерами). Встал вопрос, как теперь это правильно опакетить? Я попытался что-то изобразить с setup.py — ну он нормально вызывает cmake всё компилирует, создаёт egg, а дальше пока затык. Не совсем понимаю а куда потом это всё копировать/инсталлировать? Собственно, конечная цель что бы при наличии в системе компилятора и пайтона можно было установить простым pip3 install передав ему директорию или ссылку на гитхаб.

Таким образом, вопросы:

1. Какие пути надо прописать в cmake (или в setup.py). В моём случае скомпилированный проект представляет из себя две so-библиотеки + некоторое количество полезных python-снипплетов.

2. После старта, основной бинарник библиотеки динамически подгружает числодробильный бекенд. Мне не совсем понятно как правильно задать путь по которому искать бекенд, если он отличается от текущего $PWD. Я так понимаю, в моём случае лучше всё содержимое лучше держать в директории, обернув __init__.py. Но, тогда я так понимаю, при инициализации модуля библиотеки ей надо будет передать путь по которому она находится, или?

3. Есть ли истории успеха перехода с pybind11 на nanobind? Очень хочется всё таки дёргать только Py_LIMITED_API. Эта привязка к версии пайтона совсем не хорошо.

 , ,

thunar
()

Странная ошибка c шаблоном (или я идиот, или одно из двух)

Форум — Development
#include <cfloat>
#include <cstdint>
#include <cstddef>
#include <complex>

typedef uint8_t                u8;
typedef float                  f32;

template<u8 nd>
struct grid_t {

	struct node_t {

		template<u8 order>
		u8 get_form (f32 *form, u32 *ptidx, f32 *ptpos) const {
			u8 flag{0};
			return flag;
		}
	};

	node_t operator [] (u32 k) const {
		return {};
	}
};

template<u8 nd, u8 order>
void run_ppush
(const grid_t<nd> &grid) {
		auto node   = grid[0];
		u8 flag{node.get_form <order> (nullptr, nullptr, nullptr)};
// error: invalid operands of types ‘<unresolved overloaded function type>’ and ‘unsigned char’ to binary ‘operator<’
// 38 |                 u8 flag{node.get_form <order> (nullptr, nullptr, nullptr)}; 
//WAT...
}

void ppush1_1_fn
(const grid_t<1> &grid) {
	return run_ppush<1, 0>(grid);
}

 , ,

thunar
()

MetaPost — есть ли для него хороший сборник примеров?

Форум — General

В своё время, matplotlib привлёк меня своей богатой библиотекой примеров. Есть ли что ни будь подобное для metapost? Официальный мануал что то не радует и напоминет скорее справочник... $cast Evgueni

 

thunar
()

ipython и автодополнение

Форум — Development

Ipython умеет в автодополнение аттрибутов стандартных классов. Как добиться такого поведения для любого класса, особенно для тех, где переопределён __getattr__?

 

thunar
()

anaconda: боль и унижение

Форум — Development

По ряду причин, имеет место машина с древним центосом, где нет возможности обновить это или как то сделать комфортней. Ну ок, безуспешно пытаюсь заставить код хотя бы собраться на этой машине. Загнал все зависимости в FetchContent, ок, выкачивает, хоть чуть чуть легче. Но вот пайтон всё равно приходится иметь внешний — и это боль... Ok, создаём окружение:

conda create -n build_ltp python=3.10
Устанавливаем всё что нужно
conda install -c conda-forge cmake gxx gcc python-devtools
И конечно вручную прописываем переменные окружения, потому что автоматически подхватить то что нужно это не достаточно инновационно
export CMAKE_C_COMPILER=gcc && export CMAKE_CXX_COMPILER=g++ && export CMAKE_MAKE_PROGRAM=/usr/bin/make
ага, и мейк в придачу, ага, потмоу что по умолчанию там будет какой то кривой gmake. Ну и конечно, по итогу коптелятор не найдёт хедеров:
Could NOT find Python3 (missing: Development Development.Module Development.Embed)
А почему?
anaconda3/envs/ltp_build/include/python3.10/python3.10
Ага, два раза, BECAUSE REASONS.

Посему вопрос, если ли какие ни будь альтернативы, которые <<просто работают>>. Без всей вот этой мутотни, что бы был просто более-менее современный компилтор, хедеры где надо и даже не пыталось лезть и использовать что то из системы?

$cast AntonI

 , , , ,

thunar
()

clang, линкер напрочь отказывается линковаться с openmp

Форум — Development
clang++-14 -std=c++20 -fPIC -O3 -Wall -Wpedantic -fvisibility=hidden -fopenmp=libomp -shared libcpu.o cpu_porder.o cpu_pcheck.o cpu_ppush.o cpu_ppost.o cpu_remap.o cpu_pmcsim.o cpu_utils_poisson_eq.o  -o libcpu.so
/usr/bin/ld: cannot find -lomp: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

subj. Собственно, в чём беда? g++ на абсолютно той же системе (убунта 22.04) отрабатывает вооще без проблем линкует. Гуглёж выдал только какие то совсем протухшие темы аж от 18го года.

 , ,

thunar
()

pydoc → html, подсветка синтаксиса?

Форум — Development

subj. Хочу сделать автоматическую генерацию html-документации к своему велосипеду. В документации присутствуют фрагменты кода с примерами испольования, которые хотелось бы подсветить. Какие есть способы это сделать?

 , , ,

thunar
()

Линакс в 2024 (SLOR)

Форум — Talks

https://stoplinux.org.ru/none/linux-v-2024-godu-mertv-ili-zhiv.html

В Linux существует три «касты» пользователей Linux:
1. Фанатики красной шапочки (которые поддерживают во всем решения Red Hat)
2. Нейтралы
3. Ярые борцы за Патрика.

...

Что же можно сказать по итогу? Можно сэкономить кучу времени, взяв кредитную карту какого-нибудь банка, заплатить за Windows или купить какой-нибудь Mac и не знать этого всего и этой статьи. В жизни есть много более интересных дел, нежели чем разбираться в болоте озлобленных и обиженных на весь мир людей, который их не понимает.

 

thunar
()

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

Форум — Development

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

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?

Форум — Development

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

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
()

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

Форум — Talks

 

thunar
()

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

Форум — Development

Есть вот такая структура, типы с 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, как его заставить работать?

Форум — Desktop

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.

 cudatext

thunar
()

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

Форум — Talks

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

 , ,

thunar
()

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

Форум — Desktop

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

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

 , ,

thunar
()

Eureka editor

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

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

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

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

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

 , , ,

thunar
()

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

Форум — Linux-org-ru

subj:

https://foo%29bar

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

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

 

thunar
()

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