LINUX.ORG.RU

Сообщения Vit

 

Как на с++11 засунуть темплейту одну и ту же строку в разных translation units?

Есть темплейт, инстанс которого надо юзать в разных файлах (например лог), и которому надо прокинуть строку конфига:

template<const char* filterLabels>
class log {
...
}

Понятно, что инстанс создается в одном месте, а в остальных объявляется через extern.

Но проблема в том, что передаваемую строку надо объявлять в хедере как inline, простого constexpr недостаточно - валится линкер. А inline поддерживается только от c++17.

// без inline - жопа
inline constexpr char labels[] = "foo,bar";

Есть ли какой-то хак для c++11, чтобы строки передавались, и темплейты понимали, что они про одно и то же (а не плодились, роняя линкер)?

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

 ,

Vit
()

Как ненапряжно автоматизировать тестирование static_assert?

Хочется покрыть тестами static_assert. Но без жести с ручным раскомментированием строк тестирования, анализом выхлопа компилятора и т.п.

Вот пример темплейта со статическими ассертами:

    template<typename Func>
    void addMethod(const std::string& name, Func func) {
        using traits = jrcpd::function_traits<decltype(func)>;
        using Ret = typename traits::return_type;
        using ArgsTuple = typename traits::argument_types;

        static_assert(!std::is_same<Ret, void>::value, "void functions not supported");

        static_assert(jrcpd::is_supported_type<Ret>::value, "Return type is not allowed");
        static_assert(jrcpd::check_all_types_supported<ArgsTuple>(), "Argument type is not allowed");

        functions[name] = [func](const JsonArray& args) -> std::string {
            try {
                if (args.size() != std::tuple_size<ArgsTuple>::value) {
                    throw std::runtime_error("Number of arguments mismatch");
                }

                // Check if each argument in JsonArray can hold the appropriate type from ArgsTuple
                if (!jrcpd::TypeChecker<ArgsTuple>::check(args)) {
                    throw std::runtime_error("Argument type mismatch");
                }

                auto tpl_args = jrcpd::from_json<ArgsTuple>(args);
                Ret result = jrcpd::apply(func, tpl_args);
                return jrcpd::generate_response(true, result);
            } catch (const std::exception& e) {
                return jrcpd::generate_response(false, e.what());
            }
        };
    }

Посоветуйте, как сейчас принято такое тестировать.

 ,

Vit
()

Помогите правильно сделать проверку параметров в темплейтах

Плюсов толком не знаю, а код нужен. Поэтому делал на чатгпт :). И чего-то он перестал вывозить. Тупо подогнал имплементацию под тесты, где были функции с 0 и 2 параметрами :). А когда новых тестов добавил - начинает уже совсем бред гнать по кругу.

Помогите нормально сделать темплейты функций. Там надо проверять при «создании», что типы аргументов из списка допустимых. А в рантайме, когда приходит json с именем метода и массивом аргументов - проверить что типы соответствуют зарегистрированной функции, и вызвать ее.

На с++11, т.к. надо под esp32 - там тулчейн староват.

 ,

Vit
()

Посоветуйте где RPC over GATT подглядеть, для плюсов и жыэсов

Нужно приконнектить esp32 к вебне по bluetooth:

  1. Получать события (апдейты температуры)
  2. Дергать полтора метода с простыми параметрами (нагреватель включить, на уровне отправить жысон и получить ответ жысоном)

Каких-либо требований по экономии памяти и потреблению - нет. Т.е. заюзать плюсовый парсер жысона вместо тру протобафа - вообще не вопрос.

Web Bluetooth это GATT. Задуманный в стародавние времена под стародавние задачи, которые теперь не актуальны. Руками уродоваться через GATT properties - штука совсем на любителя. Хотелось бы какую-то молодёжную обертку, которая будет заботиться о нарезке длинных данных, спрячет всё говнище за смузихлёбным rpc / event emitter и т.п. Километры совместимости с версионированием протоколов - не нужны. Чем проще, тем лучше.

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

 , gatt

