LINUX.ORG.RU

Избранные сообщения thunar

Подобрать такую RGB палитру для .pdf, что бы при переводе в CMYK в издательстве не было вырвиглазия?

Форум — Development

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

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

0 0 0 0, 1 1 0 0, 3 1 1 0, 4 0 1 0, 5 0 1 1, 6 0 0 1, 7 1 0 1, 8 1 1 1

Мб ее можно на что то заменить для CMYK?


Спасибо @Irma за идею - подобрал похожие цвета которые есть в CMYK, использовал ссылку https://rgb.to/ral/page/1

Вышло вот так:

0 0 0 0, 1 1 0 0, 3 1 1 0, 4 0 1 0,     5 0 1 1,        6 0 0 1,    7 1 0 1,  8 1 1 1
0 0 0 0, 1 1 0 0, 3 1 1 0, 4 0 .71 0.1, 5 0 .537 .714,  6 0 .22 .48, 7 0.737 .251 .467,  8 1 1 1

 , ,

AntonI
()

[С++] Обход окрестности точки

Форум — Development

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

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

 

vasaka
()

Beamer, кириллица и XeLaTeX

Форум — General

Итак, имеется документ следующего содержания:

\documentclass{beamer}


\usepackage[russian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T2A, T1]{fontenc}
\usepackage{fontspec}  
\setmainfont{Times New Roman} 


\begin{document}
	Привет Руддщ Hello!!!
\end{document}

Компилируется XeLaTeX-ом, результат как-то не впечатляет: https://imgur.com/a/Xvh2I4S Причем каким-то образом один раз все проявилось, после чего я на радостях перенес содержимое в новый файл, сохранил, получил снова без родной кириллицы. В чем проблема и как это наконц-то пофиксить? Вариант PdfLaTeX мне не нравится, потому что нужны другие шрифты.

 , , ,

JAkutenshi
()

Проблема с политикой безопасности ImageMagick

Форум — General

Делаю:

$ convert file.png file.pdf
Получаю:
$ convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
С конвертацией других форматов нет проблем. Заглянул на официальный сайт, но... Как исправить ошибку?

 , ,

sooio
()

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

Форум — Development

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

Вообщем, потихонечку финализирую и готовлю к публикации свой 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
()

Хочу штуку для озвучивания выделенного текста

Форум — Desktop

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

 ,

bo4ok
()

Охлаждение мощного ноутбука как жертва маркетинга, или нет в жизни совершенства

Форум — Science & Engineering

