pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Существует ли хостинг для программы с математическими расчетами, с поддержкой платного доступа пользователей?

Лучший ответ: Не думаю что у вас какой-то прям простой и универсальный интерфейс, который могут поддерживать хостеры. По этому скорее всего нет, проще заплатить прогерам за создание веб приложения и системы подписки/оплаты в нем. Решается достаточно простым поднятием апи на любом популярном языке бэкенда.
UPD: Схема такая: ваше приложение поднимается на сервере. Есть прослойка в виде веб приложения которая: проверяет ключ клиента на валидность/оплату(авторизация), передает данные от клиента в ваше приложение на сервере(которые в таком ключе могут работать даже через стандартный браузер, без клиентской части приложения, правда придется написать все это в виде веб-странички еще), возможно из командной строки, или через файл данных, получает ответ приложения и отдает его клиенту.

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

Лучший ответ: Я лично присматриваюсь к javascript, так как с помощью него можно делать и бэкенд и фронтенд, получается экономия времени на изучении. Только для бэкенда придется изучить фреймворки, и боюсь, что изучение этих фреймворков, и написание бэкенда на них сложнее чем например изучение и написание на php.
С точки зрения изучения языка - однозначно лучше один чем два. Тем более новичку.
С точки зрения изучения фреймворков - их придется учить по любому, так как просто знать язык мало, какой учить - php/node - мало разницы. Знать как вообще работает браузер, http, запросы, куки, авторизация, базы, днс и прочее прочее - не зависит от языка/фреймворка.
С изучением JS только одна проблема - обязательно найдется кучка хейтеров которые будут говорить "фу говно". 
В остальном - это лучший выбор.Если коротко описать функционал моих проектов, то это веб сайты и все они предусматривают:
базу данных, админку с возможностью заносить данные в базу и управлением пользователями, аналитические инструменты по действиям пользователей, динамическое обновление контента, системы чатов или микросообщений, профили пользователей, регистрация и авторизация, хранение и кэширование медиаконтента, геолокация
Звучит как описание сайта который можно сделать на каком-нибудь вордпрессе, без сильного погружения в девелопмент.

Худший ответ: jQuery для начала хватит. Однако стоит уже присматриваться к чему-то более продвинутому.
NodeJS не заменит ни PHP ни Python.
Вопрос: Где можно создавать игровые локации(левелы)?

Лучший ответ: В Unity для создания прототипов уровней можно использовать ProBuilder -https://assetstore.unity.com/packages/tools/modeli...
потом уже создавать готовую версию из моделей созданных в Blender или 3d Max или других 3д редакторах, если речь идёт о 2d то в Unity есть система тайлов https://github.com/Unity-Technologies/2d-extras с их помощью можно также создавать прототипы уровней, для создания готовых уровней я использую Ferr2d - https://assetstore.unity.com/packages/tools/level-... если надо создать ландшафт то есть https://www.world-machine.com/

Худший ответ: можешь и в других, но тебе их потом импортировать... в ue4 простой редактор.
Вопрос: Проблема с кодировкой в mysql что делать?

Лучший ответ: Если создавали БД со старой кодировкой (utf8) - то нужно пройтись ещё по таблицам и поменять кодировку полей с utf8 на utf8mb4 (автоматом оно не поменяется при смене кодировки БД).
Ну и в скрипте, подключающемся к БД, проверить, чтобы кодировка тоже была указана как utf8mb4.
Ну и также проверьте, в каком виде текст подаётся в БД, если он перед этим пропускается через какие-нибудь фильтры, то есть вероятность, что один из фильтров заменяет символы на вопросы, считая их некорректными (особенно если этот фильтр идёт не из коробки, а из какой-то сторонней библиотеки).

Худший ответ: тебе в бд нужно не смайлик отправлять, а его код
Вопрос: Префиксы для кроссбраузерности, насколько сегодня актуально?

