pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как реализовать автоматическое развёртывание Python проектов с помощью TeamCity?

Лучший ответ: Выполните деплоймент вручную, используя только консольные команды.
Запомните все, что вы сделали, напишите из этого скрипт, создайте в тимсити джобу с этим скриптом и запускайте.
В случае необходимости, установите необходимый софт на тестовый стенд (git/bash/etc). Возможно вам понадобится еще один тимсити агент, установленный прямо на тестовую виндовую машину.

Худший ответ: Выполните деплоймент вручную, используя только консольные команды.
Запомните все, что вы сделали, напишите из этого скрипт, создайте в тимсити джобу с этим скриптом и запускайте.
В случае необходимости, установите необходимый софт на тестовый стенд (git/bash/etc). Возможно вам понадобится еще один тимсити агент, установленный прямо на тестовую виндовую машину.
Вопрос: Как сделать сервер 1С Предприятие 8.3 доступным по порту 1560 только из локальной сети или с этого же физического сервера?

Лучший ответ: В виндовом фаерволле на входящих правилах создаете разрешающее правило.
В "Протоколы и порты" указывается 1560/TCP
Во вкладке "Область" указать локальный адрес сервера
В поле удаленный адрес указать только адреса нужных ПК.
В "Дополнительно" указать что действует для всех профилей.
В итоге порт будет доступен только локально и для всех IP адресов указанных в поле Удаленный IP-адрес

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

Лучший ответ: Это возможно - www.abrandao.com/2017/09/mysql-mariadb-trigger-ext... но я советую этого не делать, а использовать крон скрипт, который будет проверять и обрабатывать изменения в таблице  . И крон будет бежать каждые 5 минут, например.
Вызывать внешний скрипт из триггера опасно - что если будет одновременно 100 изменений?

Худший ответ: Внешний php-скрипт раз в сутки запрашивает из базы расписание на текущую дату. Сделайте синусоидный опрос по крону: днём/ночью - реже, утром/вечером - чаще.Бывают ситуации, когда приходится оперативно апдейтить расписание на текущую дату из терминала MySQL. Но скрипт об этом апдейте не знает...Вот эта часть - совсем другая: уже локальная! Здесь базу можно опрашивать хоть каждые 5 минут (т.к. это трафик во внешку не гоняет). Мониторите нужное поле в БД и как только там есть хэш, отличный от текущего - пусть лезет во внешку и забирает новый update.
Вопрос: Как стилизовать options в select?

Лучший ответ: Думаю примерно так работает бутстрап select, дальше стилиризуй как нужно.
Передаешь select объект в функцию

//Тут передаешь класс select
Select(document.querySelector('.beatu-select'));

https://codepen.io/vsjerkil/pen/MWbYYOa?editors=1010

Худший ответ: Зачем вам контакт форм 7? Если ради заявок куда-то, то можно и самому отправку писем сделать. 
Я про то, если не получается кастомизировать селект в контакт форм 7.
Вопрос: Какие взаимоотношения между Яндекс.Дзен, Хабрахабром и авторов Хабра?

Лучший ответ: Привет! Меня зовут Анна, я из Хабра. Сейчас постараюсь на все ответить. 

Кто стоит за этим каналом - неизвестно, на странице канала никакой информации нет.
Это наш официальный аккаунт в Дзене, за ним стоим мы :)

Сегодня я узнал, что на Яндекс.Дзен на этом канале опубликована моя статья, которая была размещена на Хабаре более трех лет назад.
Да, такое может быть. Мы размещаем в Дзене статьи так же, как, например, в нашем сообществе во ВКонтакте, чтобы их прочитало больше людей. 

По сути, я хочу добиться изменения статьи: чтобы был указан автор, оригинальная дата публикации, добавлена ссылка на оригинальную статью и отображались все иллюстрации. 
Если мы размещали ее руками, то можем поправить. Киньте мне, пожалуйста, вашу статью на почту (anna@tmtm.ru) или в телегу @ shelsneg, и напишите, что в статье хотели бы поправить. Посмотрим, что можно сделать.

Худший ответ: Указанный вами канал содержит прямые ссылки на habr.com.
Вопрос: Как узнать свой IP в VPN?

Лучший ответ: На Микроте зайти в IP - Addresses и посмотреть адрес той VPN-учетки, под которой коннектится УРМ.Примерно так

Худший ответ: Если я правильно понял, то на микротик нет доступа и на нем ничего посмотреть нельзя. Удаленной машине дается адрес из 10-й сетки.  Микротик не натит.  Могу предположить, что можно на порту коммутатора посмотреть мак адрес микротика и по нему в таблице arp узнать ip удаленной машины
Вопрос: С чего начать обучение PHP?

