LINUX.ORG.RU

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

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

unsuspend

Форум — Linux-hardware

А как воообще устроен unsuspend в линаксе и железе, регулируется ли он программно, из биоса или аппаратно? Можно ли запретить машине просыпаться по сигналу с клавиатуры или тачпада, так что бы она реагировала только на нажатие кнопки power?

 

thunar
()

литературное тестирование (по следам Дональда нашего Кнута)

Форум — Development

Асилив наполовину книжку Владимира Хорикова «Принципы юнит-тестирования» я что то вернулся к одной своей старой идее. Я занимаюсь разработкой всякого академического софта, и у нас юнит-тестирование делать не принято. С одной стороны проекты маленькие и без него как то можно жить, с другой его практически никто не умеет делать.

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

Документация пишется разумеется в техе. Примеры оформляются в окружении verbatim, хотя можно выбрать какое то другое. В теховский документ добавляются специальные команды закомментированные для теха (начинающиеся с символа %), но влияющие на поведение утилиты тестирования.

  1. Может быть создано один или несколько файлов в которых накапливается код тестов по мере обработки теховской документации. Для создания файлов используется комбинация
%@> имена файлов через пробел 

созданные файлы могут быть активными (по умолчанию) или замороженными. Если файл активен, все что начинается с одиночного % или находится в окружении verbatim дублируется в этот файл. Для заморозки используется комбинация %@- имена файлов, для разморозки %@+ имена файлов, для закрытия файла %@. имена файлов. Для записи отдельной строки в файл или группу файлов (вне зависимости от их состояния) используется

%@(имена файлов) какой то код 

При этом в именах файлов можно использовать вайлдкарты а-ля шелл.

  1. если в окружение verbatim встречается комбинация
выражение --> результат

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

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

  2. Точно нужно будет настраивать как какие тесты собирать и запускать, аналогично через какой то вариант вроде %@$ … Ну и наверное для запуска тестов можно заюзать gnu make.

  3. Отдельная история с тестированием готовых приложений (небольших), на них ведь тоже пишется документация с примерами. В общем все то же самое но для запуска shell, при этом результаты сравниваются как строки?

Как то так. Cast @bugfixer, @pon4ik, @thunar, @Vit

 , , , ,

AntonI
()

matplotlb, поворот ticks для заданного субплота

Форум — Science & Engineering

Для _текущего_ субплота можно использовать plt.xticks(rotation=...). Естественно, когда суплотов много вручную вызывать это совершенно не удобно. У самих субплотов, такого метода по загадочной причине нет. Сам plt.xticks при их налчии действует на последний добавленный. А как тогда достучаться до тех что нужны?

 ,

thunar
()

Генератор уникальных псевдослучайных чисел (C++)

Форум — Development

Нужно из случайного индекса вектора брать данные и копировать во второй вектор. Соостветственно нужны случайные итераторы которые не будут повторятся. Ничего кроме как городить проверяющий цикл с условием – не придумаю. Есть ли решения с использованием STL и <random>?

Казалось бы элементарная проблема, но завис на ней.

 , ,

Artamudo
()

c++ шаблон zip-like итератора?

Форум — Development

В python есть крайне полезные функции zip, enumerate, range. Мне нужно что-то подобное для cpp/cuda (c++17). Если c range и enumerate более менее понятно, то как реализовать zip не соображу. Семантически это должно быть variadic template

template<typename t, typename... ts>
class zip : zip<ts...>{
	zip(t arg, ts... args);
	struct iterator;
	begin() -> iterator;
	end()   -> iterator;
};
Где итератор возвращает кортеж ссылок на элементы что с контейнерами можно было работать как:
for(auto [x,y,z] : zip(xs,ys,zs))
Рекурсивное наследование должно быть ограничено тривиальным случаем одного аргумента. Но, кажется, я думаю не в правильную сторону, в частности, не соображу как рекурсивно вывести тип возвращаемых итератором кортежей:
using ret_type = tuple<decltype(begin(declval<t>())), decltype(???)>

$cast AntonI, может у вас кто такое делал?

 , ,

thunar
()

c++ обёртка над zlip

Форум — Development

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

 , ,

thunar
()

python сохранить массив функций

Форум — Development

