• Как установить arch на флешку для запуска на любом железе?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Например, должен ли я установить драйвера на все карточки или они будут конфликтовать друг с другом и я должен ограничиться стандартной mesa?

    почему бы и нет, установить все свободные дрова на видео:
    pacman -S xf86-video-vesa xf86-video-nouveau xf86-video-intel xf86-video-ati

    или лучше сразу ставить группу xorg-drivers:
    pacman -S xorg-drivers
    в общем смотри Xorg#Driver installation

    Можете ещё глянуть тему на арчфоруме Переносной Arch, правда писалась уже давно и в некоторых местах малость устарела, но если спросите на форуме думаю направят в нужном направлении.

    Цель: флешка с arch-ем, запускающаяся на любом железе, для выполнения повседневных задач.

    Может вам просто модифицировать archiso под свои нужды. Раз настроите, соберёте и работать будет быстрее так как грузится в оперативку.
    Ответ написан
    2 комментария
  • Как создать USB HID из Arduino?

    NeiroNx
    @NeiroNx
    Программист
    гуглите по "V-USB HID Arduino"
    вот один из примеров rukodelie-ds.ru/forum/viewtopic.php?t=804

    Также есть от Digispark для Attiny85 - его основа V-USB
    Также вам придется узнать что такое "HID дескриптор" и о правилах его написания(в инете есть документация и проги для этого).
    Ответ написан
    Комментировать
  • Почему константное значение Qstring?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Есть такое правило: "const по умолчанию", т.е. const нужно использовать везде, где это возможно. В данном случае QString передается по ссылке и планируется только для чтения, потому его делают константным.

    Кроме того, для копируемых объектов const не нужно, достаточно передавать их по значению (аргумент скопируется и нам будет доступна лишь его копия). Но QString может быть достаточно крупным, а вызовы метода - достаточно частыми, потому передается просто ссылка. Появляется возможность изменить объект через эту ссылку. Чтобы это снова запретить, в методе указывают const для аргумента-ссылки.
    Ответ написан
    Комментировать
  • Как заставить функцию zip добавлять пустые элементы?

    aRegius
    @aRegius
    Python Enthusiast
    Добрый день.

    Вам нужна функция zip_longest из модуля itertools.

    >>> from itertools import zip_longest
    >>> a = ['1', '2']
    >>> b = []
    >>> list(zip_longest(a, b, fillvalue=''))
    [('1', ''), ('2', '')]
    >>>


    Ну, тут все понятно по коду вроде...
    Ответ написан
    2 комментария
  • Как понять, как использовать переменные, указатели и ссылки в C++?

    В параметре функции:
    • Если параметр не нужно модифицировать, то передаём по константной ссылке const T&
    • Если к тому же параметр -- это POD размером не более 32 байт, то можно передать по значению T
    • Если параметр нужно модифицировать, то передаём по неконстантной ссылке T&
    • Если параметр может отсутствовать (nullptr), то передаём по указателю T* / const T*. Константность зависит от того, надо ли параметр модифицировать
    • Если нужно скопировать внутрь текущего объекта параметр шаблонного типа, то используем универсальную ссылку T&&


    В возвращаемом значении:
    • Если нужно вернуть результат, вычисленный в функции, возвращаем значение
    • Если нужно вернуть указатель на фиксированную область памяти, возвращаем ссылку / указатель. Различие в использовании и константность подробно описаны выше
    • Если мы хотим передать владение, возвращаем std::unique_ptr


    В поле класса:
    • Почти всегда по значению
    • Указатель указывает на память, которой мы не владеем (не имеем права делать delete). Ссылки нельзя использовать ввиду технических ограничений
    • std::unique_ptr указывает на память, которой мы владеем. Предпочитать значению его следует, если это полиморфный тип


    Замечание 1. Есть типы, перемещение которых дорого или невозможно: большой std::array, std::fstream. Если мы хотим передавать владельца переменной такого типа или, например, вернуть из функции, то придётся использовать std::unique_ptr.

    Замечание 2. "Нужно модифицировать" означает, что мы хотим, чтобы изменения объекта были видны вне функции. Можно и нужно обходиться константной ссылкой, если допустимо скопировать переменную и модифицировать её внутри функции.
    Ответ написан
  • Как правильно использовать конструктор?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Конструктор должен иметь одну ответственность - инициализировать ресурсы. Рисовать он не должен.

    Так что вариант два - в топку.

    Если нужно одновременно создать и нарисовать - создайте для этого статический метод, который создаст, нарисует и вернет экземпляр.
    Ответ написан
    Комментировать
  • Нет звука в Ubuntu 16.04. Что делать?

    Adamos
    @Adamos
    В интернетах встречается информация о том, что хитрые Винды ленятся каждый раз инициализировать звук при включении на нотубуке и оставляют устройство в спящем состоянии при перезагрузке. Пока вы в Виндах - все нормально, но перезагрузившись в нормальную систему, вы можете обнаружить, что звук спит и не отзывается. Как будто его вовсе нет...
    Предлагаются варианты загрузиться в Винды и штатно их выключить - вроде бы помогает. Но, за неимением Виндов, вполне возможно, достаточно будет на некоторое время отсоединить питание и батарею от ноутбука.
    Ответ написан
    9 комментариев
  • Git Из какой ветки создается бранч?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Из текущей ветки, очевидно.

    (Наберите git branch, чтобы увидеть список локальных бранчей, где текущий будет отмечен астериском)
    Ответ написан
    4 комментария
  • Указатели в C++: что такое "x{"?

    @koronabora
    Человек
    Это мусор в памяти.

    Почему так происходит - char* воспринимается как строка, по стандарту с
    Далее - длина, занимаемая в памяти переменной, всегда кратна определенному значению. Как и сам размер, занимаемый в памяти. Это, обычно, 4 байта для х86 и 8 для х64. Технология называется выравниванием.

    Вы в строку записали один символ, а символ конца строки не записали. Прочиталась память до конца промежутка выравнивания и вывелась для вас. Там оказался всякий мусор, как всегда. Это все равно, что вывести неинициализированную переменную.

    З.Ы. А само выравнивание необходимо для быстрого доступа к памяти. Грубо говоря, память разбивается на ячейки и мы всегда знаем, что для большинства переменный адрес делится на 4 или на 8, например.
    Ответ написан
    Комментировать
  • Указатели в C++: что такое "x{"?

    @Mercury13
    Программист на «си с крестами» и не только
    Дело в том, что для char* работает особый механизм вывода в поток. Этот указатель воспринимается не как адрес, а как строка Си. Первым символом строки будет, разумеется, R. А дальше — идёт по памяти и выводит все байты подряд, пока не обнаружит 0.

    Поскольку после char (1 байт) идёт char* (8 байтов), нам придётся создать семь байтов выравнивания (судя по длине указателя, мы на x64). В этих семи байтах и обнаружились фигурная скобка, ноль и непонятно что.

    Поставьте вместо char int — будет всё, как вы думали. Указатель int* выводится без всяких интерпретаций.
    Ответ написан
    2 комментария
  • Как удалить коммит с сервера?

    Если это последний коммит в ветке, то:

    Удалить его локально
    git reset HEAD~1 --hard

    Сделать force push на сервер
    git push -f
    Ответ написан
    1 комментарий
  • Как правильно создать локальную копию std::wstring?

    @Mercury13
    Программист на «си с крестами» и не только
    void doSomething(std::wstring* s)
    {
       std::wstring temp = *s;
    }
    Ответ написан
    1 комментарий
  • Поставил Linux Ubuntu 14.04 поверх Windows 10,вопрос по поводу загрузки. что делать?

    Frankenstine
    @Frankenstine
    Сисадмин
    "Поверх" и "переключить ось" - взаимно исключающие параметры.
    Чтобы ответить на вопрос, не хватает сведений: влючен ли UEFI режим загрузки, какие hdd установлены, какова на них таблица разделов (GPT/MBR), куда устанавливался загрузчик Grub2 во время установки Ubuntu, ...
    Ответ написан
    5 комментариев
  • Какие знания по математике для создания игр на C++?

    @mamkaololosha
    Линейна алгебра, вычислительная геометрия. Может основы физики, сплайны, интерполяция.
    Можете же просто взять и в консоли написать арканоид, а рисовать в массив char 64x64. Можете добавить еще отрезки прямых и от них отскакивает.
    Ответ написан
    Комментировать
  • Для чего нужны и что делают аллокаторы в С++?

    Аллокатор умеет выделять и освобождать память в требуемых количествах определённым образом. std::allocator -- пример реализации аллокатора из стандартной библиотеки, просто использует new и delete, которые обычно обращаются к системным вызовам malloc и free.

    Более сложный пример -- pool allocator. Раз системные вызовы дороги, почему бы на них не сэкономить? Выделим сразу 1 гигабайт памяти (к примеру), а дальше в аллокаторе будем выдавать память из этого пула и увеличивать указатель head (опять же, упрощенно). Реальное выделение памяти только одно, системных вызовов почти нет, ура-ура, программа ускорилась.

    Собственно, для этого и нужны аллокаторы, чтобы вставлять свое, крутое, нестандартное, выделение памяти в любое место. Большинство стандартных контейнеров их принимают.
    Ответ написан
    2 комментария
  • Как заставить Ubuntu выходить из suspend-а после полного отключения питания?

    Frankenstine
    @Frankenstine
    Сисадмин
    Режим suspend сохраняет питание на оперативной памяти, и разумеется выйти из него после отключения питания невозможно так как теряется содержимое оперативки. Вам нужен режим hibernate, когда содержимое оперативной памяти сохраняется на hdd.
    Ответ написан
    2 комментария
  • Как написать формулу для датчика псевдослучайных чисел, как это сделать?

    #include <vector>
    #include <random>
    
    std::vector<double> result(100);
    
    std::uniform_real_distribution<double> unif(-10.0, 10.0);
    std::default_random_engine re;
    
    for (int i = 0; i < 100; ++i) {
        result[i] = unif(re);
    }
    
    std::sort(result.begin(), result.end());
    Ответ написан
    1 комментарий
  • Память в куче под константую ссылку?

    maaGames
    @maaGames
    Погроммирую программы
    // Под константную ссылку выделяется память в куче?

    В стэке создаётся ссылка на указатель, который указывает на объект в куче.
    Ответ написан
    Комментировать
  • Как узнать угол между двумя точками?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Строго говоря, между двумя точками не может быть никакого угла.
    Ответ написан
    3 комментария