Лучший ответ: Битрикс - это не РНР. Это битрикс. 
Чтобы заниматься битриксом, надо учить битрикс. И задания выполнять на битриксе.

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

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

А практика - сделай страницу о себе с блогом и постами/комментами. Как все будет готово переделай, используя фреймворк, для начала возьми простой CodeIgniter, например. А затем на Symfony/Laravel напиши тоже самое. И может будет какой-нибудь толк. Главное сначала начни все делать самостоятельно, не используя готовые решения из фреймворков это даст тебе возможность разобраться в основах кухни веба, чтобы понимать "магию" .
Вопрос: Как вывести уведомление после отправки формы?

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

Худший ответ: Например в Symfony для таких задач существуют Flash сообщения, они живут всего один запрос и можно при обновлении страницы (обработки формы) можно выводить любые сообщения во время следующего запроса. 
Есть отдельные библиотеки для создания таких сообщений, например: https://mikeeverhart.net/php-flash-messages/
Также, можно формы отправлять используя AJAX, тогда вообще не придётся страницу обновлять :)
Вопрос: Бывают ли кулеры с таким креплением?

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

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

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


Один из элементов services должен содержать все категории, указанные в filterBy:

users.filter(u => u.services.some(s => filterBy.every(f => s.categories.includes(f))))
Должны присутствовать все категории, указанные в filterBy, но распределены по элементам services они могут быть произвольным образом:

users.filter(u => filterBy.every(f => u.services.some(s => s.categories.includes(f))))
Достаточно присутствия любой из категорий, указанных в filterBy, в любом из элементов services:

users.filter(u => filterBy.some(f => u.services.some(s => s.categories.includes(f))))
и т.д.

Худший ответ: Решил. Если есть лучший способ, пишите, не стесняйтесь.
let users = [
  {
    name: 'user 1',
    services: [
      {
        title: 'service 1',
        categories: ['category 1', 'category 2']
      },
      {
        title: 'service 2',
        categories: ['category 3', 'category 4']
      },
      {
        title: 'service 3',
        categories: ['category 5', 'category 6', 'category 11']
      }
    ]
  },
  {
    name: 'user 2',
    services: [
      {
        title: 'service 4',
        categories: ['category 7', 'category 8']
      },
      {
        title: 'service 5',
        categories: ['category 9', 'category 10']
      },
      {
        title: 'service 6',
        categories: ['category 11', 'category 12']
      }
    ]
  }
];

let filterBy = ['category 5', 'category 6', 'category 11'];
let usersUPD = [];

for (let item of users) {
  for (let item2 of item.services) {
    if (item2.categories.some(i => filterBy.includes(i))) {
      usersUPD.push(item)
    }
  }
}

console.log(usersUPD)
Вопрос: Сайт написан на php, не могу найти его html, где он?