Vit
()

Vue: как правильно делать переключение «драйвера» с сохранением реактивности?

Навалял на vue рыбу приложеньки https://puzrin.github.io/reflow_mock/. Теперь пытаюсь понять, как туда втулить поддержку нескольких девайсов.

Допустим, у меня есть полностью виртуальный и реальный девайсы, которые отдают температуру и т.п., a также имеют методы start/stop. Хочется чтобы при переключении на другой девайс все реактивные биндинги продолжили работать, просто забирая данные из другого источника.

Как это положено правильно делать в vue?

Пока в голову пришло сделать проксирующий объект:

const currentDriver = ref(defaultDriver)

// там где переключаем драйвер
currentDriver.value = driverInstance

// это выставляем приложеньке
export driver {
  temperature: computed(() => currentDriver.temperature.value),
  power: computed(() => currentDriver.power.value),
  start: () => currentDriver.start(),
  stop: () => currentDriver.stop()
}

Так годно или есть более кошерные варианты?

 

Vit
()

Посоветуйте swipe-переключатель для vue

https://github.com/joseph2/vue-slide-unlock - что-то типа такого, только более «headless». Не нравится мне как там стили приколочены.

Нужен просто переключатель старт/стоп с защитой от случайного нажатия. Ну и без унылого «modal dialog confirmation». Если есть что-то готовое помимо слайдера - тоже интересно.

 

Vit
()

vue.js - чем дополнить вместо twitter bootstrap?

Решил написать мелкую веб-приложеньку на vue. Надо делать чем-то разметку и всякие мелочи вроде dropdown menu. Но у меня сложилось впечатление, что привинчивание к vue бутстрапа отдает попыткой привинтить в проект jquery.

Нужен совет, в какую сторону глядеть за альтернативами. Т.к. всяких проектов налепили много, а какие из них перспективные - с ходу понять сложно.

Пока из полезного нашел:

  • vueuse - всякие низкоуровневые ништяки
  • TailwindCSS - для общей разметки
  • HeadlessUI - мелочи вроде дропдаунов и диалогов, но тут не уверен, стоит ли оно того, или врукопашную навалять.

Посоветуйте, куда стоит копать.

 

Vit
()

Как оценить гладкость движения цены между датами?

Хочется придумать метрики для двух ситуаций:

  1. Гладкость движения цены на отрезке (между датами). Идеальная ситуация - свечи короткие и не сильно отклоняются от прямой. Плохой вариант - свечи большие или отклоняются сильно.

  2. «Акцентированность» вершины в зигзаге. Идеальная ситуация - свечи сначала идут к вершине, а затем от нее. Плохая - когда вершина «замазана», т.е. много свечей у экстремума.

Какие есть варианты оценки? Навскидку пока приходит такое:

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

  2. Сделать преобразование фурье, и проверить что энергия не сильно размазана по спектру.

Что еще можно попробовать? Каких-то готовых «индикаторов», с которых можно сколоть алгоритмы, пока не нашел.

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

 

Vit
()

M$ и аттракцион неслыханной щедрости на гитхабе

https://github.blog/2022-06-24-thank-you-to-our-maintainers/

Майкрософт решил запихать в разработчиков немного денег. Критерий не понятен, но на организации действительно валится по 550 однократными донатами.

 

Vit
()

Бесплатные G-Suite еще поживет?

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

Типа, как в анекдоте, если не прийти то вычеркивают? Раньше пугали, что останется все кроме почты. Теперь какая-то совсем травоядная страшилка.

 

Vit
()

Что надо знать про SLA-печать при покупке?

Мне тут надо помоделить коробочки, и возникла навязчивая идея купить SLA-принтер навроде Anycubic Photon Mono X 6K.

