LINUX.ORG.RU

Сообщения pavlick

 

Вставить картинку на страницу

Всем привет. Как в принципе вставить картинку на страницу я знаю - тупо через тег IMG, но тут затык вот в чем - картинки приходят на сервер в рантайме, а все адреса нужно прописывать в конфиге Коре при компайлтайме:

...
   route   /logo.jpg   asset_serve_logo_jpg
...

Непроисанные в конфиге рисунки никак не получается заюзать в теге img. Вопрос - как отобразить на странице картинку, которая пришла на сервер в рантайме?

 ,

pavlick
()

Прикрутить логин

Привет. Нужно прикрутить логин. Вопрос - как это сделать правильно? Мне вот что в голову идет - сохранять на странице некий ID, который вписывается сервером в код страницы после логина клиента и действует некоторое время (минут 5, например). Вопрос, я все правильно делаю, не через зад? Сама концепция не кривая? Пишу сервер на kore.

 

pavlick
()

Завершение многопоточного приложения

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

  1. Делать для всех потоков join() - потоки заблокированы и хз когда освободятся, отметаем.
  2. Сгодится что-то вроде terminate(), но без всякого - «аварийный останов, корки скинуты на диск». exit() - начинает разрушать софтину деликатно - с разрушением ГВ, а потоки-то живут, в общем опять может случиться какой-нибудь «сег фолт».
  3. Сделать потоком detach(), опять же - когда софтина начнет завершаться, потоки живут, и потом - должны ведь и библиотеки отваливаться начать. Я вообще никогда не видел описания процесса отстегивания либ при завершении - сначала перестает выделяться процессорное время всем тредам, а потом отстегивается, или как-то иначе.
  4. Сделать все глобальные объекты неудаляемыми, т.е. вначале main() делать new, и пусть живут «вечно». Но опять же вопрос с моментом отстегивания либ - до или после момента, когда потокам перестает выделяться процессорное время. Это если либы so’шки, а если статические, то вообще без вариантов - никакой надежды на «либы переживут треды» нет.

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

#include <thread>
#include <chrono>
using namespace std;

struct Q {
	int *i;
	Q() {i = new int;}
	~Q() {delete i; i = 0; this_thread::sleep_for(5s);}
};
int *get() {
	static Q q;
	return q.i;
}
void f() {
	this_thread::sleep_for(2s);
	*get() = 5;
}
int main() {
	get();
	thread t(f);
	t.detach();
}

 , ,

pavlick
()

arduino, не появляется /dev/ttyACM

Вопрос вроде как про ардуину, но и не совсем. В общем, устройтво не появилось в dev, acm модуль стоит

pavlick /usr/src/linux-5.10/Documentation $ lsmod
Module                  Size  Used by
cdc_acm                32768  -2

Думаю - ок, может там udev косячит и не создает файл устройства, создам руками. И вот тут у меня конкертные непонятки. Мажорные номера еще можно как-то найти в admin-guide/devices.txt (но! ведь номера могут присваиваться драйверам динамически. Допустим, cdc_acm какой-то левый драйвер с динамическим номером, как мне узнать его номер?). А с минорными номерами вообще неразбериха какая-то, откуда они биуртся - ума не приложу. Просто эксперимент с флехой:

pavlick /usr/src/linux-5.10/Documentation $ lsusb
Bus 002 Device 008: ID 0930:6545 Toshiba Corp. Kingston DataTraveler 102/2.0 / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick

pavlick /usr/src/linux-5.10/Documentation $ ls -l /dev/{sdb1,sdb2}
brw-rw---- 1 root disk 8, 17 дек 20 20:03 /dev/sdb1
brw-rw---- 1 root disk 8, 18 дек 20 20:03 /dev/sdb2

Вот откуда взялись номера 17 и 18? Я могу найти в доках, что мажорный номер ACM == 167, но сцуко какой минорный номер передать в mknod? Тупым перебором?

 ,

pavlick
()

Разместить футпринты в Pcbnew

Привет. Ребят, я сильно не гуглил, вопрос пустяковый, может кто мимо проходя подскажет. В общем, сделал схему в kicad, назначил футпринты, открываю pcbnew. В общем вывалило мне кучу деталей на лист со связями завязанными в узлы )), там куча всякого барахла. Можно как-то хоть более менее автоматом расположить на листе, а потом уже руками корректировать? Когда смотрел на ютубе, то там народ все руками делал, но и схемы у них были фигня.

 , ,

