LINUX.ORG.RU

Сообщения invy

 

reinterpret_cast UB или нет?

Это UB? Есть ли возмодность сделать аналогичное без UB? Если это UB то по каким причинам?

template<typename K, typename V>
struct CPair {
  K key;
  V value;
};
int main()
{
  std::map<int, std::string> sp {{42, "test"}};
  CPair<int, std::string> *p =
  reinterpret_cast<CPair<int, std::string>*> (&(*sp.find(42)));
  std::cout << p->key << " " << p-> value;
}

 

invy ()

Организация структуры каталогов в cmake проектах

Дано: пол сотни программ и ещё пол сотни библиотек, которые используются этими программами.

Вопрос: как лучше всего организовать этот проект.

Цель: минимизировать время компиляции.

Само собой напрашивается решение вида:

./programs/a/CMakeLists.txt:
add_subdirectory("../../libs/blib")
add_subdirectory("../../libs/clib")
...
./programs/b/CMakeLists.txt:
add_subdirectory("../../libs/blib")
add_subdirectory("../../libs/dlib")
...
Очевидно, что мне не нравятся относительные пути. Так же для каждой программы придется собирать требуемые ей библиотеки отдельно. (Но зато каждая программа собирается отдельно в своем binary dir)

Вариант два: добавить один cmake и в нем подоьавлять все программы. Проблема: свалка всего и возможно неоправданно длинный этап конфигурации. Проблему относительных путей не рещает.

Посоветуйте best practices и может какие-то красивые решения.

 

invy ()

modern cmake

Поделитесь ссылками на best practices в современном cmake...

Типа target_include_directories Vs include_directories и т.п.

Что-то на подобие этого: https://cliutils.gitlab.io/modern-cmake/

Спасибо.

 

invy ()

Attitude Control System: Kill Rotation

Имеется некий 'spacecraft', у которого есть reaction control system.

Как можно реализовать функцию 'автопилота', останавливающую вращение (произвольное)?

Вращение вокруг одной из осей (x,y,z) неплохо останавливается PID регулятором, результат которого используется как команда соответственно (roll,pitch,yaw). Но когда я пытаюсь останавливать вращение вокруг нескольких осей - все ломается.

Есть тут кто-то разбирающиеся в сабже, подскажите?

Что можно почитать на эту тему?

Заранее спасибо.

 , , ,

invy ()

recovery дистрибутив с vnc на iso образе сразу

Добрый вечер, лор. Подскажите сабж.

Чтобы накатить iso на флэшку, воткнуть в девайс и зайти сразу по vnc туда.

У меня был самопальный дебиан но я ССЗБ его удалил в свое время (место на SD карте надо было).

Заранее спасибо!

 

invy ()

Выбора камеры муки

Выбираю новую камеру себе. Хочу много но ничего найти не могу что бы меня устраивало:

  • aps-c
  • набор приемлемой по цене относительно качественной оптики (35мм фикс, 50мм фикс, легкий телевик 55-250, 70-300 и что-то универсальное типа 18-135.
  • быстрый и надежный автофокус
  • относительно большой буффер, чтобы от RAW серией не сразу затыкалась
  • небольшой вес - примерно 500г.
  • тачскрин
  • вращающийся дисплей
  • хорошие видео-фичи nice to have

Рассматривал варианты:

  • Canon EOS 77D (или 800d) - шикарный автофокус за такую цену и в фото и в видео (45 cross-type точек). Недостатки: не умеет 4k, 35мм f/2 стоит довольно дорого)
  • Nikon d5600 - автофокус чуть хуже, 39 точек и 9 кросс-тайп (вот я не знаю насколько большая разница, но подозреваю что чущественная), с видео и live view у никонов судя по тому что я читал вообще все печально. Зато есть недорогой 35мм объектив.
  • sony a6300/6500 - по фичам очень хороша и 4к умеет, оптика вроде есть, автофокус вроде неплохой, но меня убило отсутствие тачскрина и перегревы. Да и цена особенно у a6500 уже кусается. И то, что она жрет батарею как бешанная - тоже печально.

Какие можете еще варианты посоветовать?

Спасибо!

 , , , ,

invy ()

Собеседование. По ту сторону.

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

 , ,

invy ()

Хром скатился или это я тупой?

Как посмотреть информацию о сертификате открытой страницы?

Тыкаю слева от адресса на «замок», но там про сертификаты ничего нет.

http://wstaw.org/m/2017/04/26/no_cert_info.png

 

invy ()

Java vs. hidpi

Умеют ли жабовые тулкиты scaling? Если да, то как его включить?

 ,

invy ()

Linux - графическая подсистема, документация

Раньше как-то этот вопрос не волновал, но сейчас захотел разобраться.

Подкиньте ссылок на материалы где подробно расписана архитектура графической подсистемы онтопика, как и что загрузается, в какой последовательности, что такое DRM, KMS, DRI и т.п. Куда это все? Как это связано с терминалами и всякими console-kit'ами и systemd-ligund-'ами? Как это все взаимодействует и загрузается?

Спасибо :)

 , , ,

invy ()

Кому кроссплатформенный опенсорсный авто-симулятор? :)

Авто-симулятор для теста юзкейсов и оборудования от GENIVI.

Выглядит так: https://www.youtube.com/watch?v=jiuay5YpaO8

