Задать вопрос
  • Как ограничить скорость интернета для компьютеров в компьютерном клубе?

    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.
    Ответ написан
    Комментировать
  • QSS. Как изменить верхнюю панель?

    xzripper
    @xzripper
    0xC0000005
    Это невозможно, либо отказаться от такой идеи, либо сделать окно вообще без границ и верхней панели (QtCore.Qt.FramelessWindowHint), и сделать свою верхнюю панель.
    Ответ написан
    Комментировать
  • Какой самый лучший способ передать информацию между формами?

    @OwDafuq
    Много решений.
    Пара самых популярных:
    1) Конструктор с параметром (или публичное свойство).
    //form2
    public Form2(string value)
    {
    	Value = value;
    	...
    }
    
    //form1
    public Form1()
    {
    	...
    }
    
    void OpenNewForm(...)
    {
    	var form2 = new Form2("myString"); 
    	var form2_2 = new Form2
    	{
    		Value = value
    	};
    }


    2) Singletone объект (но лучше, если у вас есть DI). Объявляете объект, который будет хранить нужные вам переменные в одном месте и вызываете его где вам угодно.
    Ответ написан
    Комментировать