Озаботился я тут выбором нового ноутбука и решил немножко посчитать. Пардонте, будет много букв;-(

Итак, хочется ноут помощнее (на случай работы от блока питания), но что бы его было нормально носить (на случай куда поехать далеко). Фантазируем и ограничения по цене не рассматриваем. Вариантов помощнее с разумным весом сейчас есть, ноут с видеокартой A5000 и бол-мен топовым процом может весить меньше чем 2кг. Специально еще раз подчеркиваю - при максимальной нагрузке батарейка будет улетать меньше чем за час и работать в таком режиме надо будет от внешнего питания, тред не о питании.

Кроме вопросов питания, в ноутбуке есть еще проблема охлаждения. И вот тут все очень грустно. Ноутбук (при весе меньше 2кг) это агрегат который ШТАТНО должен работать в режиме на коленках пользователя/животе пользователя/на покрывале (диване) - вентиляция снизу оказывается перекрытой. Вариант работы на столе прекрасен, но для носимого ноутбука в дороге он скорее экзотичен. При работе от внешнего источника питания на максимальной нагрузке ноутбук не должен орать как бешеный слон и не должен поджаривать пользователю коленки.

Я не инженер, я физик, давайте немножко посчитаем. Сначала оценим возможности пассивного охлаждения. Будем полагать, что тепло может уходить только от верхней части ноута (снизу покрывало), температура окружающей среды 290-300K (17-27C), температура верхней части 310-320К (37-47С), то есть разница 20 градусов. При нагреве верха больше 47С наверное работать будет уже совсем некомфортно. Будем считать, что площадь теплоотводящей поверхности 5дм.кв.

За счет излучения можно отвести (закон Закон Стефана — Больцмана, при условии что корпус черный)

W1 = 5.76e-8*(310**4-290**4)*5e-2 = 6.2Вт.

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

W2 = 20/(50/sqrt(500)) = 9Вт.

Итого, за счет пассивного охлаждения можно сбросить 15Вт, причем треть (!!!) сбрасывается за счет излучения. Это плохая новость для владельцев понтовых ноутов со светлыми корпусами и пассивным охлаждением - коэффициент черноты даже для сильно окисленного алюминия 0.31, то есть 4Вт теплоотвода из 15ти у вас слямзили маркетологи и дизайнеры.

Теперь давайте посмотрим что может дать воздушное охлаждение. Тут все просто. Теплоемкость воздуха ~1Дж/(дм.куб * град). То есть при сечении воздуховода в корпусе 10см.кв. и скорости потока 1м/c можно снимать 1Вт на каждый градус перегрева. При перегреве 50градусов (внутри корпуса это нормально) можно спокойно снять 50Вт. И вот тут наступает самая печаль.

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

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

Но фига, маркетологи говорят - лишние 5мм снизят привлекательность продукта. Потому имеем илитные ноуты с топовой начинкой у которых дно как дуршлаг и прилично греется, а система охлаждения если не орет как бешеный слон то таки шумит прилично… ну не редиски?!

Кто в теме - покритикуйте оценки расчетов теплоотвода. Остальные могут разделить мою печаль;-(

Cast @hateyoufeel как счастливого обладателя такого девайса.

ЗЫ неожиданно глянул обзор https://www.ixbt.com/mobilepc/apple-macbook-pro-16-2021-m1-max-review.html - там как раз ноут чуть толще с дырками по бокам. Но по тестам на максималках орет как бешеный слон.

 , ,

AntonI
()

XOR через AVX на C

Форум — Development

Всем здравия! В Сях не бум бум вообще, прошу у вас помощи :)

Есть большая переменная на 128 байт для примера (по факту 128MB, но не суть). Нужно каждые её 8 байт XORить со следующими. И желательно с помощью AVX.

uint8_t A[128];
uint64_t X[128/8];
for (int i = 0; i < 128/8; i++)
{
     X[i] = X[i] ^ (uint64_t*)&A[i];
}

Если надо не uint64_t, а другое типа uint256_t (на тип есть библиотека), то будет так?

uint8_t A[128];
uint256_t X[128/32];
for (int i = 0; i < 128/32; i++)
{
     X[i] = X[i] ^ (uint256_t*)&A[i];
}

Как я понимаю этот код будет правильно работать? Можно это сделать через инструкции AVX? Будет быстрее, чем простой xor ^? Указатели, звездочки и амперсанды для меня тёмный лес:) не ругайте строго, просто надо с этим кодом разобраться.

 ,

NotWin
()

Linux и другие свободные ОС могу формально стать незаконными в ЕС

Форум — Talks

Суть такова: Евросоюз прорабатывает законодательный документ, известный среди простого народа как «Chat Control», который сводится к тому, что приватная коммуникация в ЕС как бы всё.

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

Задницы VPN провайдеров и прочих компаний, зарабатывающих деньги на основе privacy-решений, уже начинают подгорать.

Согласно этим самым VPN провайдерам, забавный побочный эффект сего документа заключается в том, что при «правильной интерпретации» он может фактически забанить свободные ОС, включая Linux.

Статья от одной из подгоревших компаний

Ещё материалы от них же, включая ссылку на сам документ

Разьяснение от активистов немецкой пиратской партии, чем грозит новый закон

Немного копипасты для Ъ:

The proposed Chat control EU law will not only seize totalitarian control of all private communication. It will also ban open source operating systems as an unintended consequence.

The EU Commission proposes to oblige providers to search all private chats, messages, and emails automatically for suspicious content – generally and indiscriminately. The stated aim: To prosecute child sexual exploitation material (CSEM). The result: Mass surveillance by means of fully automated real-time surveillance of messaging and chats and the end of privacy of digital correspondence.

Other aspects of the proposal include ineffective network blocking, screening of personal cloud storage including private photos, mandatory age verification resulting in the end of anonymous communication, appstore censorship and excluding minors from the digital world.