Лучший ответ: https://developer.mozilla.org/en-US/docs/Glossary/...
Browser vendors are working to stop using vendor prefixes for experimental features. 
Большая часть вещей не требует префиксов
Использование автоматизации для добавления префиксов - не требуется
Если требуется какой-то специфический функционал, то его лучше реализовать руками в своем препроцессоре sass/less/stylus

Худший ответ: https://developer.mozilla.org/en-US/docs/Glossary/...
Browser vendors are working to stop using vendor prefixes for experimental features. 
Большая часть вещей не требует префиксов
Использование автоматизации для добавления префиксов - не требуется
Если требуется какой-то специфический функционал, то его лучше реализовать руками в своем препроцессоре sass/less/stylus
Вопрос: Как в случае отсутствия автоматически установить модуль в python3?

Лучший ответ: По-моему гораздо проще делать так:
- при установке нового модуля - добавлять его в requirements.txt вместе с номерами версий
- при запуске скрипта выполнять что-то вроде:
pip install -r requirements.txt && python ./your_script.py
Будете делать это из кода - будет много головняка - от конфликта версий установленных модулей, до проблем с запуском самого кода.

Худший ответ: Спасибо, 
если мне требуется перед запуском проверять наличие необходимых бинарников в системе и в случае  их отсутствия производить их установку? Есть аналогичная функция, вопрос есть ли другое более грамотное решение?def app_installer(app):
    try:
        app_inst = subprocess.call(app)
      
    except:
        app_inst = subprocess.Popen("apt-get -y install " + app, stdout=subprocess.PIPE, shell=True) 
        app_inst.wait()
        print('application: ' + app + ' installed')
Вопрос: Как проверить, есть ли в поле в бд символ %?

Лучший ответ: SELECT * FROM table_name WHERE column_name LIKE '%\%%'
или

SELECT * FROM table_name WHERE LOCATE('%', column_name) > 0

Худший ответ: Экранировать этот символ: ... WHERE fieldname LIKE '%\%%'
(если строку запроса формируете в PHP и пишете в двойных кавычках, то возможно, придётся экранировать дважды - для PHP и собственно для SQL, т.е как-то так: "... LIKE '%\\%%'")
Вопрос: Как определить длину строки в элементе InputText?

Лучший ответ: <section>
  <input [(ngModel)]=currentString>
  {{currentString.length}}
</section>

<your-tooltip [hidden]="currentString.length > 10">
	Lorem, ipsum.
</your-tooltip>
ngModel использует двойное связываение, поэтому вам ничего придумывать не нужно. Просто следите за длиной переменной, которую передали в инпут.

Худший ответ: $('#нужный инпут').on('change', (function(){
		console.log($(this).val());
		}));
Забыл дописать - из полученных данных тянем length и делаем свое условиеvar x = $(this).val().length;
		console.log(x);
Вопрос: Можно ли освоить школьную математику с нуля за 2 года,до уровня сдачи ЕГЭ?

Лучший ответ: планирую поступать дистанционно в школу
Идите в вечернюю школу. У вас аттестат есть? Если нет, то запишитесь в вечерку, в чём проблема-то. Там научат.

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

Лучший ответ: Котнтроллер домена должен связаться с вводимой машиной сам для ввода в домен. А у вас он в облаке обратной маршрутизации нет(есть связь с обаком, но нет связи облака с машиной).  Используйте VPN и натройте связь как положенно а не через ж.

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

Лучший ответ: Никак

Худший ответ: При открытии файла с сетевого ресурсы он обычно блокируется приложением. И другая копия приложения не может получить доступ к файлу. Если речь идет об офисных документах - ищите в документации по офису, как изменить способ блокировки, чтобы разрешить одновременный доступ.
Вопрос: Как исправить Incorrect integer value: '' for column 'id' at row 1?

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

Худший ответ: id должен быть integer, а у тебя это varchar, строка, да ещё и пустая. Замени на на автоинкремент целочисленный и будет тебе счастье
Вопрос: Ошибка при попытке вызова php artisan — в чем проблема?

