Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как составляется Критическая инфраструктура?

Лучший ответ:
Вероятно вам сверху пришло распоряжение. Если это так. То разумным образом подобная задача не решается.
Путь решения примерно следующий.
Берём ведомственные инструкции и законы, строим "смысловой граф" по "критическая инфраструктура", накладываем его на ведомственные инструкции относящиеся к вашему учреждению и на ваши внутренние положения. Распутываем этот адский клубок. После чего у вас будет, что и по каким законам вы кому должны и что относится к "критической" инфраструктуре.
Люди годами практикуются в подобно крючкотворчестве, с наскоку данная задача, да ещё так, чтобы оказалось, что денег не надо и никого не подставили, не решается.

Худший ответ:
Начинаем с чтения законодательства, относящегося к КИИ - там не так уж и много. Ищем всякие вторичные документы, если не ошибаюсь, там было что-то о том, как классифицируется КИИ.

Вот небольшой перечень:
ФЗ-187
Постановление Правительства Российской Федерации №127 от 8 февраля 2018 года Об утверждении правил категорирования обьектов критической информационной инфраструктуры
Приказ ФСТЭК № 239 с изменениями от 20 февраля 2020 года Об утверждении Требований по обеспечению безопасности значимых обьектов критической информационной инфраструктуры
Информационное письмо ФСТЭК от 17 апреля 2020 года "По вопросам предоставления перечней обьектов критической информационной инфраструктуры, подлежащей категорированию"
Указ Президента Российской Федерации от 30.03.22 №166
Вопрос: Реализации протоколов интернет — где, как, кем?

Лучший ответ:
Реализации хранятся в стандартных библиотеках языков и в системных утилитах, типа curl

Когда вы на каком-нибудь языке используете системную библиотеку, которая реалзует например http, то каждая умеет делать запрос согласно протоколу — указывать метод, адрес, keep-aliveб тело и прочие штуки; умеет делать сам запрос (отправяет пакеты) и умеет получать ответ

Иногда программисты пишут свои протоколы, для этого тоже есть все в языках во всех

Худший ответ:
Этому можно научиться и где искать ? Уже нет, последний кто знал как это делать, уже давно нас покинул. 
С моделью osi и tcp/ip все ясно. Но кто реализует эти протоколы? Где хранятся эти реализации? И как они реализованы с нуля? Возможно вам не всё ясно, для начала, посмотрите хотя бы как устроены пакеты при помощи wireshark, после этого думаю на часть вопросов вы получите ответ.
Вопрос: Какими минимальными и необходимыми инструментами можно выяснить исправность тензометрического датчика давления на объекте?

Лучший ответ:
Прибор с токовым входом называется миллиамперметр и входит в мультиметр. Токовые клещи тоже подойдут, но у них точность плюс-минус лапоть может быть.

Дальнейший пересчет миллиамперов в попугаи можно сделать по табличке в даташите.

Также, чтобы проверять датчик, нужно иметь хотя бы тройник с манометром, которому можно доверять. А то вы узнаете, что датчик что-то выдает, а вот не белиберду ли он выдает - не узнаете.

Чтобы подсунуть прибору тестовый сигнал, нужно иметь лабораторный блок питания, переделанный так, чтобы уставка тока свыше 20ma была невозможна.

Худший ответ:
Прибор с токовым входом называется миллиамперметр и входит в мультиметр. Токовые клещи тоже подойдут, но у них точность плюс-минус лапоть может быть.

Дальнейший пересчет миллиамперов в попугаи можно сделать по табличке в даташите.

Также, чтобы проверять датчик, нужно иметь хотя бы тройник с манометром, которому можно доверять. А то вы узнаете, что датчик что-то выдает, а вот не белиберду ли он выдает - не узнаете.

Чтобы подсунуть прибору тестовый сигнал, нужно иметь лабораторный блок питания, переделанный так, чтобы уставка тока свыше 20ma была невозможна.
Вопрос: Как сделать ИИ?

Лучший ответ:
1. Разработать алгоритм "на бумаге", без кода, словами
2. Перевести алгоритм в что то близкое к коду. Условно - блоксхемы
3. Реализовать алгоритм на сишарпе.
4. Продебажить, убедится что реализация работает согласно п1.