Правильно ли я понимаю, что надо будет:

  • Купить сам принтер
  • Купить вторую коробку для засветки-промывки
  • Купить канистру изопропилового спирта
  • Купить для черновиков любой говносмолы за 15 баксов и на чистовики ABS-like за 50.

Этого будет достаточно для комфортной работы? Или в последний момент обнаружатся какие-то откровения вроде обязательного противогаза, разворачивающие картину мира на 180 градусов?

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

Детальки тестовые, для опенсорсов, в расчете что потом будут заказывать на jlcpcb печать из LEDE 6060. Поэтому тестить хочется на чем-то близком, FDM принтер не хочу, цена SLA-расходников устраивает.

Что еще надо учесть?

 ,

Vit
()

bankoff всё

Пришло письмо от bankoff, что им терминировали все карты, и заморозили счета с баблом. За большое количество транзакций из России.

Это видимо еще очень жирный намёк любителям карт Казахстана и Киргизии :).

 bankoff

Vit
()

Телефон на трактор

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

  • кто кроме мтс умеет слать симки за бугор? мтс всё еще умеет?
  • может есть дармовое приземление без симки? Мне нужны только входящие SMS, но с местным номером.
  • есть ли смысл к засвеченному номеру завести еще один, и перегнать на него все что актуально?
  • если надо на что-то еще обратить внимание - напишите.

 ,

Vit
()

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

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

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

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

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

 

Vit
()

Где взять курсы RUR / USD / EUR ?

Мне в барахолке надо раз в сутки «подкручивать» цены, в зависимости от того, в чем выставил продавец и в чем смотрит покупатель. Ну и для сортировки по цене. То есть, без особых претензий на точность.

Раньше брал курсы тут https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml

Но недавно поперли ошибки, потому что RUR в том источнике просто пропал :). Посоветуйте надежные и бесплатные альтернативы курсов RUR / USD / EUR (всех комбинаций).

 

Vit
()

imageshack отжигает

Как известно, на бесплатных хостингах картинки временами протухают, и превращаются в тыкву.

Но безбожный imageshack решил вместо 404 пораздавать мотиваторов. Очевидно, что на деньги натовских гомопендосов и жидорептилоидных иллюминантов.

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

PS. Так вот почему на лоре нет картинок… как дальновидно оказалось :).

 imageshack,

Vit
()

G Suite отчаливает, куда бежать?

Гугл обещает в июне всех юзеров G Suite зафорсить на что-то «новое» (на самом деле - платное), а тех кто не прописал оплату - провернуть на болте.

Ну допустим, домен с почтой перетащить не особо сложно. Но ведь у меня на один из аккаунтов андроид пореган. А там приложения, покупки. С этим-то как быть?

По интернетам полазал, самый частый ответ на google answer - «курите писю» (краткое изложение). Может кто уже разбирался и нашел решение?

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

 

Vit
()

отсрочка оплаты на fastmail

Fastmail разослал письма, что тех кто обломился с оплатой - не будут щемить «по крайней мере до сентября».

Мне не актуально, но все равно приятно. Слава фастмейлу!

 

Vit
()

VPN + мегафон, как?

У меня NordVPN. Дома на домру все ок, а когда катаюсь по городу - ни фига не пашет, ни tcp, ни udp ни nordlink (на андроиде можно выбирать). К обфусцирующим серверам тоже не коннектится.

В общем, чего поставить чтобы пахало? Не обязательно бесплатное. Есть VDS, но в скриптах на гитхабе можно заблудиться.

Интересует в первую очередь связка «андроид + мегафон». Желательно так чтобы в полтора клика, без ручного редактирования километровых конфигов.

 ,

Vit
()

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

Оказывается, хетцнер вот прямщаз, по запросу в суппорт, умеет выставлять инвойсы на 3 или 6 месяцев. Раньше вроде подобное было, но только банковским переводом. Сейчас можно картой.

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

 ,

Vit
()

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