Лучший ответ: Есть две разных версии php: та, которая запускается как модуль Apache, и та, которая в CLI. В CLI, судя по вашему комментарию, версия 5.6, вам нужно апгрейднуть консольный php.
Версию CLI php можно проверить, набрав в консоли php -v
Версию php вашего сервера можно проверить по phpinfo или аналогичной функции для вашего фреймворка

Худший ответ: Судя по скриншоту, IDE (и, предполагаю, php) не знает, что такое оператор ??.
Очевидно, у вас стоит php < 7. В то время как для работы Laravel 5.5 требуется php >= 7.
Вопрос: Как вывести массив foreach в обратном порядке?

Лучший ответ: Еще один вариант реверсивного перебора. Будет работать также с ассоциативными массивами. Предварительный реверс массива не требуется, поэтому будет эффективнее$array = ["zero", "one", "two", "three", "four"];

for (end($array); ($key = key($array)) !== null; prev($array) ) {
    print($key . " : " . current($array) . "\n");
}
sandbox.onlinephpfunctions.com/code/9f09320d307718...

Худший ответ: у array_reverse есть второй параметр отвечающий за сохранение порядка ключей<?php
$go = ['test1','test2','test3'];
print_r(array_reverse($go, true));
выведетArray ( [2] => test3 [1] => test2 [0] => test1 )
более правильное решение если массив именно такой как ты указал, т.е. не ассоциативный<?php
$go = ['test1','test2','test3'];

for ($i=count($go)-1; $i>=0; $i--) {
     echo $i.' => '.$go[$i].'<br>';
}
выведет2 => test3
1 => test2
0 => test1
Вопрос: Нужно сделать 150 кружков которых надо расположить по полукругу, а после написать код так чтобы при наведении курсора на каждый кружок появляла инфо?

Лучший ответ: Генерируем скриптом 150 элементов, вспоминаем формулы окружности из курса школы, рассчитываем  и располагаем точки в нужных местах.
Доп.инфо реализовать так же просто. Взять плагин для toolpit'ов, и навесить его на каждый элемент.
UPD https://codepen.io/delphinpro/pen/NaQjdm

Худший ответ: гуглить: 
1) формула полуокружности с заданным радиусом или синуса(и с коэффициентом например умножать)
2) кружочки - див с позишн абсолют и бордер радиусом соответствующего размера.
3) инфо - стандартный title думаю подойдет
Вопрос: Смещаються обьекты в CSS. Как исправить?

Лучший ответ: Подумайте, относительно чего у Вас идет позиционирование шариков, относительно елки или страницы?
Правильно, относительно документа/
Во-первых, блок animated должен находится внутрика блока tree, а чтобы шарики позиционировались относительно елки, #tree надо задать position: relative;
https://jsfiddle.net/u33vou5o/

Худший ответ: Скинь, пожалуйста, пример в песочницу - codepen или jsfiddle. Так помочь будет гораздо проще
Весь код на position: absolute - отвратительная практика. Ты вообще все элементы из body вырываешь, считай.
Вопрос: 2-ой монитор с другими характеристиками, стоит ли?

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

Худший ответ: Два монитора с разной цветопередачей напрягают, но в целом работается нормально. Я соглашусь с тем, что идеал — одинаковые моники. Но в вашем случае имея TN, не стоит брать еще один TN. Возьмите IPS, сделайте его основным. В будущем можно будет и второй поменять, который сейчас единственный.
Вопрос: Забыл что-то импортировать?

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

Худший ответ: FileOutputStream может выкинуть исключение, его надо обработать в try или добавить в методclass Test{
    public static void main(String[] args) throws FileNotFoundException {
        OutputStream output = new FileOutputStream("E:\\java_file\\Files_io\\fileTest.txt");
        PrintStream printOut = new PrintStream(output);

        System.setOut(printOut);
    }
}
Вопрос: Остаться работать или уволиться?