Худший ответ:
Два прямых подхода
- описать кодом все возможные ситуации и реакцию ИИ на каждую, например
1. делить карту на зоны (комнаты) в пределах которых ИИ включает режим атаки, а вне которых - режим поиска,
2. поиск - это поиск пути (шаг - комната) в лабиринте от исходной точки до цели (если целей несколько, считать путь до каждой), для оптимизации каждый NPC хранит путь в памяти и пока он сам и целевая точка находятся на найденом пути, не вызывать его повторный поиск (там должен быть алгоритм - обновления пути, так как изменения обычно - шаг в сторону от текущего)
2. режим атаки - в твоем методе, это размещение всех NPC таким образом чтобы не было препятствий выстрелам, вот тебе почти тот же поиск пути, узлы могут быть препятствия и другие NPC (можно заложить в поиск точек у препятствий как ближайшая точка вокруг препятствия по периметру, при которой  перпендикуляр  от направления до цели не пересекает препятствие, т.е. NPC может за ним прятаться), для простоты препятствия либо - выпуклые многоугольники либо сразу треугольники. NPC становится припятствием, когда останавливается (можно в алгоритме считать не текущую точку а прогноз в момент когда NPC туда придет, для оптимизации по расстоянию), таким образом NPC сами выстроятся вокруг цели так как каждый следующий NPC будет вставать сбоку, правда в логике такой они будут друг за другом прятаться но это уже дальше можно логику вносить.
Очень часто вместо попытки расчитать места размещения NPC, заранее забить на карту waypoints, по которым будет двигаться ИИ, как частный случая - для каждой карты сначала вычисляются эти точки, а уже во время игры они постоянны.
...

- второй подход как ни странно проще и сложнее одновременно, ютуб роликами завален об обучении ИИ различными методами, например генетическим алгоритмом, ты строишь простую модель игры, и заставляешь свой ИИ, работающий на основе нейронки (на вход информация об окружении, например препятствия и NPC+цель) играть с самим собой огромное количество раз, и через миллионы итераций можно получить вполне здравый ИИ
Вопрос: Почему скрипт не хочет работать с математикой?

Лучший ответ:
Ну скорее всего банально не заходит во внутрь if-а.
И 99% что ошибка в проверках на налл - зачем они? Это проверка на пустую строку? Тогда лучше IsNullOrEmpty использовать

Худший ответ:
Отладчик в помощь! Но скорее всего опечатка в первой проверке
 leg_1.text == null
Вопрос: Что быстрее и меньше занимает памяти: dict или Redis?

Лучший ответ:
Вы сравниваете теплое с мягким.
Dict - это внутренняя структура данных которая хранится только в рамках запущенной программы. И по этой причине доступ к данным внутри него будет быстрее,  при одинаковом хранении.  И при перезапуске все данный потеряются.
Redis - это внешнее хранилище данных, при перезапуске программы данные не потрутся, но так как это внешнее хранилище то и доступ к данным будет медленнее. 
Но они решают разные задачи, и служат для разных целей

Худший ответ:
В обсуждении архитектуры приложения с Redis никто не считает питонские структуры данных. 

Главные фичи Redis - это управление временем жизни записей. Работа c key/value, с множествами, очередями и т.п. И обеспечение персистентного хранилища. Тоесть редис переживает физическую перезагрузку. И сохраняет данные. Он также поддерживает кластерные режимы и имеет сетевой API. Тоесть несколько разных языков и технологий могут работать с одним кластером.

Тоесть писать через запятую Redis и Dict Python нельзя. Никто-же не сравнивает двигатель от машины и саму машину!
Вопрос: Cтоит ли использовать новостной движок CUTENEWS.RU?

Лучший ответ:
Cтоит ли использовать новостной движок CUTENEWS.RU?В общем случае - нет, движки без поддержки сообщества и без обновлений по сути бесполезны. По этому какой бы крутой движок не был "внутри", весь смысл в работе на постоянной основе и поддержке, а это без распространенности не бывает. Так что ответ - не стоит.

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