Скрипт в результате работы генерирует массив функций аля [<function __main__.<lambda>>, <function __main__.<lambda>>, ... ]. Как можно сохранить этот массив в файл что бы использовать в другом скрипте?

 , массив функций

thunar
()

gimp, @#$% запятые вместо точек!

Форум — Multimedia

То-ли разработчики gовноtk укурились в очердной раз, то-ли разработчики gimpа, но ВНЕЗАПНО оказалось, что в 2.9 в виджетах для чисел с плавающей точкой везде стали ЗАПЯТЫЕ, причём он не только отображает их так, но и требует вводить. Кто виноват и делать? Очередной HIGотизм запихали в мейнстрим?

 , ,

thunar
()

matplotlib > html5?

Форум — Science & Engineering

Есть ли рецепт для subj? Так что бы создаваемый график потом можно было поглядеть в векторе, увеличить и пр?

 

thunar
()

Вопрос по дизайну/архитекуте .hpp файлов (кого куда и как включать)

Форум — Development

Есть некая библиотека (моя), солянка из разных, местами слабо связанных фрагментов кода.

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

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

Я вижу два решения, оба кривые:

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

  2. понатыкать в dump.hpp директив условной компиляции, т.е. что бы соотве фрагмент кода для объекта A включался только если .hpp файл с этим объектом уже был включен. Это немного странно выглядит, dump.hpp всегда должен будет выключаться последним.

cast @pon4ik, @monk

 

AntonI
()

LaTeX <-> python

Форум — General

А есть-ли для python пакеты, позволяющие автоматически преобразовывать LaTeXную диакритику в utf8 и обратно? Например

{Tom\'{a}\v{s}} <-> Tomáš

 , ,

thunar
()

Существуют ли бесплатные конвертеры текста на русском языке в речь?

Форум — General

Сабж

Главные требования:
1) Чтобы было более-менее качественно. Хотя бы ударения правильно ставило.

Крайне желательно:
1) Поддержка смешанного текста (русский со вкраплениями английских слов)
2) Хотя бы пара голосов

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

 

Qwentor
()

ubuntu 16.04, cuda и кривая установка

Форум — Linux-hardware

Устанавливал cuda-10.1 с официального сайта, через run-файл т.к. официальная версия из пакетов битая. Гасил исксы и следовал инструкции инсталлятора, однако он то-ли не собирает dkms-модуль, то ли не грузит его, или грузит неправильно. В результате, ни gl, y куда не работают. Как это продиагностировать. В логи иксов вообще треш

[   995.321] (II) LoadModule: "nvidia"
[   995.321] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[   995.321] (II) Module nvidia: vendor="NVIDIA Corporation"
[   995.321]    compiled for 4.0.2, module version = 1.0.0
[   995.321]    Module class: X.Org Video Driver
[   995.321] (II) UnloadModule: "nvidia"
[   995.321] (II) Unloading nvidia
[   995.321] (II) Failed to load module "nvidia" (already loaded, 21880)
[   995.321] (II) LoadModule: "nouveau"
[   995.322] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
[   995.322] (II) Module nouveau: vendor="X.Org Foundation"
[   995.322]    compiled for 1.18.1, module version = 1.0.12
[   995.322]    Module class: X.Org Video Driver
[   995.322]    ABI class: X.Org Video Driver, version 20.0
Получается, нвидия грузится, потом грузится ещё раз, потом грузится нуво несмотря на то, что явно запрещён в блэклисте
cat /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
# generated by nvidia-installer
blacklist nouveau
options nouveau modeset=0
glxinfo стабильно показывает
glxinfo 
name of display: :0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  37
  Current serial number in output stream:  38
Итак, как оттуда напроч вычистить все остатки установки, все драйвера и пр. И как эту куду заинсталлить нормально, вместе с libgl, glx, драйвером, вдапу и самим тулкитом?

 , , инсталлер

thunar
()

параллельное перемешивание массива

Форум — Development

Например, есть массив xs[N] и M тредов, M<N в среднем. Нужно случайно перемешать элементы массива как можно более быстрым способом. При этом, «качество» рандомизации не играет роли, скорее нужно что бы в среднем, каждый элемент массива побывал в каждой позиции. Как это правильно называется на английском языке, и какими алгоритмами реализуется?

 , ,

thunar
()