Лучший ответ: Выучить новую технологию за чужой счет штука довольно заманчивая, на мой взгляд.

Худший ответ: 1 - сменить тэги вопроса)
Я бы остался, посмотрел бы, как вообще работается в компании. Потому что ничего прям страшного в этой ситуации нет, тебя же, прежде всего, как frontend-а брали.
Если хорошо выстроены рабочие процессы, нормальная атмосфера, ... - Я бы учил Angular . Это ж не jquery )
Если работать в этой компании не нравится - спокойненько меняй
Вопрос: Как хранят в Бд отрицательные значения температуры?

Лучший ответ: Храните в кельвинах, там отрицательных значений не будет :-)

Худший ответ: Для хранения таких данных подойдет тип поля INT 
В Вашем случае, при использовании например MySQL  можно использовать TINYINT:TINYINT[(M)] [UNSIGNED] [ZEROFILL]
	Очень малое целое число. Диапазон со знаком от -128 до 127. Диапазон без знака от 0 до 255.
Вопрос: Как узнать название package для его удаления?

Лучший ответ: dpkg -l | grep pcloud
Посмотреть, как он называется, потомsudo dpkg -r PACKAGE_NAME

Худший ответ: Ставьте Synaptic и поиском по pcloud - все пакеты выдаст. Удилите нужный.
Вопрос: Жёсткий диск издает странные звуки. Что делать?

Лучший ответ: Если вшшшшшшшууууу то это нормально
если Кглц ______ Кглц ____ Кглц то срочно бэкап и менять

Худший ответ: 1. смириться
2. сменить
это проблема конкретных экземпляров жестких дисков
Вопрос: Плагин (или из коробки) для поиска строки кода по её — №?

Лучший ответ: ctrl + g в sublime

Худший ответ: Тыц
Вопрос: Как отправить post/get запрос через несколько секунд после открытия страницы?

Лучший ответ: Что нужно добавить в index.html / index.php
?
Попробуйте вставить js код

Худший ответ: используйте setTimeout
Вопрос: Пропали иконки приложений во всей системе windows 10?

Лучший ответ: Стрелочки с ярлыков не удаляли или подобные правки реестра? Если да - верните назад и все будет хорошо.

Худший ответ: Первая ссылка в гугле
https://windows10i.ru/ustranenie-nepoladok/propali...
Вопрос: Нужно ли PHP разработчику знать модель OSI?

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

Худший ответ: Желательно это стандарты куда прогеру без них модель OSI это стандарт взаимодействия пример разные люди создают сетевое оборудование которые никогда не пересекались чтоб ихнее оборудование было совместимо между собой и придумали стандарты стандарты эти разрабатывают в IEEE Институт инженеров электротехники и электроники международная некоммерческая ассоциация специалистов в области техники, мировой лидер в области разработки стандартов по радиоэлектроник
и RFC стандарты документ из серии пронумерованных информационных документов Интернета, содержащих технические спецификации и стандарты, широко применяемые
Вопрос: Как рассчитать нужное число по нескольким условиям?

Лучший ответ: Все просто. Делим и получаем минимальное возможное число продуктов на салат.

<?php

const TOMATO = 'tomato';
const CARROT = 'carrot';
const APPLE = 'apple';
const POTATO = 'potato';

$basket = [
    TOMATO => 15,
    POTATO => 10,
    CARROT => 5,
    APPLE => 16,
];

$salad = [
    TOMATO => 3,
    POTATO => 2,
    CARROT => 1,
];

function calculate(array $basket, array $salad): int
{
    $total = max($basket);

    foreach ($salad AS $key => $value) {
        if ($value === 0) {
            continue;
        }
        $total = min(floor(($basket[$key] ?? 0) / $value), $total);
    }

    return $total;
}

echo calculate($basket, $salad) . PHP_EOL;
Total: 5