Худший ответ:
По поводу другого. могу посоветовать отечественный и бесплатный Instant CMS, базовый функционал довольно солиден.
Вопрос: Почему ошибка Warning: Undefined variable $db in?

Лучший ответ:
Самый простой и правильный вариант

function CheckDestiny ($variable, $type, $db) {

Худший ответ:
Учитывая, что ваш код и так не ахти, можете сделать так

connect.php

$db = mysqli_connect($host, $db_name, $db_pass, $db_name);

if (!function_exists('db')) {
  function db () { global $db; return $db; }
}

или так 

if (!function_exists('db')) {
  function db () {
    static $db;
    if (!$db) $db = mysqli_connect($host, $db_name, $db_pass, $db_name);
    return $db;
  }
}

И потом использовать функцию, она всегда будет доступна.

$add_destiny = mysqli_query(db(), "UPDATE `data` SET `column` = '$variable; WHERE `symbol` = '$db_symbol[$t]'");

Еще вариант - пробросить переменную в функцию

function CheckDestiny ($variable,$type) use ($db) {
 // ...
}

PS. Знатоков прошу не умничать по поводу предложенных вариантов.
Главное, что они заработают у автора =))
Вопрос: Как реализовать отправку файлов через React на бэкенд?

Лучший ответ:
Отправляешь через формату, new FormData, при этом бэкендер должен знать что там формата. А все остальные параметры добавлешь через formdata.append(name, param). Тогда будет полноценная загрузка файла в представлении blob.

Либо же в представлении base64 но это себе же дороже выйдет.

Худший ответ:
В момент выбора файла, он уже по отдельной апихе загружается куда то на бэк, и получает ид файла. Дальше форма шлёт обычный json в котором в поле файлИд лежит ид файла ранее полученного.
Вопрос: Насколько полезно писать велосипеды?

Лучший ответ:
 Думается, что при написании велосипедов и использовании только нативных возможностей языка и браузера, при конструировании приложения лично сталкиваешься с проблемами, эффективным решением которых занимаются готовые библиотеки. И вот тогда суть улавливается.

Хорошо сказано. 
Пишите в качестве пэт-проекта, демо или пруф-оф-консепт. В прод велосипеды тащить не надо. 

Есть ещё ненулевой шанс, что ваш велосипед окажется пригодным для серийного производства.

Худший ответ:
смысл в том что надо всё делать стандартно
для всего гуглить готовое решение
чтобы тебя можно было в любой момент уволить и без тебя легко всё поддерживать
для капиталиста нет ничего важнее этого
для возможности этого можно пожертвовать качеством

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

а если ты обычный чесальщик-мотальщик кода то изобрерать велосипеды тебе вредно
лучше изучай инструмент, и следи за новыми версиями, то есть вечно страдай
и если повезет - станешь руководителем, и страдать будут другие
Вопрос: Имеется фотография документа на А4, есть апп или софт, делающий их такой фотки как будто скан?

Лучший ответ:
Под андроидом был camscanner, под линью можно через гимп.

Худший ответ:
Под андроид есть ClearScanner.
Под linux не знаю узкоспециального софта для этого, но в gimp точно можно сделать.
Вопрос: Как поднять тунель на мобильном интернете?

Лучший ответ:
Купить роутер с симкой, поднять на нем VPN-сервер и прокси.

Худший ответ:
используй tailscale  или zerotier.
Вопрос: Как массово настроить много Android устройств?

Лучший ответ:
Вам нужен MDM

Худший ответ:
Да, тут нужен MDM: Citrix или AirWatch
Вопрос: Сверхбыстрая NTFS в Linux?

Лучший ответ:
ну дык ставится ntfs-3g который работает через FUSE и даже без фьюз-прослоек на скорость не заточен

хочешь быстрее - ставь едрёный драйвер от парагон (русские разработчики кстати :) ) вот там оптимизация на скорость и т.д.

п.с. не используй нтфс, в линуховом ворохе файловых систем он нафих не нужон :)

Худший ответ:
Вышло ядро 5.15 с поддержкой NTFS 3.1
Вопрос: Что нужно знать для начала работы с .NET Core?

Лучший ответ:
Ты ведь даже не разобрался, что C# - это язык, а .NET - это просто фреймворк.

