затем засовывали в трансмишен и отсылали магнет-ссылку на этот торрнет, а с той стороны скачивали. сейчас эта схема не работает, раздача висит, закачка ни не идёт, даже на соседнем компе
как сейчас раздать файл не несколько десяток гигов без регистрации и смс?
Други! Беда подкралась внезапно, от туда, откуда не ждал! Рисовал я себе спокойненько matplotlibом графики, а тут вдруг понадобилось нарисовать график распределения интенсивности сигнала по объёму. Хотелось бы чтоб чем выше интенсивность, тем цвет веселее а прозрачность меньше. Да ещё чтоб его рисовать можно было постепенно, по мере получения данных. Matplotlib такого, судя по всему не может. Что посоветуете?
P.S. Размер примерно 100х100х100 точек, время измерения одной точки 0,01с.
для тех, кто не знает. открываете «about:config» и меняете «browser.compactmode.show» на true. если, после этого, кликнуть правой по тулбару и выбрать «customize toolbar…», то в дропдауне «Density» появится режим «compact», и теперь новый интерфейс даже ничего!
$ 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 параметризована?
А как воообще устроен unsuspend в линаксе и железе, регулируется ли он программно, из биоса или аппаратно? Можно ли запретить машине просыпаться по сигналу с клавиатуры или тачпада, так что бы она реагировала только на нажатие кнопки power?
Асилив наполовину книжку Владимира Хорикова «Принципы юнит-тестирования» я что то вернулся к одной своей старой идее. Я занимаюсь разработкой всякого академического софта, и у нас юнит-тестирование делать не принято. С одной стороны проекты маленькие и без него как то можно жить, с другой его практически никто не умеет делать.
При этом документацию писать приходится, и коллеги жалуются что в моей документации мало примеров. Идея такая - раз в документации нужны примеры, то пусть эти примеры заодно играют роль тестов (всяких). Нужен doxygen наоборот, утилита которая из специально оформленной документации может выделить тесты, собрать их и запустить. Такие тесты все же лучше чем ничего.
Документация пишется разумеется в техе. Примеры оформляются в окружении verbatim, хотя можно выбрать какое то другое. В теховский документ добавляются специальные команды закомментированные для теха (начинающиеся с символа %), но влияющие на поведение утилиты тестирования.
Может быть создано один или несколько файлов в которых накапливается код тестов по мере обработки теховской документации. Для создания файлов используется комбинация
%@> имена файлов через пробел
созданные файлы могут быть активными (по умолчанию) или замороженными. Если файл активен, все что начинается с одиночного % или находится в окружении verbatim дублируется в этот файл. Для заморозки используется комбинация %@- имена файлов, для разморозки %@+ имена файлов, для закрытия файла %@. имена файлов.
Для записи отдельной строки в файл или группу файлов (вне зависимости от их состояния) используется
%@(имена файлов) какой то код
При этом в именах файлов можно использовать вайлдкарты а-ля шелл.
если в окружение verbatim встречается комбинация
выражение --> результат
оно трактуется как тест. То есть в файлах с тестами, в зависимости от расширения, будет добавлен код вычисляющий выражение и сравнивающий его с результатом.
В каждую строку теста в конец добавляется комментарий отсылающий
к исходному теховскому файлу (имя и номер строки), если тест провален то выдается сообщение указывающее на строку в теховском файле откуда тест был взят.
наверное можно вводить какие то макросы что бы переиспользовать подготовительный код тестов, команды для импорта модулей которые будут раскручиваться в зависимости от расширения файла в разный код и пр.
Точно нужно будет настраивать как какие тесты собирать и запускать, аналогично через какой то вариант вроде %@$ … Ну и наверное для запуска тестов можно заюзать gnu make.
Отдельная история с тестированием готовых приложений (небольших), на них ведь тоже пишется документация с примерами. В общем все то же самое но для запуска shell, при этом результаты сравниваются как строки?
Для _текущего_ субплота можно использовать plt.xticks(rotation=...). Естественно, когда суплотов много вручную вызывать это совершенно не удобно. У самих субплотов, такого метода по загадочной причине нет. Сам plt.xticks при их налчии действует на последний добавленный. А как тогда достучаться до тех что нужны?
Нужно из случайного индекса вектора брать данные и копировать во второй вектор. Соостветственно нужны случайные итераторы которые не будут повторятся. Ничего кроме как городить проверяющий цикл с условием – не придумаю. Есть ли решения с использованием STL и <random>?
Казалось бы элементарная проблема, но завис на ней.
В python есть крайне полезные функции zip, enumerate, range. Мне нужно что-то подобное для cpp/cuda (c++17). Если c range и enumerate более менее понятно, то как реализовать zip не соображу.
Семантически это должно быть variadic template
Где итератор возвращает кортеж ссылок на элементы что с контейнерами можно было работать как:
for(auto [x,y,z] : zip(xs,ys,zs))
Рекурсивное наследование должно быть ограничено тривиальным случаем одного аргумента. Но, кажется, я думаю не в правильную сторону, в частности, не соображу как рекурсивно вывести тип возвращаемых итератором кортежей:
using ret_type = tuple<decltype(begin(declval<t>())), decltype(???)>
Подскажите какую ни будь обёртку над zlib, инкапсулирующую низкоуровневую работу с архивами во что-то более похожее на работу с обычными файлами фс. Нужна возможность создать архив, добавить в него файл и писать в файл поток данных; открыть архив, получить список файлов и работать с каждым как с обычным несжатым потоком байтов.
Скрипт в результате работы генерирует массив функций аля [<function __main__.<lambda>>, <function __main__.<lambda>>, ... ]. Как можно сохранить этот массив в файл что бы использовать в другом скрипте?
То-ли разработчики gовноtk укурились в очердной раз, то-ли разработчики gimpа, но ВНЕЗАПНО оказалось, что в 2.9 в виджетах для чисел с плавающей точкой везде стали ЗАПЯТЫЕ, причём он не только отображает их так, но и требует вводить. Кто виноват и делать? Очередной HIGотизм запихали в мейнстрим?
Есть некая библиотека (моя), солянка из разных, местами слабо связанных фрагментов кода.
Появилась необходимость заюзать кусочек библиотеки в проекте, при этом хочется выделить туда минимально необходимую часть библиотеки (что бы лишнего не тащить) просто методом копирования (что бы проще было накатывать исправления и т.д.).
В библиотеке есть файл dump.hpp (условно) обеспечивающий запись разных объектов в бинарном формате, и он входит в ту часть которую нужно копировать. Этот файл определяет какие то служебные (шаблонные) методы а потом их как то специализует по необходимости для всего что есть в библиотеке. Понятно что он инклюдит кучу всего, в том числе кучу того что копировать не хочется. Вопрос - че с этим делать?
Я вижу два решения, оба кривые:
перенести части dump.hpp работающие с конкретными объектами в .hpp файлы где эти объекты объявлены. Минусы - все же этот код лучше выглядит когда лежит кучно, кроме того все станет зависеть от dump.hpp (сейчас это не так и хотелось бы что бы оно так и осталось).
понатыкать в dump.hpp директив условной компиляции, т.е. что бы соотве фрагмент кода для объекта A включался только если .hpp файл с этим объектом уже был включен. Это немного странно выглядит, dump.hpp всегда должен будет выключаться последним.
Устанавливал 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, драйвером, вдапу и самим тулкитом?
Например, есть массив xs[N] и M тредов, M<N в среднем. Нужно случайно перемешать элементы массива как можно более быстрым способом. При этом, «качество» рандомизации не играет роли, скорее нужно что бы в среднем, каждый элемент массива побывал в каждой позиции. Как это правильно называется на английском языке, и какими алгоритмами реализуется?