Худший ответ: Тебе нужно показать сколько овощей не хватает для $Maxkolvo салатов или показать сколько можно сделать из текущих остатков овощей?
Вопрос: Как исправить: «Do not use v-for index as key on children, this is the same as not using keys.»?

Лучший ответ: Убрать key с элементов .d_day и .li_day. Элементам .d_day добавить общую обёртку, ей в качестве key указать currentPage. Заменить transition-group на transition.

Худший ответ: Привет!
Проблема в том, что как ключ индекс списка не может быть использован в transition-group.
Evan You (Vue.js):
When using index as key on a <transition-group>, your list will never have any moving animation when the list is reordered. That defeats the purpose of using the <transition-group>... even if your code happens to work, you still should provide a unique key because it will break when your list is reordered.

Постарайтесь не использовать как ключ индекс списка вообще нигде.
Вопрос: Передача данных AJAX REACT?

Лучший ответ: Как сделать Ajax запрос на React js?

Худший ответ: https://github.com/axios/axios/blob/master/README.md Вот вам литература
TL;DR В современном вебе это делается намного элегантнее чем в jQuery
Вопрос: Как переехать на HTTPS?

Лучший ответ: Привет, перед тем как задать вопрос здесь прочитал на одном из форумов, что в Search Console Гугла рекомендуют добавлять 4 версии сайта, то есть: с WWW и без WWW, с HTTP и HTTPS если оно есть, а в robot.txt указывать предпочтительный домен, зачем?
Чтобы задать главное зеркало сайта. Формально говоря, это по мнению поисковика  4 дубля.Домен регал вида site.ru, без WWW, добавил без WWW и HTTP, в вебмастер Гугла сам отображает как http:// site. ru, так зачем ещё другие версии?
Неважно каким Вы его зарегили. Префиксы - "служебные протоколы", не в даваясь в подробности.
Затем, чтобы дать гуглу понять, что Вы владете всеми этими дублями и из них (добавленных) выбираете предпочтительный. Склейка.Далее, решил сайт перевести на HTTPS, рекомендации Яндекса выполнил, а рекомендации Гугла немного отличаются, например Гугл сразу советует настраивать редирект с HTTP на HTTPS, а Яндекс только после склейки зеркал, опишите кто как делал?
Если у Вас все склейки настроены, редиректы работают, тупо ждите переиндексацииВторое нужно ли новый сайт с HTTPS добавлять в Яндекс метрику и создавать новый счётчик?
НетИ последний вопрос, Яндекс пишет, что старый сайт с HTTP из Яндекс вебмастера удалять не обязательно, значит это подразумевает, что в принципе можно, а что на этот вопрос говорит Гугл я не нашёл, так нужно ли удалять старую версию из Search Console или нет, так как функция переезда сайта в Search Console не предусматривает перезд с HTTP на HTTPS, то это означает, что теперь у вас два сайта с одинаковым контентом но с разными протоколами, которые оба поисковика воспринимают как разные сайты. 
Сейчас Яша вебмастер работает так же, можно добавить несколько версий сайта, предпочитаемое зеркало тоже можно выбрать

Худший ответ: Сперва все по Яндексу , потом по Гуглу
Вопрос: Как устранить ошибку «php» не является внутренней или внешней командой, исполняемой программой или пакетным файлом в терминале phpstorm?

Лучший ответ: Тут надо прописать путь до php.exe где shell path

Худший ответ: Тут надо прописать путь до php.exe где shell path
Вопрос: Как правильно увеличить SWAP (раздел)?

Лучший ответ: Можно добавить ещё один раздел, или создать свап-файл на уже существующей файловой системе. 
Что касается объёма - если пользуетесь гибернацией, то свап должен быть размером с оперативную память. Если нет - то меньше, просто как подстраховка на случай out of memory.