Худший ответ:
Начни с https://ulearn.me и туториалов на https://docs.microsoft.com/ru-ru/
Вопрос: Какой VPN выбрать в условиях санкций?

Лучший ответ:
Арендуешь VPS у любого хостера в РФ, который предоставляет их заграницей.
Настраиваешь там opvn ну или l2tp
Все, пользуешься. никто не заблокирует

Худший ответ:
Купить vps за границей, загрузить скрипт из гитхаба, открыть текстовым редактором и вписать юзера по умолчанию, запустить. готово.
Вопрос: Есть ли на ютубе профессиональные программисты по laravel?

Лучший ответ:
каждый день выпускает ролики. Расскажет тебе всё, ...

Худший ответ:
По разному пишут. Потому что PHP. Одно и тоже можно сделать разными способами. И будет правильно.
Вопрос: Почему данный код выдает ошибку?

Лучший ответ:
Потому что внутри IIFE this - window.

https://habr.com/ru/post/149516/

Уточнение: в strict режиме (введен в es5) this по умолчанию - undefined
а с es6 strict режим включается автоматически если использовать в коде любую синтаксическую конструкцию из es6+

Худший ответ:
Внутри скобок создаётся и тут же вызывается функция. (IIFE – immediately invoked functional expression)

this для функции, объявленной как function определяется в момент её вызова. Если её вызывают будто она свойство объекта, этот объект будет this'ом.

Внутри скобок function сама по себе, ни к кому не приделана, разве только к Глобальному. В данном случае window. Поэтому там this === window.

Ну а window это не user. И там нет искомого свойства, скорее всего. Или есть, но неожиданно другое.
Вопрос: Оборудование для GPON?

Лучший ответ:
Скорее всего провайдер сам принесет gpon оборудование. Обычно это роутер с минимальным набором функций. Для адекватного использования этот роутер переводим в режим "моста", и втываем за ним свой нормальный роутер

В любом случае эту инфу, и про совместимость gpon Оборудования, надо уточнить у провайдера

Худший ответ:
Скорее всего провайдер сам принесет gpon оборудование. Обычно это роутер с минимальным набором функций. Для адекватного использования этот роутер переводим в режим "моста", и втываем за ним свой нормальный роутер

В любом случае эту инфу, и про совместимость gpon Оборудования, надо уточнить у провайдера
Вопрос: Как правильно установить несколько версий го на одной системе?

Лучший ответ:
asdf-vm.com
Устанавливаешь плагин для Го и вперед!

Худший ответ:
asdf-vm.com
Устанавливаешь плагин для Го и вперед!
Вопрос: Как подключиться к WIFI из сайта?

Лучший ответ:
Напомнило баян с башорга про "драйвера для cd-rom находятся на диске"

Худший ответ:
На андроиде никак 
https://source.android.com/devices/tech/connect/wi...
Схему подключения WIFI можно скормить только через QR код (еще смутно упоминается RFID и BLE)
Вопрос: Как запретить менять размер консоли в c#?

Лучший ответ:
Никак нельзя, тк ты не можешь гарантировать, в какой именно консоли у тебя запустится приложение. 
- Оно может быть запущено в стандартной консоли windows.
- В Windows Terminal.
- В ConEmu.
- На линуксе в любом многообразии ихних терминалов.
- Может быть запущено по SSH или вообще без рабочего стола.
- Вообще без терминала, как часть пайпа или сервис

Если тебе очень важно, чтобы твоё приложение выглядело как консольное, но при этом запускалось в окне фиксированного размера - делай оконное приложение, в котором бы выводился текст в нужном стиле.

Худший ответ:
В консольном проекте нет консоли, поэтому ею нельзя управлять. В приложении есть только три стандартных потока: ввод, вывод и ошибка. Когда пользователь запускает приложение, некое другое приложение подсоединяется к потокам и отправляет/получает данные.
Вопрос: Какой Линукс пойдет на слабый ноутбук?

Лучший ответ:
Ставь Семерочку и не лезь в то, в чем не разбираешься, пока не соберешься разобраться.

