• Как понять что программирование это твое?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Я сейчас открою тебе одну тайну .... Всем плевать. Это только твое дело
    Ответ написан
    Комментировать
  • Книжка/курс по Linux для новичка?

    @Mako_357
    Брайан Уорд Внутренее устройство Linux. Проще книгу не видел, затрагивает все устройство Linux, но кратко и по существу. На 380 стр. Читается легко.
    Из видеоуроков порекомендую канал Кирилла Семаева на ютубе. Ищется легко. Тебе нужен плейлист LPIC-1. Объясняет понятно и интересно.
    Ответ написан
    Комментировать
  • Что такое макросы в С++?

    32bit_me
    @32bit_me
    Программист, встраиваемые системы
    #define sqr(x) x*x - это образец того, как не нужно писать макросы.

    Более правильно так:

    #define SQR(x) ((x)*(x))

    Тогда:
    ((3+0)*(3+0)) = 9

    Но в С++ использование макросов считается дурным тоном (чаще всего). Используйте inline - функции.
    Ответ написан
    Комментировать
  • IDE для C++ на Linux, но не чисто под QT?

    Adamos
    @Adamos
    Давно использую QtCreator, но ни разу не имел дела с Qt - у меня GUI на wxWidgets.
    "Родной" для wxWidgets Code::Blocks показался куда менее удобным.
    CLion толком не пробовал - он, в отличие от, платный, вообще-то.
    Теоретически есть еще Eclipse / NetBeans, но никаких преимуществ у них назвать не могу, одни недостатки.
    Ответ написан
    3 комментария
  • Как отсрочить запуск сервиса на Raspbian?

    Найдите где у вас действующий конфиг для Systemd - файл sockd.service
    И попробуйте изменить и добавить строки
    After=network-online.target
    Wants=network-online.target


    //Был включен dhcp. Dante запускался до получения адресом. Лучше настроить статику.
    Ответ написан
  • Какой НОРМАЛЬНЫЙ дистрибутив поставить с самыми свежими программами?

    Adamos
    @Adamos
    он должен быть стабильным и иметь самые последние программы

    "Хочу, чтобы тачка разгонялась до ста за секунду и при этом была совершенно безопасной".
    Чувак, купи мопед. Или поставь Винду (пожелание от имени присутствующих линуксоидов).
    Ответ написан
    7 комментариев
  • Можно ли установить "Алису" на linux через wine?

    @pfg21
    ex-турист
    если не заморачивать на линухе, то на малинку поставить андроид прошивку, а уже на нее штатно поставить приложение Алиса.
    если сильно нужон именно линукс, можно поставить алису внутри андроид-плеера.
    потеря производительности в обоих случаях будет минимальна.
    Ответ написан
    1 комментарий
  • Как воспроизвести wav файл на чистом c++ без сторонних библиотек?

    Nipheris
    @Nipheris Куратор тега C++
    1. Курите формат wav-файлов, он не особо сложный, написать код чтения не должно составить проблем.
    2. Разбираетесь с аудио-API различных ОС. Убеждаетесь, что для разных ОС реализация будет разная.
    3. Обеспечиваете необходимые преобразования прочтенных из wav данных о звуковой волне в данные, готовые к передаче в аудио-API.
    4. Результат.
    Ответ написан
    1 комментарий
  • Почему не переполняется float?

    maaGames
    @maaGames
    Погроммирую программы
    Магия плаващих точек :)
    Числа должны быть примерно одного порядка, иначе UB (с оговорками).
    3.4е38 + 1.0 = 3.4е38. Это равнозначно 3.4е38 + 0.0, потому что 1 по сравнению с 1е38 равно нулю.
    А при умножении различие будет уже в 7 знаке после запятой, которую float может обнаружить и сообщить о переполнении (+INF).
    Ответ написан
    2 комментария
  • Существует или может ли существовать задачник по паттернам, как для алгоритмов и структур?

    @Microp
    Не совсем понятно, что вы имеете ввиду под паттернами.
    А задачи по типам данных и возможностям языка, можно найти в большинстве архивов по алгоритмическому программированию и использовать их исходя из условия задач. При повышении сложности задачи, появляется необходимость использования тех или иных возможностей языка программирования. Например acmp.ru или https://www.spoj.com/
    Сами же паттерны это по сути стиль написания кода, который накладывает какие-либо ограничения для правильного функционирования программы и легкости её поддержания и некоторые дополнительные возможности, которые определяют структуру кода, а не его логику. Как синглтон решает задачу не дублирования данных и т. д.
    Ответ написан
    1 комментарий
  • Как найти последовательные совпадения в массиве?

    NYMEZIDE
    @NYMEZIDE
    резюме - ivanfilatov.ru
    Реализуй конечный автомат. Подаешь последовательность.
    Читаешь, Запоминаешь первую цифру. Двигаешь автомат вправо.
    Если цифра та же самая - увеличиваешь счетчик +1. Проверяешь счетчик, не равен ли он 3м. Двигаешь автомат вправо.
    Если счетчик стал равен 3м - то двигаешься вправо до тех пор пока не получиться другая цифра.
    Если другая цифра - то проверяешь счетчик был равен или больше 3х.
    Если да - то двигаешь автомат влево ровно сколько раз, сколько равен счетчик и "красишь цифры". После двигаешь автомат вправо на сколько же позиций.

    Ну осталось только это дело реализовать на предпочитаемом ЯП.
    Ответ написан
    1 комментарий
  • Почему n^3 работает быстрей чем 2^n?

    @Mercury13
    Программист на «си с крестами» и не только
    Одно из двух.
    А. O(n³) и O(2n) — сложность каких-то алгоритмов.

    Читайте определение символов Ландау, и будет всё понятно.
    n³ = o(2n) при n→∞, что означает:

    lim{n→∞} n³ / 2n = 0.

    Что означает: при безграничном повышении n алгоритм, работающий за n³, будет иметь всё большее и большее преимущество перед конкурентом.

    Б. n³ и 2n — функции, которые нам надо вычислить.

    Сложность первой O(1) (всегда два умножения), сложность второй в общем случае — O(log n) (из-за того, что логарифмы от разных оснований отличаются на константу, а константу символы Ландау не учитывают, основание логарифма не пишут).

    UPD. Что значит «в общем случае»? Оценку могут увеличить различные второстепенные алгоритмы вроде выделения памяти и преобразования в десятичный вид, и уменьшить — то, что 2n можно вычислть сдвигом. Не забудьте, что сложность алгоритмов определяется при n→∞.
    Ответ написан
    Комментировать
  • Как в GRUB указать, что грузить ядро нужно с вебсервера?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    А как GRUB достанет данные с веб-сервера, когда у него нет ещё сетевой карты, настроек DNS и обработчика HTTPS handshake? TFTP-сервер ещё вариант, в этом случае вам потребуется отдавать образ, который будет тянуть ядро и образ файловой системы с него, читать про реализацию PXE (она, кстати, нативная на сетевой карте, так что это немного не GRUB). А вообще GRUB как таковой не умеет работать с не-локальными источниками данных. То есть никак.
    Ответ написан
    Комментировать
  • Один двумерный или два одномерных массива?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что выбрать?

    То, в чём потом не запутаешься. Потому что в массивах ты уже запутался.
    Я бы предложил один массив структур с полями для имени, фамилии и отчества.

    Что лучше выбрать с точки зрения использования памяти и производительности?

    Лучше выбрать то, в чём потом не запутаешься. Если будет тормозить -- прогнать через профилировщик и смотреть на результаты профилирования.
    Ответ написан
    Комментировать
  • Как правильно использовать строки в плюсах?

    @Mercury13
    Программист на «си с крестами» и не только
    • std::string — как правило, если не указано противное.

    • QString, AnsiString/UnicodeString и прочие — в соответствующих фреймворках, обычно очень близко к интерфейсным функциям.

    • char* — практически не используется в реальном коде. В основном для оптимизации, если есть собственное управление памятью. Довелось как-то в собственном разборщике XML (работает в 2,5 раза медленнее рекордсмена, pugixml. Зато даже это в разы быстрее Excel’я, пространства имён «из коробки», расход памяти мизерный и программирование простейшее.)
    Зато по-чёрному используется его const-аналог.

    • const char*. Это может быть одинокий const char* + нуль-терминированная строка, или указатель+длина, или указатель на начало + указатель за конец.
    1. Если ожидается, что в функцию будем передавать строковый литерал.
    void writeEnum(st::Stream& st, int value, const char* names[]) {}
    
    enum class Letter { A, B, C, …, Z, NN };
    const char* natoNames[static_cast<int>(Letter::NN)] = { "alpha", "bravo", "charlie", … };
    writeEnum(someStream, static_cast<int>(Letter::E), natoName);

    2. Если операцию со строкой можно произвести «на месте», не заводя новую память: (trim, как известно,— обрезка пробелов в начале и конце)
    void trim(const char*& beg, const char*& end);

    3. Если структура данных паразитирует на чужих строках, не заводя своей памяти. Особенно если конструкция строк неизвестна (например, при передаче данных из плагина в плагин).
    struct ParasiteString { const char *beg, *end; };

    4. В библиотеках, если они реально настолько компактные, что нет нужды обязательно подключать жирный STL.

    • char[] — только как оптимизация, когда предельная длина строки известна и невелика.
    wchar_t* myFtos(double value, wchar_t* buf, const FloatFormat& format) {}
    
    wchar_t buf[100];
    myFtos(100.500, buf, FloatFormat::NICE);
    Ответ написан
    Комментировать
  • Хочу сделать систему, чтобы при переводе с карты на карту часть оставалась у меня?

    @402d
    начинал с бейсика на УКНЦ в 1988
    Требования к деятельности платежных агентов
    Так как деятельность платежных агентов заключается в приеме денежных средств, то закон предъявляет к таким организациям особые требования.

    Необходимо открыть специальные счета. Нужно запомнить, что со спецсчета агента деньги поставщику можно перечислить только на спецсчет. За нарушение указанного правила предусмотрена ответственность.
    Агент обязан проводить идентификацию плательщиков.
    Кассовый чек платежного агента должен соответствовать предъявляемым требованиям.
    Платежные агенты обязаны вести отдельную кассовую книгу по средствам, полученным ими в рамках деятельности платежного агента и формировать отдельные приходные кассовые ордера на них. Эти деньги не учитываются при расчете лимита кассы и должны полностью сдаваться в банк. Деньги с момента их поступления в кассу платежного агента принадлежат третьим лицам.
    Отдельные требования есть и для платежных агентов, применяющих в своей работе платежные терминалы или банкоматы:

    использовать ККТ в составе платежного терминала, банкомата;
    регистрировать ККТ в налоговой инспекции;
    применять исправную ККТ и эксплуатировать ее в фискальном режиме;
    выдавать кассовый чек;
    вести и хранить документацию по ККТ;
    обеспечивать проверяющим доступ к ККТ и документации на нее.
    Между поставщиком и платежным агентом заключается, как не трудно догадаться, агентский договор. Вознаграждение, по общему правилу, удерживается непосредственно агентом.

    Но важно понимать, что если агент получает наличные от физических лиц, то всю сумму необходимо перечислить на свой специальный банковский счет (до этого момента вычесть свое вознаграждение нельзя). И уже со спецсчета можно будет перечислять средства на другие счета (п. 4 ч. 16 ст. 4 Закона от 3 июня 2009 г. № 103-ФЗ). При этом 103-ФЗ не конкретизирует, на чьи счета могут списываться средства.

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



    Ответственность
    Если платежный агент перечислит на свой специальный банковский счет не все наличные, полученные от граждан (ч. 2 ст. 15.1 КоАП РФ), он может быть привлечен к административной ответственности.

    За такое нарушение грозит штраф:

    для организации – от 40 000 до 50 000 руб.;
    для должностных лиц (главного бухгалтера, а если его нет – руководителя организации), предпринимателей – от 4000 до 5000 руб.
    Заметим, что индивидуальные предприниматели могут быть привлечены к ответственности только в качестве должностных лиц. Это следует из определения категории «должностные лица», которое дано в статье 2.4 Кодекса РФ об административных правонарушениях.

    Не исключено одновременное привлечение к административной ответственности как организации, так и ее руководителя. Правомерность такой позиции подтверждается письмом Минфина России от 30 марта 2005 г. № 03-02-07/1-83 и арбитражной практикой (см., например, постановления ФАС Московского округа от 14 июля 2005 г. № КА-А40/6231-05, Дальневосточного округа от 17 мая 2005 г. № Ф03-А16/05-2/984, Западно-Сибирского округа от 5 июля 2005 г. № Ф04-4410/2005 (12792-А03-32)).

    Таким образом, если вы планируете принимать деньги от физических лиц, тщательно проверьте свою бизнес-модель и определите, являетесь ли вы платежным агентом (чтобы потом вас не привлекли к ответственности).

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

    Еще желание осталось ?
    Ответ написан
    4 комментария
  • Какую схему взять за основу для ЦАП?

    @pfg21
    ex-турист
    курсач :) читай методички.
    резистивную цепочку R-2R - 146% оригиналности ни у кого такой не будет.
    Ответ написан
    Комментировать
  • Как инжектить DLL через текстовый редактор?

    @res2001
    Developer, ex-admin
    :-) не верьте глазам своим. Скорее всего в текстовом редакторе правится конфиг для инжектируемой библиотеки. Сама библиотека отслеживает изменение конфига и перечитывает его.
    Ответ написан
    Комментировать
  • Какую выбрать Diff-утилиту под Windows на замену WinMerge?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    2 комментария
  • Какую базу использовать для локального приложения?

    СУБД SQLite должна подойти.
    Ответ написан
    Комментировать