Худший ответ: Проверьте сначала нужен он вам или нет
https://www.cyberciti.biz/faq/linux-check-swap-usa...
Если все же нужен. Сделайте бэкап, загрузитесь с лайв флешки с gpart om и сожмите раздел с рэйдом и пересоздайте swap раздел
Вопрос: Как найти координаты точек круга?

Лучший ответ: Простой вариант, когда смотрят на шар на уровне экватора, в параллельной проекции.
Центр шара примем за точку отсчёта, ноль.
Два угла определяют положение точки на поверхности шара относительно его центра:широта (latitude, север-юг) от -∏/2 (северный полюс) до ∏/2 (южный полюс);долгота (longitude, запад-восток) от 0 до 2∏ (полный круг).
В прокции на плоскость (экран) точки шара попадут внутрь окружности радиуса R. Центр попадет в центр. Северный полюс – в верхнюю точку, южный – в нижнюю.
Высота зависит только от широты, тут всё просто: y = R * sin(lat)
Влево-вправо от центральной оси зависит от обоих углов. От широты зависит максимально возможное удаление от оси R * cos(lat). А ещё уменьшиться оно может в зависимости от долготы: надо домножить на cos(lng). Итого получается x = R * cos(lat) * cos(lng)snippet
Кроме того посмотрите в коде, как правильно создавать элементы внутри SVG и задавать им атрибуты. А также значение viewBox чтобы (0, 0) была по центру.

Худший ответ: Через уравнение сферыЗдесь через sin/cos.
Вопрос: Где бесплатно найти ментора на создание сайтов?

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

Худший ответ: Фриланс биржи не устроили?
Вопрос: Что нужно уметь делать и знать в JavaScript чтобы переходить к изучению Vue.js?

Лучший ответ: Вероятно, не стоит держать строгую последовательность «сначала такие темы по JS, только затем Vue».

Начните с простых примеров использования Vue. По мере возникновения вопросов «а это что за ... такое?» закрывайте пробелы в JS.

Худший ответ: Научитесь работать с DOM. 
Возьмите и сделайте что-то супер банальное, типа TODO-list. Сначала на чистом JS, а потом на vue. Только не так, что вы открытии видео гайд и пошагово копируете. Нет. Сами придумайте как его сделать. По ходу дела вы будете натыкаться на проблемы — тогда уже гуглите как решить конкретную проблему.
Вопрос: Игнорирование заглавных букв, пробелов, знаков препинания и тд. в python?

Лучший ответ: Используйте более продвинутые методы проверки как вариант:from Levenshtein import distance

HELLO = [x.lower() for x in 
   ['start', 'Привет', 'Хай',  'Доброе утро', 'Эй', 'Добрый день', 'Добрый вечер']]


samples = ['превед!', 'ывафыва', 'добрый день!', 'хэй', 'бла-бла']

for im in samples:
    print(f'> {im}')
    if any(distance(im.lower(), x) < 4 for x in HELLO):
        print('< Привет\n')
    else:
        print('< Я не понимаю\n')> превед!
< Привет

> ывафыва
< Я не понимаю

> добрый день!
< Привет

> хэй
< Привет

> бла-бла
< Я не понимаю

Худший ответ: Для начала преобразовать в один регистр - нижний, а потом проверять входит ли подстрока(sayhello) в строку(message):if sayhello.lower() in message.text.lower():
  ...
вообще тут надо хорошо подумать как сравнивать, возможно придется написать что-то сложнее чем что написал я.
Вопрос: Как избежать пожара и проблем при работе электрооборудования в домашних условиях без надзора?

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

Худший ответ: 1. страховка 
2. нормальная проводка (можно перебздеть и сделать по СНиП для пожароопасных помещений)
3. система пожаротушения 
В идеале - брать жижу Novec 1230  - ей можно еще гаджеты промывать...
Правда прикидывал для серверных шкафов - если полный комплекс брать - он за 3000 баксов вылезал, но там самая дорогая часть - рэковый модуль с автоматикой