Худший ответ:
на ноутбуке хочу разместить хостинг мини программы(потребление не менее 3-х % ОЗУ и ядра) минимальная конфигурация linux (для deb пакетных менеджеров, это debian/ubuntu/mint/...) можно установить с помощью debootstrap, собственно им пользуется и штатный установщик, но он добавляет 100500 дополнительного софта, а так минимальный конфиг занимает на диске примерно 200мб и в оперативной памяти после загрузки где то десяток другой мб ram

порядок установки:
* загружаешься в другой linux (любой, но той же архитектуры что и целевая), можно из виртуалки все делать, если пробросить целевой диск внутрь
* разбить диск на нужные разделы, если будет использоваться стандартная файловая система ext/btrfs/.. и legacy mbr bios то хватит одного корневого раздела, если есть efi то понадобится еще один раздел fat для efi, если нестандартные файловые системы или конфиг к примеру с raid или шифрованием, то понадобится еще /boot, если используется gpt диск (не mbr) то еще понадобится biosboot раздел на 1мб
* примонтировать корневой и /boot разделы
* запустить debootstrap с указанием ос и этого каталога
* установить grub-install /dev/диск_установки --root-directory=/каталог_с_установкой
* chroot /каталог_с_установкой
* настроить пароль для passwd root и /etc/fstab

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

desktop environment с gui для задач хостинга даже не требуется, если что можно поставить что-нибудь максимально простое awesome, openbox, icewm, eEnlightenment, lxde, xfce,... мало того, по умолчанию с xserver должен ставиться совсем уж минималистичный twm, в оперативной памяти эти вещи будут занимать от силы пару сотен мегабайт (на gentoo я настраивал awesome с последними версиями системы на 50мб ram, на машине с 1гб ram запускал современный браузер) 

если тебе нужна графика чтобы только настраивать но для работы не требуется, то можно подключаться к машине удаленно, используя локально установленные DE (например с windows машины в сети установив cygwin xwinserver), это штатный режим работы xserver (в локальной сети можно даже игры запускать)
Вопрос: Что не так с первичным ключом в Базе Данных?

Лучший ответ:
Это sequence. Последовательность. Это - как туалетная бумага. Использованные номера можно выкинуть. Зачем их повторно брать? У вас же нет желания из мусорного ведра тягать грязные бумажки?

Худший ответ:
Можно управлять этим счетчиком.
ALTER TABLE my_table AUTO_INCREMENT = 1 сбросит счетчик на единицу.
ALTER TABLE my_table AUTO_INCREMENT = 200 установит счетчик на 200, например.

Или если вместо очистки (TRUNCATE) делать DROP а потом снова CREATE, то нумерация тоже будет идти с начала.

...чтобы первичный ключ постоянно начинал нумеровать с единицы противореит стандарту. Разве что свою СУБД написать?
Вопрос: Docker Desktop потребляет много ресурсов, грузит процессор и оперативную память. Что делать?

Лучший ответ:
Сперва нашёл .wslconfig, там уменьшил количество ресурсов, вроде стало немного лучше, а потом случайно выключил WSL2 в настройках Docker и заметил что нагрузка снизилась.
Потом ещё поэкспериментировал и составил список. Потому что для слабых устройств это может быть критично.

- Использовать Hyper-V вместо WSL2. Это происходит само по себе если в настройках отключить использование WSL2. 

- Отключить отправку анонимной статистики.

- Отключить автоматическую проверку и скачивание обновлений.

- На Hyper-V Docker практически не грузит систему если его запускать один раз, если его закрыть и открыть заново он начинает грузить. После запуска контейнеров можно убить в диспетчере задач процесс Docker который нагружает CPU. Без того процесса всё продолжило работать нормально и ничего не закрылось. Причины такого поведения не ясны.

- Настроить ресурсы выделяемые для Hyper-V на минимум, или увеличить если это нужно для содержимого контейнера. Но приложениям на NodeJS хватает и минимум ресурсов. Для WLS2 ресурсы настраиваются в папке пользователя Windows в файле .wslconfig, WLS2 грузит систему сильнее и по ощущениям работает медленнее не смотря на то что в настройках докера написано о том что это более производительное решение.

- Благодаря этим действиям Docker начинает работать быстрее, почти не потребляет CPU и RAM, и это хорошо. Тестировалось с контейнерами где была база данных и бекенд на NodeJS.