Ещё хотел накопировать параграфов из евродокумента, но там слова чайлд, сехс и абуз упоминаются так часто, что, боюсь, ЛОР от моей копипасты попадёт в чёрный список соотвествующих служб.

 , , , ,

runtime
()

Как создать в константной памяти CUDA объект с нетривиальным конструктором?

Форум — Development

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

При создании в константной памяти карты эти конструкторы можно не вызывать - все равно объект создается на CPU и потом копируется на карту байт в байт.

Единственное что в голову приходит - выделить на карте константный массив char нужного размера, скопировать в него объект с хоста и потом на карте каждый раз кастовать указатель. Выглядит костыльно, м.б. есть какой то более Ъ вариант?

 

AntonI
()

Как забороть latexdiff?

Форум — Development

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

line 342: Argument of \@quantity has an extra }. ...in\theta_{1}\dd{\theta_{1}}\dd{\varphi}$}
line 342: Paragraph ended before \@quantity was complete. ...in\theta_{1}\dd{\theta_{1}}\dd{\varphi}$}
line 342: Missing $ inserted. ...in\theta_{1}\dd{\theta_{1}}\dd{\varphi}$}
line 342: Missing } inserted. ...in\theta_{1}\dd{\theta_{1}}\dd{\varphi}$}
Ругается на последнюю строку в блоке
\DIFaddbegin \DIFadd{:
$
	S = \iint \qty( {f^*F^*} - fF )
	\cdot
	\qty|\vb{v}-\vb{V}| \sigma_{\rm diff}\qty(\qty|\vb{v}-\vb{V}|,\,\theta_{1})
	\dd{\Omega_{1}}\dd{\vb{V}}
$.
Here $F$ represents another (or the same) VDF to interact through the collisions,
star marker denotes resulting VDFs after the collision;
$\sigma_{\rm diff}$ denotes differential cross-section, which depends on the relative velocity and scattering angle;
$\dd{\Omega_{1}}=\sin\theta_{1}\dd{\theta_{1}}\dd{\varphi}$}\DIFaddend ,
Собственно, а куда смотреть? Все открывающие скобки с закрывающими совпадают, формулы долларами обрамлены. В чём дело-то?

UPD: Итого, вопрос остаётся в том, какой командой зачеркнуть произвольный блок текста, с параграфами, уравнениями и пр.:? uelm, soul, cancel не канают.

 , ,

thunar
()

c++ расплющить вложенный цикл?

Форум — Development

Например, есть что-то такое.

constexpr int n{4};
int shape[n];
for (int j0=0; j0<shape[0]; ++j0) {
	for (int j1=0; j1<shape[1]; ++j1) {
		for (int j2=0; j2<shape[2]; ++j2) {
			for (int j3=0; j3<shape[3]; ++j3) {
				/* return iterator to do external stuff ? */
			}
		}
	}
}
Хочется с помощью шаблонной магии преобразовать обход вложенного цикла к плоскому виду, что-то вроде функции:
template<n>flatten (int *shape, ...) -> iterator
c юзкейсом ala
int shape[4];
for (auto entry : flatten<4>(shape)) {
	/* do external stuff */
}
Хочется сделать это без дополнительного выделения памяти и runtime-time рекурсии. Куда копать?

 , ,

thunar
()

Дефолт95

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

Раз в несколько лет я пытаюсь осилить нормальный дистрибутив, но в итоге всегда возвращаюсь к CRUX.

Забавно, как на моём ноутбуке, i7-11-чего-то-там, 40GB RAM и 512GB NVMe, самый обычный терминал запускается секунду-две, дело было на Fedora/Gnome42. Пробовал дефолтную Ubuntu, но никак не могу привыкнуть к интерфейсу...

О! https://github.com/grassmunk/Chicago95

То, что доктор прописал. Настроив хоткеи под себя, этим наконец можно пользоваться. Посмотрим, как скоро я вернусь обратно на CRUX/FVWM, но пока остаюсь на Ubuntu/XFCE+Chicago95. Так!

>>> Просмотр (3440x1440, 696 Kb)

 , , ,

Spoofing
()

Расскажите про крипту на сегодняшний день

Форум — Talks

Т.к. намечаются явные траблы с валютой, похоже что надо будет осваивать крипту. Тема очень обширная, объять разумом трудно. Сориентируйте по «прикладной» части для нубов, которым надо в основном:

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