Лучший ответ: Как такового html файла нет. Структура и разметка страниц генерируется налету. Файлы шаблона можно найти в файловом менеджере по адресу: /catalog/view/theme/название-шаблона/*.*
Ключевые слова настраиваются в админ разделе > System > Settings, а также в настройках каждой позиции товара.

Худший ответ: Читайте спецификацию шаблонизатора по Open Cart. Самый простой вариант - скачайте файлы локально и любым вменяемым редактором кода сделайте поиск по паке специфического вхождения взятого из html кода чтобы посмотреть что и где лежит
Вопрос: Как вывести фото с instagram на сайте?

Лучший ответ: Сохранить и вставить на сайт.

Худший ответ: если имеет ввиду, чтобы публикации автоматически попадали на сайт, то frisbuy

можно и свой контент - пример https://wanna-be.ru/#fri_post_id=258363 (это попап из инстаграм, размеченный ссылками с сайта)

так же собирать в ленту посты от клиентов (по хештегам, локациям, отметкам и прочее) https://ru.whamisa.com/#fri_post_id=212085
(у вамисы еще виджет со сторис из инстаграм)
Вопрос: Сколько строк нормально для класса?

Лучший ответ: Столько, сколько необходимо для кодирования логики поведения объектов этого класса.
А заложенная логика в этот класс - это вопрос архитектуры проекта (не кода проекта!).

Худший ответ: кода должно быть достаточно для реализации заложенной в класс логики, выполнение к-рой будет делегировано исключительно ему/объекту данного класса
важно разграничивать функционал, который вы хотите реализовать в рамках того или иного класса. отделять мухи от котлет, как любят говорить
остальное - вопрос архитектуры ПО, как уже было ранее озвучено
Вопрос: Почему не работает чекбокс?

Лучший ответ: this.parentNode.className + = 'checked'
+= пишется слитно<input id="approve">
<label for="checkbox2"></label>
id input'а не совпадает с for label'а.
И, предвидя вопрос "а как убрать checked?":this.parentNode.classList.toggle('checked')

Худший ответ: <label for="approve">
       <input id="approve" type="checkbox" onclick="this.parentNode.className + = 'checked'">
       бла бла
 </label>
Вопрос: Как сверстать блоки с границами?

Лучший ответ: У всех кроме каждого 4го левую границу. 
У всех кроме первых 4х верхнюю. 
:not(:nth-child(4n))
:not(:nth-child(-n - 4))

p.s. И еще это не table.

Худший ответ: У всех кроме каждого 4го левую границу. 
У всех кроме первых 4х верхнюю. 
:not(:nth-child(4n))
:not(:nth-child(-n - 4))

p.s. И еще это не table.
Вопрос: Можно ли восстановить 1c SQL базу из .bak файла?

Лучший ответ: Файл .bak со старым бэкапом скопировалсяМожет оказаться старым (с большой потерей данных) или неполным..mdf на любой другой диск/носитель - Ошибка 0х8007045DОстановив службу sqlservr.exe проверить CHKDSK (может там есть логические ошибки).
Выбрать какой файл актуальнее и либо RESTORE архивный файл, либо CREATE DATABASE FOR ATTACH для mdf-файла на другой установке MS SQL.

Худший ответ: Ну типа оно для того и создавалось.
Если файл не поврежден, то восстановите.
Вопрос: Centos 7. Ошибка при выполнении yum update. Как исправить?

Лучший ответ: После того как удалили:rm -f /var/lib/rpm/__db.*
Надо наверное сделать:rpm -vv –rebuilddb

Худший ответ: Эта ошибка связана с повреждением файловой системы. А конкретно, в базе данных yum есть поврежденная информация.
rpm --rebuilddb в данном случае не поможет.
Найти поврежденную запись базы данных можно с помощью команды 'yumdb info'
Посмотрите пример здесь
Вопрос: Почему пункт меню в Wordpress не помечается как активный?

Лучший ответ: СмОтрите исходный код меню, вИдите в нем у активного пункта меню класс, например такой - current_page_item, покрываете матом ленивую жопу создателя темы который не прописал для него стили. Прописываете их сами.
Например так.
.current_page_item > a{ color: red}
 Рrofit!!!

Худший ответ: Да, проблема была в шаблоне, но иная.
По умолчанию в классе обхода пунктов меню, расширяющем класс Walker_Nav_menu, условие определения пункта как активного было таким:
if(in_array('current-menu-item', $item->classes)) ...
Пришлось его расширить, добавив дополнительные проверки. Не знаю, насколько это правильно, возможно в WP должны быть такие возможности по умолчанию. Я добавил такие условия:
(strpos($item->url, $post->post_name) > 0) || // для стандартных страниц
(strpos($item->url, $post->post_type) > 0) || // для записей пользовательских типов
(get_the_category($post)[0]->name == $item->title) // для стандартных записей рубрики
Вопрос: Как бороться со статическим электричеством в офисе?

Лучший ответ: Так вот, у меня в кабинете очень жесткое статическое электричество. Постоянно бьёт током, когда берусь за металлические предметы.Это не статическое электричество!
Статическое электричество это накопленный телом заряд - например автомобиль, самолет во время движения, из-за трения накапливает статический заряд.
К проводам оно не имеет никакого отношения. Для сброса заряда нужно заземлять тело.
Но к вашему случаю это никак не относится.

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

Обратитесь с проблемой к руководству, или к ответственному по охране труда.
Это просто опасно, и может кого-нибудь прибить.

Худший ответ: заземляться надо)
Вопрос: Каковы максимальные настройки безопасности после установки Windows 10?

Лучший ответ: самая главная настройка безопасности - это эрудиция самого пользователя. чего не надо делать - к примеру ставить пиратские игры/софт с  фалопомоек

Худший ответ: Телеметрию отключи и включи на диск bitlocker
Вопрос: Как сделать 3D анимацию такого плана как на сайте?

Лучший ответ: Саму птицу, как уже верно заметили, можно соорудить на WebGL. Как пример подобной штуки, только без частиц вокруг и без ядреного шума на самих крыльях:
snippet

Худший ответ: программировать с библиотекой 3js
Вопрос: На какую сумму чайник вскипятил воду?

Лучший ответ: За 4.22 секунды потратилось примерно
((223.4 * 8.2)/(60*60)*(4*60 + 22)) = 133 Вт - что примерно соответствует показанию счетчика 0.1 kWh

1 кВт/ч стоит 4,50 коп. , 0.134 кВт/ч будет стоить примерно 0.60 коп

Худший ответ: Я лет 18 назад, в 7 классе, так КПД чайника искал. Получилось точно 50%.

Формулу, кстати, можно вывести прямо из размерностей
Дж = Вт * с = В * A * с
руб = руб/[кВт*ч] * кВт * ч
т.е.
Работа = Мощность * Время = Напряжение * Ток * Время
Деньги = Работа * Тариф
Только нужно не забывать, что для удобства обывателя тариф в кВт*ч, а не в Дж, т.е. 
1000*Вт*3600*с = 3600000Дж = 3,6*МДж
Вопрос: Почему Debian выводит: отсутствуют команды poweroff, sudo, shutdown, reboot, и другие?

Лучший ответ: 1. sudo - не установлено по-умолчанию. Его надо установить. apt install sudo
2. Остальные команды выполняются от root-а. Соответственно они будут выполняться либо после установки sudo, либо после входа под root-ом (su -)

Худший ответ: Скорее всего установлен не максимальный (полный) дистрибутив. Некоторых программ может не быть, как уже написали, их можно установить ручками.
Вопрос: Почему async fetch не отрабатывает корректно?

Лучший ответ: Как и сказали выше, с сервера приходит кусок чистого html. Консоль ругается на начало этого html "<", т.е на открывающийся тег. 
На результат повесьте либо JSON.stringify(чтобы преобразовать в строку), либо outerHTML(преобразовать в сериализованный HTML-фрагмент), чтобы иметь возможность работать с пришедшими данными. Либо исправляйте на сервере.

Худший ответ: Сервер в ответ на запрос отдаёт HTML, а не JSON. Соответственно, браузер не может распарсить его в resp.json()
Посмотрите в Network что приходит с сервера и сами убедитесь.
Вопрос: Какие есть приложения для сбора статистики нагрузки на сервер?

Лучший ответ: Zabbix.
И чем встроенный Мониторинг производительности не устраивает?

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

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

Вам серьезно требуется чтобы кто-то вам дал добро на то чтобы "попробовать себя в управлении проектами"?
Хотите - встаньте и попробуйте.

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

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

Вы молодец, что сваливаете из этой сферы. Вот и всё.
Вопрос: Как в python создать rar архив?

Лучший ответ: Можно так без библиотек:
os.system('rar a <файл.rar> <файл_который_нужно_добавить_в_архив>')
Есть ещё форк lib-rar-python

Худший ответ: Нашел способ не привязаный к оси работающий в виртуальном окружении
pip install patool

import patoollib
patoolib.create_archive('test.rar', ("file_to_rar",))
Вопрос: Можно ли отсрочить запрос на сервер?

Лучший ответ: Это делается не таймерами, а коллбэками

Худший ответ: Мало подробностей реализации.

Как рендерит мой хрустальный шар: есть какой-то контейнер  в который засовываются картинки. И полученные с сервера и добавленные пользователем.

Почему бы не вставлять их туда разными методами. Полученные с сервера в конец appendChild(), добавленные пользователем в начало prepend()
Серверный метод сохранения пусть записывает добавленные картинки в начало.

Или, более «правильно», держать все картинки в массиве. При изменении массива перерисовывать весь div. Добавленные картинки unShift(), полученные с сервера push(). Для сохранения на сервер отправлять весь массив.
Вопрос: Какую CMS используют данные сайты?

Лучший ответ: Есть такая штука как: wappalyzer.com
Она показывает на какие CMS, фреймворки, и ЯП написанны сайты

Худший ответ: На фреймворках
Вопрос: Как закешировать данные в ReactJS/Redux приложении?

Лучший ответ: Сохраняй в локальное хранилищеRedux Persist тебе поможет
Есть еще redux-offline , но она менее популярная штука

Худший ответ: Если нужно чтобы после обновлении страницы сохранялось - то localStorage ваш первый кандидат. 
Если объекты всегда/долго одинаковые, то возможно проще закэшировать на уровне HTTP - положите в отдельный урл, поставьте нужные заголовки, и браузер будет сам из своего кэша вам его отдавать, и инвалидировать кэш.
Вопрос: Как поставить срок работы программе Python?

Лучший ответ: Часть функционала надо вынести на сервер. Это единственное, что можно сделать для python.
Либо скомпилировать. И надеяться, что у большинства пользователей хватит ума и паранои не запускать всякий хлам с обменников.

Худший ответ: Надо юзать date.time.
И впервые запуск посмотреть время. 
И при каждом запуске просматривать сколько время.
Если прошло уже допустим, 30 дней, то пользователю предложится заплатить
Вопрос: Есть ли возможность выводить изображение на телевизор через wi-fi?

Лучший ответ: Используя, например, Miracast

Худший ответ: а какого-нибудь Samsung Smart View нет для ubuntu ?
Вопрос: Почему блокируются вкладки с одного хоста, если в одной из вкладок выполняется долгий ajax запрос?

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

Чтобы запросы сразу отпускало надо закрыть сессию на запись через session_write_close();

И естественно после этого нельзя редактировать будет $_SESSION.
Чтобы начать работать с сессией надо будет снова сделать session_start();

Так что 
session_start();
// делаем что-нибудь
session_write_close();

И вкладки висеть не будут.

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

Или выставлено ограничение в настройках веб-сервера: только одно активное соединение с одного ip-адреса.
Вопрос: Для чего нужен динамический импорт React?

Лучший ответ: 1. Динамические импорты.
2. Это разные вещи, изучай.
Документацию, поди, не открывал вообще?

Худший ответ: React.lazy нужен для асинхронной подгрузки компонентов. Использовать можно в случаях когда заранее неизвестно откуда нужно импортить компонент. Собственно в нем и используется асинхронный импорт. const MyLazyComp = React.lazy(() => import(`Comps/${path}`));
Можно использовать например с react-router для асинхронной подгрузки страниц по требованию.
Вопрос: Как можно подзаработать, умея быстро печатать?

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

Худший ответ: Транскрибация (набор текста из аудио)
Вопрос: Есть какая-нибудь книга как продвигать it project или статья?

Лучший ответ: Самая первая книга, которую просто для ознакомления стоит прочитать - Lean StartUp, там конечно воды дохрена, но ключевая мысль - надо все тестить.

По факту, перед написанием кода надо было задаться вопросом - для кого этот продукт? Кто целевая аудитория?

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

Поэтому, перво на перво, выходим в поле и общаемся с целевой аудиторией, выясняем, какие боли и проблемы у них есть. Ищем эту ЦА, проводим интервью и далее уже вырисовывается картинка того, что хотят люди, затем делаем минимальную версию, которая может выглядеть как говна кусок, но если она помогает людям решить проблему, докручиваем, дальше повторяем итерацию до бесконечности!

Все.

Проще всего вам взять таргетолога, зафигарить лендосик, налить таргета на лендос, собрать контакты, провести хотя бы 50 интервью, лучше конечно 100, для чистоты данных. Сделать аналитику этих интервью и людей, которых вы интервьюировали и только после этого приступать к написанию кода. Это позволит вам сэкономить сотни, а то и тысячи часов работы.

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

Кстати, вот недавно курс попадался https://simulator.gopractice.ru/ хз конечно норм он или нет, но просто для информации, может что-то вам зайдет с этого сайта.

Худший ответ: На счет статьи, думаю по любому есть), только она не нужна.

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

Лучший ответ: При просмотре через телефон, поевляется горизонтальный скролл. Поработайте над адаптивностью лучше. 
И над загрузкой сайта поработайте Вот тут.
И сделайте отступы по бокам.. в некоторых блоках, смотриться так как будто всё прилипло к краям. как-то тесновато. Блок где написано "Сфера". ПОЖАЛУЙСТА, выберите один цвет шрифта, желательно зеленый, фиолетовый и синий, ужасно режит глаза.

Худший ответ: А можно например по детальке узнать?
Если у .lvl9 голубой фон, тогда зачем нужен .lvl9-scroll .bg-blue5 ?

И относительно вот этих .dqq.t6 .bdq .dq1 - сразу на себя внимание обратили. Почему выбрали именно такой способ именования? Ведь оно ниразу не информативно, и не логично(ну, только для Вас, и то - только сейчас, а если кому то надо будет что-то править?). Ведь например .backsquares.right > .square.blue.top.right читалось бы куда гармоничней, и в стилях проще описать логику размещения этих блочков, и если вдруг надо переместить - не надо искать стили, а сразу понятно что надо писать.

А, ну и если решили писать комментарии в коде(Вы его значит не собираете пока) то <!--end lvl --> после каждого блока - такие себе по информативности комментарии...
Вопрос: Почему hetzner выставляет 20% ндс?

Лучший ответ: Потому что такие русские законы
Единственный метод убрать ват это сменить страну например на Тайланду и попросить в связи с этим убрать ват
Других теоретиков можно не слушать))

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