Всё что здесь описано личный опыт, Docker Desktop был версии 4.7.0, не факт что ваш опыт будет совпадать с моим.

Худший ответ:
все верно надо использовать на hyper-v, более подробно писал тут https://saitsozdanie.ru/forum/index.php?topic=9313.0
Вопрос: Не работает команда в bash скрипте, где ошибка?

Лучший ответ:
hddtemp /dev/sda >> sensors.txt
hddtemp /dev/sdb >> sensors.txt
hddtemp /dev/sdc >> sensors.txt
Используйте полные пути к файлу hddtemp.

Худший ответ:
Смотреть PATH нужно не из вашей сессии, а прямо из cron.
Когда юзер логинится интерактивно, выполняются его персональные профайлы - .profile, .bashrc, .login и др.

Крон же просто запускает с правами указанного юзера, не читая его профайлы.

Варианты как это чинить:
1. Использовать в скриптах полные пути к файлам
2. Задать PATH прямо в вашем скрипте
3. Задать PATH в самом кронтаб вначале, например

PATH=$PATH:/home/user/mypersonalbin/
00 09 * * * /mnt/pve/backups/sensors.sh >> /root/myscript.log 2>&1

crontab формат позволяет задавать переменные, которые будут работать для всех скриптов запускаемых из вашего кронтаба.
Вопрос: Почему get_object_vars() возвращает пустоту, а раньше все срабатывало?

Лучший ответ:
https://github.com/php/php-src/blob/PHP-7.4/UPGRADING
- SPL:
  . Calling get_object_vars() on an ArrayObject instance will now always return
    the properties of the ArrayObject itself (or a subclass). Previously it
    returned the values of the wrapped array/object unless the STD_PROP_LIST
    flag was specified.

Начиная с PHP 7.4 функция get_object_vars для ArrayObject возвращает свойства самого объекта, а не обёрнутого в него массива. А, поскольку, свойство storage приватное, то оно данной функцией не возвращается.

Худший ответ:
Возвращаемые значения:
Возвращает ассоциативный массив нестатических свойств объекта object, доступных в данной области видимости.
Замечание:
Неинициализированные свойства считаются недоступными и поэтому не включаются в массив.
Вопрос: Как экранировать все «'»?

Лучший ответ:
Не надо ничего экранировать. Надо использовать подготовленные запросы с плейсхолдерами.

Худший ответ:
В современном мире, если вы используете bind-variables или нормальные ORM-фреймворки - то вам ничего нигде не надо экранировать. Пользуйтесь коробочным продуктом и не изобретайте своих SQL билдеров.
Вопрос: Как настроить Windows 10?

Лучший ответ:
Если не ставишь 10 на hdd, то ничего не нужно делать.
Что за дурная привычка заниматься допилом рабочей системы до состояния ZverDVD?
Ну и неплохо бы параметры железа для понимания ситуации, вдруг там core2duo какой-нибудь...

Худший ответ:
Можно еще поиск отрубить - active search
ну и обновления
Вопрос: Как работает дизассемблирование в С++?

Лучший ответ:
Ассемблер = машинный код, по крайней мере они сопоставляются 1-к-1
1.Коды на С++ компилируются сначала в ассемблер или сразу в exe/elf?
Большинство компиляторов сначала компилирует в какое-то промежуточное представление, у же потом в exe/elf/dll/итд
2.Результат дизассеблирования C++ программы это результат работы ассемблера или машинных кодов?
Очевидно: результат дизассемблеривания - это результат работы дизассемблера.

Худший ответ:
минимальнейший размер файла можно засунуть hello worldВам нужен COM.
Вопрос: Как теперь получать зарплату из-за границы?

Лучший ответ:
Перевод на вашу карту в РФ с автоконвертацией валюты. В банк на котором нет санкций. Тк иностранные вклады в иностранные банки теперь под запретом

А вообще самое надежное щас это крипта получается)))
Главное чтоб биржа без проблем в РФ выводила

Худший ответ:
Binance уже подтвердили, что не будут морозить кошельки россиян.
Можешь криптой, конечно. Вывести можно будет через P2P на любую карту(не точно).