Задать вопрос
  • А return 0(1) * _getch(), есть ли смысл от такой конструкции?

    @Furax
    Похоже на неуклюжую попытку игнорировать результат вызова функции _getch() и не словить предупреждений.

    Синтаксис "0(1)" специфичен для Visual Studio. Clang 18.1.3 и GCC 13.3.0 его не понимают. Писать на C++ так, чтобы при переносе на другую платформу приходилось править синтаксис, - довольно плохая практика (обычно находится и так достаточно проблем, чтобы их ещё руками плодить). С другой стороны, функция _getch() объявлена в conio.h, которого на том же линуксе нет, поэтому, возможно, переносимость и не была целью.

    Кстати, за более чем 15 лет на C++ вижу такой синтаксис впервые. Повод задуматься о том, насколько он будет понятен следующему разработчику.
    Ответ написан
    1 комментарий
  • Как дать права root с ограничением?

    @iiiopot
    Помню i486DX2
    root на то и root
    root в Linux по определению имеет неограниченные права на систему.
    Вместо этого можно создать нового пользователя и редактируя sudo (/etc/sudoers) ограничить те вещи, к которым новый пользователь не должен иметь доступ.

    newuser ALL=(ALL) /bin/systemctl restart *, /bin/systemctl start *, !/bin/systemctl stop *, !/bin/systemctl disable *, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod

    В этом случае пользователь может запускать и перезапускать сервисы, но не может останавливать или отключать их.

    Но, в любом случае нужно понимать, что давая кому то привилегии, вы перманентно даете ему доступ к системе.
    Потому, что если скажем, он все же запустит sudo bash, он сможет обойти ограничения.

    Есть другие решения, например использование SELinux или AppArmor. Или контейнеров или виртуализации, но лучше просто не повышать привилегии. Обычному пользователю root не нужен.
    Ответ написан
    Комментировать
  • Как ограничить скорость интернета для компьютеров в компьютерном клубе?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    Путь Simple:
    1. Делаем QoS на весь канал
    2. Делаем дочерние правила на каждый ПК
    3. Ставшуюся скорость отдаем остальным

    Путь Tree:
    1. Маркируем через Mangle нужный трафик
    2. Создаем дерево очередей
    Ответ написан
    Комментировать
  • Расскажите пожалуйста как реализован sin в cmath?

    @Mercury13
    Программист на «си с крестами» и не только
    SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
    Настройка сопроцессора. Это какая-то магия, имеющая две задачи: производительность и повторяемость.

    Дальше мы залезаем в устройство числа (причём для краткости имеем дело с 32-битными командами!) и проверяем на «малость» — если получилось малое, то sin x ≈ x.

    Дальше идёт проверка на |x|≲45° — идёт вычисление настоящего синуса. Опять-таки, проверка по верхним 32 битам числа (синус вычисляем по всем 64 битам ☺️).

    Если число не очень большое, мы загоняем его в диапазон ±45° и вычисляем синус или косинус.

    Если число побольше — идёт более злой загон в диапазон ±45° и то же самое.

    И последнее, что осталось,— ∞/NaN.

    Внутренние функции обозревать не буду, но что мы тут видим?
    1. Какие значения бывают чаще, какие реже?
    2. Для очень маленьких значений sin x ≈ x, cos x ≈ 1.
    3. Ещё одно — залезание во внутренний формат компьютерного дробного, причём даже на x64 имеем дело с 32-битными целыми.
    4. Даже функция приведения в ±45° есть в двух видах — упрощённом и «злом» в зависимости от абсолютной величины числа.
    Ответ написан
    4 комментария
  • Возможно ли в TrueNAS запретить по протоколу SMB изменять или удалять файлы в папке,и оставить только создание файлов?

    hint000
    @hint000
    у админа три руки
    Проходили подобную блажь. Даже на NTFS, где штатные настройки прав шире, чем на *NIX-овых системах. Проведём эксперимент. Открываете со своего рабочего стола какой-нибудь *.doc или *.xls (можно *.docx или *.xlsx) жмёте "Сохранить как...", находите вашу шару с указанными ограничениями. И не можете сохранить. Почему? Это же создание нового файла на шаре? Должно работать, но не работает. Проверяем: пробуем с рабочего стола скопировать файл на шару - копируется без проблем. Ещё проверяем: пытаемся заархивировать файлы прямо на шаре, пытаемся создать на шаре бэкапы не самописным скриптом, а при помощи какого-то популярного ПО для резервного копирования. Во многих случаях обламываемся. Потому что все эти Word'ы, Excel'и, архиваторы, и куча другого прикладного ПО не подозревает о странном правиле "создавать можно, редактировать нельзя". Они сперва создают пустой файл, а потом пытаются записывать в него. В результате на шаре остаются именно пустые файлы (с правильным именем, но размером 0 байт). Создать-то пустой файл можно. Записать в него хоть что-то - это уже редактирование, это нельзя. В лучшем случае вы будете каждый день объяснять пользователям, что такие вот правила - скопировать файл Проводником (или FAR'ом, Total'ом) можно, а сохранить из большинства программ нельзя. Дополнительное действие пользователям - сначала сохранить на своём ПК, затем скопировать на шару. Пользователи, которые кидают на шару файлы не каждый день, будут забывать и каждый раз снова требовать объяснений. В худшем случае директор или главный бухгалтер в какой-то момент не только забудут, но и не заметят, что файл не сохранился, и будет скандал насчёт потери важнейшего файла.

    Что касается *NIX-ообразных систем, там штатно даже и не предусмотрено разделение на "создание" и "редактирование", там это одно и то же.
    Это можно решить другими методами, но выбор метода зависит от постановки исходной задачи. Например, для тех же резервных копий запрет редактирования действительно важен, но тут и хорошие варианты решения давно известны.
    Ответ написан
    Комментировать
  • MikroTik CRS328-24P-4S+RM или HEXs - самовыключение всех интерфейсов - новая БОЛЕЗНЬ Микротиков?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    Чудес не бывает.
    1. Netinstall на свежий long-term
    2. Пароль админа никому не даем
    3. Доступ на железку только для своего IP
    4. Ждем повторного поведения

    Даже если микрот сбрасывается в 0, порты всегда будут в up
    Ответ написан
    1 комментарий
  • Авторизация на папку в батнике, как реализовать?

    @NortheR73
    системный инженер
    Использование модуля SQLServer PowerShell не рассматривали?
    Backup-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.bak" -Credential (Get-Credential "sa")

    креды можно спросить при выполнении или прочитать из заранее приготовленного файла (через System.Management.Automation.PSCredential)
    Ответ написан
    Комментировать
  • Как установить программу с github в Ubuntu при помощи терминала?

    @q2digger
    никого не трогаю, починяю примус
    Открыть гитхаб проекта и сразу найти там ссылку на страницу с инструкцией по установке и запуску.
    https://prismlauncher.org/download/linux/
    Ответ написан
    Комментировать
  • Как подчинить алгоритм YouTube?

    @alexalexes
    Когда плохое настроение нужно хоть иногда выключать гаджеты, где вас цепляют рекомендациями по контенту, не только youtube. Выходить на улицу - гулять, дышать свежим воздухом, без телефона.
    Ответ написан
    Комментировать
  • Как объяснить провайдеру какая у меня проблема с интернетом так, что бы что бы это исправили?

    ValdikSS
    @ValdikSS
    Полагаю, свитч провайдера перешел в режим хаба по какой-то причине (рассылает полученные пакеты на все порты без фильтрации), т.к. вы видите в touch unicast-трафик других IP-адресов. Кто-то скачивает файл через L2TP на полной скорости, и эти данные приходят всем клиентам на все порты свитча.

    Вам нужно объяснить поддержке, что их свитч (скорее всего, в вашем доме) неисправен либо программно, либо аппаратно, и «перешел в режим хаба. Когда кто-то качает файл, у всех остальных маленькая скорость. На мой порт приходит L2TP-трафик других IP-адресов.».
    Ответ написан
    5 комментариев
  • С++ Как правильно вернуть ссылку?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Ссылка - это как указатель, только она не может быть нулевой.
    Поэтому никак нельзя вернуть *nullptr_t вместо ссылки на переменную, в отдельных случаях.

    Вообще, у вас там разыменование нулевого указатяля, что есть UB и делать это категорически нельзя.

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

    Вам лучше подойдут указатели.
    Ответ написан
    2 комментария
  • Есть ли задача на распределенные вычисления, которую легко проверить?

    @rPman
    Алгоритмы майнинга криптовалют, любой, тот же биткоин изучен и разложен по полочкам вдоль и поперек.
    У всех у них это свойство - сложно считать но легко проверить.

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

    Так как у тебя академическая задача, тебе не нужно повторять именно тот самый алгоритм и настраивать инфраструктуру, просто реши задачу поиска хеша от байтового представления числа. Т.е. задача в организаци процесса - управление рабочими потоками/нодами, с раздачей заданий (интервалов в пределах которых каждый воркер будет перебирать хеши) и сбор результатов, включая обработку ошибок.
    Ответ написан
    Комментировать
  • Как в python подключить QT StatusBar?

    @mxrdxfxrrx
    flstudio20, py3.x
    я не эксперт в qt, но мне кажется, что твой statusBar нужно сначала создать, и только потом вызывать showMessage
    может быть он у тебя в design, попробуй импортировать созданный QStatusBar из design, и потом уже вызвать его вместе с .statusBar().showMessage("Привет")
    Ответ написан
    Комментировать
  • Как получить угол поворота руля с CAN-шины?

    Daemon23RUS
    @Daemon23RUS
    Одновременно и просто и сложно, зависит от "глубины погружения в тему"
    Для различных авто немного по разному, но принцип один и тот же, по ОБД данные доступны через запросы к соответствующему модулю (MRM,ABS,ESP ....) (думаю для разных машин по разному и с различной точностью, количеством инфо) скорость поворота руля и угол поворота (если память не изменяет с точностью до десятых долей) скорость вращения каждого колеса тоже с точностью до десятой доли км/ч. Но тут встает момент, что некоторые модули ABS при таких запросах становится в диагностический режим а свыше 30-50 км/ч выходят из него и перестают отвечать на подобные запросы. Но это не отменяет возможности подслушивать эти сообщения по CAN, например в приборку прилетает постоянно скорость. Но и тут от модели авто зависит, где-то это просто скорость, а где-то 4 значения по каждому колесу.
    И 2й вариант подслушивать эти сообщения на шине, когда блоки общаются между собой. И опять ньюанс, на разных машинах по разному, но например высокоскоростная шина моторного (мотор коробка абс) не флудит этим трафиком в ОБД, а на некоторых машинах наоборот все слышно по ОБД
    По частоте запросов точно не скажу, тоже вариативно, но минимум 1-2 запроса в секунду должно проходить, если запрашивать у блока, а если подслушивать, тот тут все от блока зависит. Вы же понимаете, что для своих целей внутри ABS получает данные напрямую с датчика, и в состоянии определить пропущенный сегмент на задающем диске а частота опроса в милисекндундах.
    Ответ написан
    3 комментария
  • Не работают 32 битные приложения из windows почему?

    GavriKos
    @GavriKos
    Потому что у тебя Linux, вот почему не работают.
    Ответ написан
    Комментировать
  • Лучший открытый wysiwyg формат?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Лучший для чего именно? Или в чем именно? Для начала рекомендую определиться с конкретными требованиями. А уже потом, отталкиваясь от конкретных требований и создавать свой редактор. При отсутствии опыта рекомендую для начала реализовать хотя бы какой-то максимально простой редактор текста. А уже после реализации редактора браться за стили текста - сделать какие-то простые вещи типа подчеркивания, курсива, шрифтов и т.п. Следующий этап - реализация редактирования какого-то простого стандарта, типа MD, например. И вот спустя год или даже несколько (если работаете над задачей не фултайм, а по вечерам) и набивания шишек на разработке простого редактора, вот тогда можно уже браться и за ODF. Там еще на несколько лет или больше хватит разработки: спецификация стандарта ODF занимает 1041 страницу текста плюс еще неизвестно сколько дополнительных материалов и ссылок на другие стандарты.
    Ответ написан
    4 комментария
  • Есть ли хорошие пошаговые туториалы проектов на С++ для новичков?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно С++ в вакууме не существует. Его учат сразу применительно к программированию UI под Windows,
    или к Unreal Engine, или к сетевому программированию под Linux/Unix. Или еще более специфичный
    сегмент - сетевое оборудование и микроконтрллеры. Это неизбежно.

    Особенно когда ты доходишь до дисковой подсистемы, сетей или мультизадачности - ты просто выходишь за рамки С++ и нужно разбираться во всем остальном. И мне кажется что в этом главный челлендж. Не сам язык а
    системная архитектура и прикладные фреймворки.

    Тоесть в самом вопросе ты должен сам решить куда ты дальше со знаниями С++ пойдешь.

    P.S. С++ за 14 дней... - это завсегда можно найти.
    Ответ написан
    3 комментария
  • Как правильно выбрать фреймворк и яп для проекта, если ты заказчик?

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

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никак. Выбор инструмента - это задача тимлида и/или техлида. Т.е. ведущего/главного разработчика, отвечающего за принятие ключевых технических решений. Ваша задача, как заказчика, четко оформить требования, ограничения и сформировать начальное ТЗ и описание, что вам требуется от проекта, прототипы интерфейса, например. Без вникания в технические детали. Т.е., "хочу чтобы были фичи такие-то и работил они так-то, ограничения такие-то, требования такие-то". Далее уже задача найти разработчика/команду с большим или достаточным для данного проекта опытом. Далее из начального ТЗ формируется полноценное техническое задание: описывается весь требуемый функционал, рисуется дизайн, прописываются требования, ограничения и прочие хотелки. И на основе ТЗ, тим/тех лид уже подбирает/подбирают наиболее оптимальные и конкретные инструменты и решения, основываясь на собственном опыте и знаниях для конкретно этой задачи. Например, если человек хорошо знает несколько разных инструментов и есть достаточный опыт их использования - он может реализовать проект используя любой из них как одинаково хорошо, так и одинаково плохо. У разных ЯП и фреймворков свои плюсы и минусы. Далее из ТЗ формируется более детальное ЧТЗ и происходит разработка проекта.

    Вот вы говорите:
    Нужно будет выполнять много запросов к БД

    Важная быстрая скорость работы нашего сайта

    Много/быстро это сколько? 100 запросов в час? 1000 в минуту? 1М в секунду? Загрузка страницы за 30/10/1с или даже 100мс? А к какой именно БД? Какая характеристика самих данных и какого типа запросы? На какое количество соединений? В каком регионе? Есть ли там тяжелые или еще какие-то вычисления? Медиа файлы - картинки, видео? Тут очень много нюансов. В идеале следует определиться с конкретными значениями/параметрами и их описать в ТЗ. Ну или определить примерное, а фактическое значение определить на стадии прототипа/MVP и/или провести какое-то исследование/тестирование. Можно потратить десяток лямов на написание крутого кода на го/расте/С++/ассемблере в течении года и все будет летать на простейшем сервере. А можно купить свой сервер за лям (ну, условно, конечно), нанять питонщика или PHP-ника за 300к и он за пару-тройку недель добьется такого же результата. Большинство веб-задач сегодня достаточно просто или с минимальными усилиями решаются абсолютным большинством решений для веба. Да, у всех решений есть свои плюсы и минусы.

    Безопасность от всяческих XSS и SQL атак.

    Вот с этим проще: использовать популярные OpenSource решения, регулярно проводить тесты, нанять отдельно опытного разработчика, красноглазика и пентестера - и тратить на них деньги, пока деньги не кончатся или не будет достигнут необходимый уровень безопасности. Безопасность противоположна удобству, защита отстает на шаг от атак. Риск есть всегда и надо просто быть готовым к последствиям и иметь запасной плат хотя бы в общих чертах.

    А так - уже правильно посоветовали сразу брать дот-нет, т.к. у вас требование к использованию конкретной библиотеки для дот-нета.
    Ответ написан
    1 комментарий
  • Почему не надо редактировать данные БД через xlsx документ?

    @chemdev
    Никак, если бизнесу надо значит надо.
    На бэке пишется метод который импортирует файл. Импорт экселек как правило всегда сопряжен с различного рода трудностями (приведение к нужному типу, разрешение конфликта, ограничения на размеры файлов, сам импорт должен производиться на фоне либо в рамках запроса и многое многое другое) поэтому здесь особенно важно максимально детально проговорить спецификацию и покрыть тестами.
    Ну а реализация в интерфейсе либо совсем простая с инпутом для файла либо посложнее если какое то промежуточное подтверждение требуется. Посмотрите решения по импорту файлов в различных других сервисах, например bitrix24.
    Ответ написан
    Комментировать