«Сайт» проекта https://at.projects.genivi.org/wiki/display/PROJ/GENIVI Vehicle Simulator
Репозиторий. https://github.com/GENIVI/genivi-vehicle-simulator

Для сборки надо unity3d под онтопик, git lfs (для выкачивания ассетов).

В принципе работает с клавы... но с бубуном.

Есть автопилот :)

 

invy ()

Ubuntu перешло на systemd? Щаз..

У убунту похоже всё как обычно недоделано... До сих пор в /etc/init.d куча инит скриптов и на них куча ссылок из rc*.d

Судя по всему, чем дальше тем больше убунту скатывается в полное говно.

 ,

invy ()

OpenSource - действительно ли он такой свободный, как об этом говорят гнушники?

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

Там же лютый ад (/usr/include/c++/6/bits/basic_string.h):

...
    struct _Rep_base
    {
	size_type		_M_length;
	size_type		_M_capacity;
	_Atomic_word		_M_refcount;
    };

    struct _Rep : _Rep_base {
...
    }

    struct _Alloc_hider : _Alloc
    {
	_Alloc_hider(_CharT* __dat, const _Alloc& __a) _GLIBCXX_NOEXCEPT
	: _Alloc(__a), _M_p(__dat) { }

	_CharT* _M_p; // The actual data.
    };
    private:
      // Data Members (private):
      mutable _Alloc_hider	_M_dataplus;

      _CharT*
      _M_data() const _GLIBCXX_NOEXCEPT
      { return  _M_dataplus._M_p; }
...
      _Rep*
      _M_rep() const _GLIBCXX_NOEXCEPT
      { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
...
Видя такой код появляется одна мысль, что гнутые гуру специально пишут так, чтобы не читалось совершенно. (И потенциально прибитый гвоздями к компилятору, т.к. такая адрессная арифметкиа в структуре может вылезти боком.

Тут можно прямо конкурс устраивать: кто объяснит, суть

return &((reinterpret_cast<_Rep*> (_M_data()))[-1]);

Я для сравнения заглянул в libc++ имплементацию строк, там же все куда адекватнее.

 , ,

invy ()

Unicode, корейский язык, Hangul композиция/декомпозиция

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

Чисто любопытно :)

 

invy ()

Visual Studio for Mac

сабж, планируют уже в ноябре выпустить свою тормозную поделку для мака.

https://techcrunch.com/2016/11/14/microsoft-announces-visual-studio-for-mac-w...

Mac-капец близок?

Update: как выяснилось - это нечто типа болгенос, т.е. переименованая xamarin studio, она же - mono develop.

 ,

invy ()

gio, gtkmm signals vs. нити.

Подскажите, в каком треде происходит вызов слота в gio? Можно ли этим как-то управлять?

Например “ask-password” signal (https://developer.gnome.org/gio/stable/GMountOperation.html#GMountOperation-a...)

Я попробовал пользоваться gtkmm, но он мне прилетает в другую нить (thrradid в колбэке по крайней мере отличается от того, что я получаю в ните, где я начинаю процедуру монтирования)

 ,

invy ()

gvfs, gio - как узнать, куда в файловой системе монтируется fs?

Доброго дня.

Я монтирую ресурс (например smb) используя функцию g_file_mount_enclosing_volume. Она отрабатывает правильно: когда я ее вызываю первый раз, она отрабатывает без ошибок, когда я ее вызываю повторно (в целях эксперимента), то она возвращает, что «Location already mounted» (G_IO_ERROR_ALREADY_MOUNTED).

Но вот куда оно монтирует - непонятно. Я пробовал в случае успешной операции или, когда уже примоентировано, использовать g_file_find_enclosing_mount, но оно мне возвращает nullptr.

Что я делаю не так? Может я чего-то про gvfs не понимаю (документировано как-то оно все не очень). Или я не совсем понимаю, как работает gvfs?

 , , ,

invy ()

c++11 - лямбды, скоп и стандарт

Дано:

#include <iostream>
int main()
{
  int a = 42;
  auto f = []() {
    char a = 'd';
    return a;
  };
  std::cout << "f: " << f() << "\n";
  return 0;
}

компилируем...

$ g++ --std=c++11 -Wshadow 1.cpp           
1.cpp: In lambda function:                                                 
1.cpp:6:10: warning: declaration of ‘a’ shadows a previous local [-Wshadow]
     char a = 'd';                                                         
          ^                                                                
1.cpp:4:7: note: shadowed declaration is here                              
   int a = 42;                                                             
       ^                                                                   
Почему так?

 , , ,

invy ()

Чем наложить содержимое GPX на видео оверлеем?

Сабж. Имеется gpx трэк, имеются видео, чем можно наложить информацию из gpx файла (и производные данные в виде скорости, средней скорости и т.п.) на видео? Идеально было бы если б это было что-то типа «эффекта» к kdenlive.

 , ,

invy ()

И таки опять про фотографию. EF-S телевик.

Посоветуйте какой-то телевичок для EF/EF-S из серии «дёшево и сердито». Раньше как-то не было нужно, а тут вот еду погулять на авиашоу в Фарнборо и без телевичка, мне кажется, там будет кисло.

Когда самолет над головой летает, хватало и 135 и кропа потом, но мне кажется там чуть подальше самолеты летают :)

Из вариантов первое что приходит в голову canon ef-s 55-250 is stm, но что-то мне кажется 250 коротковато.

 ,

invy ()

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