pavlick
()

Накрылся принтер

Привет. Ребята, ерунда такая - есть у меня старенький HP (с тех времен, когда они еще не совсем зашкварились). Однажды во время печати мне было выдано сообщение о том, я выхожу за границы печати, которое я проигнорил и продолжил пчеатать, печатал несколько сот страниц (может важно). Итог - больше он не печатате, включается, фырчит там что-то, но не более. Не думаю, что я что-то страшное сделал, может ему куда ёбн**ь надо?

 

pavlick
()

Ищу цифровой компонент (железо)

Привет. Давно не держал паяльник, тут наверняка есть люди в теме. Нужно собрать простеньккую схему без всяких там микроконтроллеров. Суть такая:

Скольки-то разрядный счетчик, на вход даю импульсы (что-то вроде часов). В моменты, когда на счетчике некоторый битовый паттерн (011010101, например), нужно отправлять единицу на триггер (включаем), следующий битовый паттерн - опять единица на тот же триггер (выключаем ключ дальше по схеме). Следующий паттерн - сигнал на другой триггер, ну и т.д. Понятно, что можно смотреть паттерн через кучу И НЕ … , но впаивать в схему 100 всяких примитивов - жесть какая-то (да, сборки из нескольких элементов, но хлопотно все равно). В общем, есть ли какая-то микросхема, которой можно задать паттерн (единицы на управляющих ножках), который она будет отслеживать на входе, давать 1 на выходе. Просто хз как загуглить.

 ,

pavlick
()

condition_variable без мьютекса

Привет. Надо такое: есть некоторое количество потоков (на стадии компиляции количество неизвестно, в рантайме количество изменяется), нужно их всех усыпить и разбудить из вне в нужный момент. condition_variable - нафиг мне там мьютекс не нужен. Заюзать барьеры - можно, но я тут покумекал, есть свои минусы и лишний гемор. Нужно просто в ждущих потоках сделать wait(), а в управляющем wakeup(), и все ждущие потоки просыпаются, поработали и пошли на новый круг. Без всяких счетчиков - если кто-то затормозил на прошлом круге и не успел сделать wait(), то следующий круг просто пропустил.

 ,

pavlick
()

Возврат prvalue из функции со взятым мьютексом

Две функции одинаковые по сути

Symbol_info Data_collector::symbol_info() const
{
	Symbol_info ret;
	std::shared_lock<std::shared_mutex> lck(*this->m_mtx);
	ret = this->m_symbol_info;
	return ret;
}
Symbol_info Data_collector::symbol_info() const
{
	std::shared_lock<std::shared_mutex> lck(*this->m_mtx);
	return this->m_symbol_info;
}

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

 

pavlick
()

std::call_once() барахлит или я туплю?

Привет, что здесь не так?

#include <mutex>
#include <filesystem>
#include <iostream>
using namespace std;


void set_path(std::filesystem::path &path)
{
	cerr << "tick2" << endl;	
}

inline const std::filesystem::path &get_xdg_data_path()
{
	static std::once_flag flag;
	static std::filesystem::path path;
	cerr << "tick1" << std::endl;	
	set_path(path);
	//std::call_once(flag, set_path, path);
	return path;
}

int main()
{
	auto p = get_xdg_data_path();
	std::cout << p << std::endl;
}

В общем, если вызвать set_path(path), то ок, если std::call_once(flag, set_path, path), то

pavlick /tmp $ ./a.out
tick1
terminate called after throwing an instance of 'std::system_error'
  what():  Unknown error -1

call_once 11 стандарта, да и filesystem уже не девочка … . clang аналогично, правда там ведь у них своя стд либа есть -lc++, но хз, что-то у меня ее нет, в репах тоже.

ЗЫ: со стрингом все ок было (через call_oncce)

 ,

pavlick
()

Заколхозить итератор

Привет. Нужен итератор для своего класса (как писать по старинке в целом представляю - сделать нужные тайпдефы), смотрю в справочник, куча всего стала deprecated, включая старые требования к итераторам (внимание на LegacyIterator).

std::iterator_traits is the type trait class that provides uniform interface to the properties of LegacyIterator types. 

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

 

pavlick
()

Таблица в консоли

Привет. Какая-то либа, которая позволит без гемора выводить в консоль таблицы заполнив некоторый двухмерный массив. С автопереносом линий в колонке, если не вмещается целиком. Что это?

 ,