То есть, речь о «стабильной» крипте.

  • Какой кошелек/биржу посоветуете для «ежедневного использования». С учетом потенциальных банов. И какие варианты бакапов если угнали телефон и т.п.
  • Какая крипта лучше для ежедневного использования и длительного хранения.
  • Что в европах по законодательству насчет приземления крипты? Купить-то не проблема, но не хотелось бы на выводе претензий про легальность.

 

Vit
()

telegabber 1.0.1

Новости — Open Source
Группа Open Source

Telegabber — это порт транспорта Zhabogram на Go. Поддерживает новые 64-разрядные ID пользователей, а также отличается лучшей производительностью.

Назначение транспорта — связывать учётные записи в Jabber и Telegram, что позволяет использовать Telegram из любого Jabber-клиента.

Для сборки требуется TDlib 1.8 и Go ≥1.13, остальные зависимости скачиваются сборочной системой автоматически.

Основные возможности:

  • авторизация в Telegram;
  • отправка, приём, удаление и редактирование сообщений и вложений;
  • добавление и удаление контактов;
  • синхронизация списка контактов, статусов и VCard;
  • управление группами/аккаунтом Telegram;
  • создание и приём секретных чатов.

>>> Подробности

 , , ,

bodqhrohro_is_back
()

как раздать большой файл?

Форум — Talks

Раньше мы делали примерно так: transmission-create Server.vdi -t udp://tracker.openbittorrent.com:80

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

как сейчас раздать файл не несколько десяток гигов без регистрации и смс?

зы: с этими трекерами заработало спустя полчаса

udp://tracker.openbittorrent.com:80/announce

udp://tracker.openbittorrent.com:6969

 

fMad
()

объёмный график на питоне

Форум — Science & Engineering

Други! Беда подкралась внезапно, от туда, откуда не ждал! Рисовал я себе спокойненько matplotlibом графики, а тут вдруг понадобилось нарисовать график распределения интенсивности сигнала по объёму. Хотелось бы чтоб чем выше интенсивность, тем цвет веселее а прозрачность меньше. Да ещё чтоб его рисовать можно было постепенно, по мере получения данных. Matplotlib такого, судя по всему не может. Что посоветуете?

P.S. Размер примерно 100х100х100 точек, время измерения одной точки 0,01с.

 , ,

ArtSh
()

Реализация метода шаблонного класса зависящая от того перегужена или нет одна из операций

Форум — Development

Сабж

#include <iostream>

template <typename T> struct A{
	T x;

	T f(double y) const { return x*y; }

	// альтерантивная реализация, если T*double не определен
	// T f(double y) const { return x; } 
};

struct B{ int z; };

int main(){
	A<double> a;  std::cout<<a.f(1.)<<'\n';
	A<B> b;       std::cout<<b.f(1.)<<'\n';
}

как включать ту или иную реализацию A::f в зависимости от того есть или нету операции T*double ?

 ,

AntonI
()

Make Firefox 89 compact again

Форум — Talks

для тех, кто не знает. открываете «about:config» и меняете «browser.compactmode.show» на true. если, после этого, кликнуть правой по тулбару и выбрать «customize toolbar…», то в дропдауне «Density» появится режим «compact», и теперь новый интерфейс даже ничего!

 ,

moot
()

ломается цепочка вызовов параметризованных методов

Форум — Development

вот такой простой пример

struct Accessor{
    template <typename A> void plot(A &a) const { 
        a.plot_impl<0>(*this); 
    }
};

struct XXX{
    template <int I> void plot_impl(const Accessor&){}
    void plot(const Accessor &acc){ acc.plot(*this); }
};

при сборке вылетает ошибка

$ g++ -std=c++11 -c test-accessor.cpp
test-accessor.cpp: In instantiation of ‘void Accessor::plot(A&) const [with A = XXX]’:
test-accessor.cpp:9:48:   required from here
test-accessor.cpp:3:14: error: invalid operands of types ‘<unresolved overloaded function type>’ and ‘int’ to binary ‘operator<’
   a.plot_impl<0>(*this);
   ~~~~~~~~~~~^~

gcc 7.5.0

ЧЯНТД? Почему он не видит что plot_impl параметризована?

@monk

 ,

AntonI
()