pavlick
()

Сохранение образа запущенной программы

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

 

pavlick
()

Ролик 30 фпс

Друзья, ай нид хелп. Что происходит? Мне нужен ролик 30 фпс из коллекции фреймов, пробую два варианта:

$ ffmpeg -i %04d.png -c:v libx264 -preset slow -crf 18 -c:a aac -ar 48000 -ac 2 -profile:v high -level 4.0 -bf 2 -coder 1 -pix_fmt yuv420p -b:v 10M -r 30 -b:a 320k output.mp4

$ ffmpeg -i %04d.png -c:v libx264 -preset slow -crf 18 -c:a aac -ar 48000 -ac 2 -profile:v high -level 4.0 -bf 2 -coder 1 -pix_fmt yuv420p -b:v 10M -framerate 30 -b:a 320k output.mp4

т.е. в первом варинте применил опию -r, а во втором -framerate. Во втором случае получаю 25 (или 24, не помню) фпс, во втором 30 фпс, но вставляются автоматом доп фреймы, которые делают ролик по продолжительности равным аналогичному видосу на 25 фпс. Опции для ффмпг брал с сети, рекомендуемые для ютуба. Мне нужен честные 30 фпс лишь из тех фреймов, который я указал (-i %04d.png). Что я неправильно передал в консоли?

 

pavlick
()

Изменить голос

Привет. Хочу следующего - есть некоторый голос, хотелось бы оставить от него лишь основной тон, убрать все гармоники (которые определяют тембр, если не ошибаюсь) и добавить некоторые случайные гармоники создав тем самым какой-то совершенно другой голос. Естественно, нужен какой-то софт. Где можно такое сделать? Важно - не снизить/повысить частоту, а сделать более умную обработку по смене тембра.

 

pavlick
()

Сквозное выделение

Привет, пустяк, но реально мешает )) - обычно если Edit режиме выбираем одну плоскость куба, например, то плоскоть на обратной стороне не выделится, для этого нужно нажать z. Я что-то где-то нажал и теперь у меня выделяются противоположный плоскости объекта вне зависимости от нажатия на z, всегда выделяет насковозь. Как отключить?

 

pavlick
()

Как одеть человека

Ребята, подскажите пожалуйста. Надеялся на MakeHuman, но при иморте персонажа с одеждай, в блендер импортируется какая-то «звезда». С готовыми моделями тоже напряг (те что есть, рендерятся кучу времени). Вопрос (куда копать хотя бы) - как сделать какую-то элементарную одежду на персонажа, который будет двигаться? Х.з. Может как-то текстуру наложить, короче я не знаю как это решить, нужна помощь зала.

 

pavlick
()

Скопировать скелет с анимацией

Привет. В общем есть один скелет с телом, запсана анимация. Есть второе тело с такой же анимацией и скелетом (но это другой на вид человек). Я копирую первый скелет, привязваю ко второму телу через Objetc->Parent->With Automatic Weights->With Automatic Weights. Поселе этого анимация у второго персонажа ломается, хотя в Dope Sheet кадры отображаются. За основу был взят бег записанный с Motion Capture + дописаны свои кадры. Не хотелось бы делать все заново. Кстати, а если говорить о беге, как его зацикилить? Открыл я заготовку на кадров 200, а мне нужно пробежать большее расстояние. Я сделал, но должен быть более умный способ (копировал и вставлял ключевые кадры на концах с новым положением).

 

pavlick
()

Рендеринг

Всем привет. Нужно определиться на чем редерить ЦПУ или ГПУ (в блендере там галка стоит). Дело в том, что данную процедуру буду провоидть не у себя, экспериментировать лично возможности нет (карта полное Г). Нужно дать четкие инструкции человеку (и не одному). Какие-то соображения, какой уровень карточки должен быть чтобы на ней было разумно что-то делать?

 

pavlick
()

Импорт модел в проект

Скачал я готовую модель blend. Если открывать как отдельный проект, то все ок. Но если Append к готовому (выбираю в blend архиве objects/…), то слетают текстуры с объекта. Копировал файл текстуры в свою директорию, копировал image, textures, material из blend архива. Также создавал группу в импортируемоей модели, эпендил ее. Как его импортировать чтобы потом не переделывать модель парясь натягивая текстуры на чей-то проект?

 

pavlick
()

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