pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Header в header'е и можно ли делать игру на одних Header'ах?

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

Худший ответ: Такой механизм называется «одна единица компиляции» и вполне имеет право на жизнь: на одном процессоре время полной сборки будет наименьшим, потому так распространяют некоторые библиотеки (SqLite, Google Test). Правда,
игра — обычно масштабный проект, и чем больше будет кода, тем дольше нужно компилировать, чтобы проверить изменения.
Потому код обычно разбрасывают по единицам компиляции (*.cpp) в соответствии с его внутренней логикой, и к каждой единице (кроме точки входа) приписывают хедер (*.h), который показывает, что эта единица делает. Повторяю, только описывает, что делает — весь код в CPP. И в большинстве случаев самый длинный этап сборки — линковка (особенно с оптимизацией по ходу линковки aka LTO).
Единственное, что в 80% случаев не получается закинуть в CPP — это шаблоны.
Чтобы один хедер не подключался несколько раз — есть include guard. Правда, если вы не продумали зависимость между хедерами, может попасться циклическое включение — это вредно, но лишь потому, что программа может не скомпилироваться.
Чтобы не было циклических включений, для сохранения скорее всего потребуются два хедера: один отвечает за собственно процедуру сохранения и подключается к одному-единственному модулю — системе меню. Второй — за какие-то общие функции, которые позволяют сохраняться в абстрактный поток плиточному фону, снаряду, монстру… Называется как-нибудь SaveUtils.h и подключается повсюду.
(Примечание. И SqLite, и Google Test разрабатывались по традиционной схеме, с проектом из кучи CPP. SqLite собирается в один большой *.c  автоматикой, и я даже качал традиционный код — на 5-метровом файле некоторые версии Embarcadero вылетали с нехваткой памяти. В Google Test есть файл all.cpp или что-то подобное, в котором #include остальных CPP — пользователь подключает в проект all.cpp, и библиотека отнимает минимум его времени.
Вопрос: Указатели в C++: что такое «x{»?

Лучший ответ: Дело в том, что для char* работает особый механизм вывода в поток. Этот указатель воспринимается не как адрес, а как строка Си. Первым символом строки будет, разумеется, R. А дальше — идёт по памяти и выводит все байты подряд, пока не обнаружит 0.
Поскольку после char (1 байт) идёт char* (8 байтов), нам придётся создать семь байтов выравнивания (судя по длине указателя, мы на x64). В этих семи байтах и обнаружились фигурная скобка, ноль и непонятно что.
Поставьте вместо char int — будет всё, как вы думали. Указатель int* выводится без всяких интерпретаций.

Худший ответ: Это мусор в памяти.
Почему так происходит - char* воспринимается как строка, по стандарту с
Далее - длина, занимаемая в памяти переменной, всегда кратна определенному значению. Как и сам размер, занимаемый в памяти. Это, обычно,  4 байта для х86 и 8 для х64. Технология называется выравниванием.
Вы в строку записали один символ, а символ конца строки не записали. Прочиталась память до конца промежутка выравнивания и вывелась для вас. Там оказался всякий мусор, как всегда. Это все равно, что вывести неинициализированную переменную.
З.Ы. А само выравнивание необходимо для быстрого доступа к памяти. Грубо говоря, память разбивается на ячейки и мы всегда знаем, что для большинства переменный адрес делится на 4 или на 8, например.
Вопрос: Какой SSD от нонейм-производителей можно брать на алиэкспресс?

Лучший ответ: Устройства хранения данных на али брать не стоит (нужно быть очень осторожным). На флешках размер подделан, вместо HDD приезжает флешка в кейсе, SSD тормознутые... При всём этом цены не сильно меньше, чем на том же computeruniverse.ru
Если ну ооочень хочется, попробуйте взять KingDian

Худший ответ: Какой SSD от нонейм-производителей можно брать на алиэкспресс?Никакой.
В лучшем случае это будет не SSD, а флешка большого объема. 
В худшем - кирпич.
Если SSD noname - это 98% флешка, а не SSD.
Оставшиеся 2% - если очень повезет это будет SSD на каком нибудь старом контроллере, с глючной прошивкой, минимумом оперативки, и.т.д. и по цене не намного дешевле чем SSD в магазине.
Вопрос: Для чего реально применяются структуры?

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

Худший ответ: Структура в С++ от класса отличается только видимостью по-умолчанию: у структуры она public, у класса - private. Всё остальное одинаково.
Вопрос: На каком языке легче обрабатывать фотографии(Java, Python, C++)?

Лучший ответ: А вы, простите, на этом языке собрались сами писать алгоритм перевода в ч/б битмап?
Это сто лет в обед успешно делает открытый и кроссплатформенный ImageMagick, причем среди его выходных форматов, скорее всего, найдется что-нибудь легко перевариваемое на любом языке.

Худший ответ: могу ошибаться, но моё мнение - это C++
Вопрос: Как увеличить скорость WordPress?

Лучший ответ: С обновления ядра и плагинов, оптимизации фотографий, удаления лишних плагинов, включения кеширования, и переезда на нормальный хостинг.
Чтобы узнать правильной порядок - прогоните сайт в https://developers.google.com/speed/pagespeed/insights/

Худший ответ: Здравствуйте!
Я когда-то отвечал на подобный вопрос на Тостер.
Прежде всего сверяйте скорость работы сайта по Gtmetrix  Pagespeed & Pingdom
Посмотрите на подобный вопрос. Там я подробно рассказал насчет оптимизации
Почему Google ругается сам на себя в Google PageSpeed Insights по поводу шрифтов?
Вопрос: Почему PCRE (PHP) не читает символ < (меньше) при разборе верстки?

Лучший ответ: возможно, древняя версия pcre-либы, либо баг.
у мну код отрабатывает без проблем.
да и не только у мну:
https://regex101.com/r/iS8uZ5/1
ideone.com/iPdPxn

Худший ответ: Текущее решение:<?
  $text = <<<TEXT
    <scriptsrc=""></script>
    <script blablabla src=""></script>
    <script src=""></script>
    <script blabl abla src="123.js"></script>
    <script bla 22bl2 abla src="tanks/tank.js"></script>
TEXT;

  $match = array();
  $tmp = str_replace("<script", "|script", $text);
  preg_match_all('/\|script[^<>]+src=[\'"]([^\'"]+)/ium', $tmp, $match);

  echo "<pre>";
  print_r($match);Но вопрос все еще актуален! ПОЧЕМУ (мать такая)?
Вопрос: Почему текст переходит на новую строку?

Лучший ответ: vertical-align: top; для инлайн-блоков (достаточно для любого одного в ряду).

Худший ответ: переносы строй в html делаются не энтером, а тегом br
Должно быть Nullam ligula dolor, commodo et <br>posuere sed lobortis eget nibhupd
Прочитал "почему текст НЕ переходит".
Поправка:
У вас строка правильно расположена, т.к. блок days indline, то он вытягивает строку в высоту, а текстовый элемент занимает в ней нижний уровень. В общем, у вас косяк с блоками и отступами.
Вопрос: Как сделать, чтобы созданная мной Gif-анимация повторялась бесконечное количество?

Лучший ответ: При создании/сохранении указывается количество повторов или "крутить вечно". Если сохранять через "Save for web", то доступны эти настройки.

Худший ответ: В самом левом нижнем углу таймлайна (если его вдруг нет Окна > Шкала времени) с кадрами. 
"1 раз, 3 раза, бесконечно"
Вопрос: Как реализовать парсинг в автономном режиме на RoR?

Лучший ответ: Active Job - всего лишь интерфейс. Ему нужен бекенд воркер, лучше использовать sidekiq. Должен быть установлен redis server.
whenever - умный интерфейс для крона,чтобы запускать Ваши задачи на парсинг по расписанию
Схема примерно следующая - раз в 30 секуннд с помощью whenever запускаете rake task который в свою очередь запускает ActiveJob планировщик. Этот планировщик выбирает всех пользователей, которым надо что-то парсить и для каждого такого пользователя запускает ActiveJob парсер.
Старт и Стоп - флаги в базе данных, в зависимости от которых планировщик добавит  пользователя в парсинг или нет.
Если данные надо парсить каждые 5 секунд, то руби может быть не лучшим выбором.

Худший ответ: ActiveJob - это просто интерфейс, а дефолтовая имплементация, емнип, in-memory. 
Попробуй поставь Sidekiq. Он хранит джобы в redis. Падение сервера, по-идее, не должно влиять.
Вопрос: Что почитать про геометрию в программировании?

Лучший ответ: Можете начать отсюда 
algolist.manual.ru/maths/geom

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

Лучший ответ: $('#ddmenu li').hover( // обрабатываем событие :hover
  // В this у нас будет элемент li

  // Начинайте читать со второй функции, будет понятнее

  // функия выполнится при наведении мыши
  function () {
    // Достать из data-атрибута* ссылку на таймер и очистить его
    // Таким образом, если мы увели мышку с элемента, и тут же 
    // сразу навели обратно, не будет моргания выпадашки
    clearTimeout($.data(this,'timer'));
    // Выбираем ul внутри наведенного li
    // Останавливаем анимации, если они не успели закончится
    // И начинаем новую анимацию slideDown (показываем выпадашку)
    $('ul',this).stop(true,true).slideDown(200);
  },

  // функия выполнится при уходе мыши
  function () {
    // В this (элемент li) в data-атрибут* под именем timer запишем 
    // результат функции setTimeout (ссылка на таймер)
    $.data(this,'timer', setTimeout(
      // Proxy "протаскивает" контекст this внутрь функции
      $.proxy(
        function() { // Функция, внутрь которой пробросится контекст
            // Благодаря прокси здесь this по-прежнему указывает на li
            // Получается мы выбираем ul внутри наведенного li
            // Останавливаем анимации, если они не успели закончится
            // И начинаем новую анимацию slideUp (скрываем выпадашку, видимо)
            $('ul',this).stop(true,true).slideUp(200);
        },
        this // пробрасываемый контекст - наведенный элемент
      ),
      100 // таймаут, через 0.1 сек после ухода мыши выполнится функция закрытия
    ));
  }

);
* Не совсем верно. Данные пишутся не в data-атрибут. jQuery использует собственное хранилище данных. но сути это особо не меняет, а для понимания легче.

Худший ответ: Для того, чтобы понять что тут написано не обязательно задавать вопрос, достаточно погуглить конструкцию $.data(): https://api.jquery.com/jquery.data/ и clearTimeout(): javascript.ru/cleartimeout
Вопрос: В PhotoShop CS6 нечеткое качество отображения интерфейса программы (macOS)?

Лучший ответ: старые версии не заточены под ретину.

Худший ответ: CS 6 не поддерживает retina, но есть апдейт что-бы завести.
Либо ставьте апдейт либо ставьте версию постарше.
Вопрос: Какая существует лучшая литература про Linux?

Лучший ответ: Брайан Уорд, "Внутреннее устройство Linux", 2016
Очень хорошо и подробно написано, читается легко.

Худший ответ: если по администрированию - то  "securing & optimizing linux"
Вопрос: Какая книга считается библией PHP?

Лучший ответ: Для поисковиков уже нет альтернатив ;)
Любая функция разжевана 100500 говногуру.
php.net/docs.php ничто не заменит

Худший ответ: Для меня самый лучший учебник - это мануал на php.net. 
Но у меня был бэкграунд из 5 лет института с C++/Java + пролистаная книга "PHP для чайников"
Вопрос: Какую систему управления выбрать для 3 проектов и 15 сотрудников?

Лучший ответ: Ловите из моей подборки:
		○ https://planfix.ru/prices/ — Цена 290, 490 или 640 р /человека в месяц - в зависимости от возможностей системы. Интересные тарифы и возможности, есть тайм-трекер (2016)
		○ https://megaplan.ru/calculation/ — Цена 250р с человека в месяц (2016)
		○ https://www.bitrix24.ru/prices/ — сложный комбайн
		○ https://basecamp.com/3/pricing — 29$ без клиентов, 79$ с клиентами (2016)
		○ https://www.wrike.com/price/ — Ограничения бесплатного варианта по вложенности задач и функциональности всей системы.  Есть мобильный приложения. Понравилась внутри. На бесплатной версии нет подзадач. (2016)
		○ https://asana.com/pricing — Есть бесплатный вариант. Но на ощупь - неинтуитивная кака. Соловьев советовал ее. (2016)
		○ worksection.com/price.html — Бесплатно только на 2-х (2016)
		○ https://zettaplan.ru/price/ (2016)
		○ www.teambridge.ru — От 1000₽ (2016)
		○ https://www.producteev.com/pricing — Вроде есть бесплатный полнофункциональный вариант и приложения для мобильных. Но в проекте вложенность = задача-подзадача = мало. И как-то все убогенько (2016)
		○ https://pyrus.com/ru/pricing — От 9р с человека в день (2016)
		○ promo.advanta-group.ru/advanta — От 5454р (2016)
helpcenter.onlyoffice.com/ru/faq/free-cloud.aspx — По сравнению с wrike ограничения только по вложенности задач, в остальном полнофункциональна. Но нет мобильных приложений. Внутри нормальная. (2016)
		○ https://workflowy.com/  — неограниченная вложенность подзадач, гибкое управление задачами, есть теги. Выглядит, как списки с вложенными списками (2016)
		○ synkra.com/login — Унылое говно со списком дел в один уровень (2016)
		○ https://ru.todoist.com/business — По описаниям все красиво, но в бесплатном варианте тупо список одноуровневых дел, вообще не юзабельно. В бесплатном варианте нет обсуждений. (2016)
https://planiro.com/ru/pricing — Похож на битрикс, но попроще и симпотичнее. Только платный (2016)

Худший ответ: Все просто) taiga.io
Прочие комментарии излишни. Все бесплатно, удобно. Есть даже подобие своего Confluence
Вопрос: Почему DHCP долго выдает ip адрес одному клиентскому ПК?

Лучший ответ: На свичах включен STP. Порт не передает кадры, пока не перейдет в состояние Forwarding.
1. На свичах глобально:
spanning-tree mode rapid-pvst
2. На портах в сторону хостов:
spanning-tree portfast
spanning-tree bpduguard enable

Худший ответ: Спасибо!
Вопрос: Есть ли WEB-GUI для VPN сервера linux?

Лучший ответ: webmin из коробки

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

Лучший ответ: Карты размера SD проще изготавливать, сложнее потерять, проще использовать, такой разъём более универсален - с переходником и microSD можно засунуть, если вам так хочется.
microSD разъём используют в случае нехватки места в устройстве. В тех же профессиональных фотоаппаратах так и останется SD разъём - качественные высокоскоростные карты для съёмки RAW идут формата SD. Туда и контроллер помощнее можно засунуть, и стандартные NAND чипы с корпусом TSOP48

Худший ответ: Сверх тех объяснений, что дал 15432, есть ещё одно - на SD (в отличие от microSD) есть движок, включающий защиту от записи. Для некоторых пользователей это бывает важно. Например, почти перестали выпускать USB-флэшки с такой защитой, но они легко заменимы USB-кардридером с воткнутой в него SD.
Вопрос: Не пингуется сервер по домену. Почему?

Лучший ответ: nslookup и проверяйте, что творится в кеше, что творится у вашего ДНС в голове, что творится в записях у днс яндекса  или гугла. 
Найдите в чём причина: либо записи ещё не разошлись, либо они не расходятся в принципе (если их нет), либо они не правильные

Худший ответ: Возможно icmp заблокирован.
Вопрос: На что лучше подцепить html страничку, если это сайт визитка с одним разделом блога?

Лучший ответ: Для подобных целей народ давно придумал Jekyll - генератор статических сайтов(или ему подобные движки: Hugo и etc). Создаете шаблон для новостей(статей), добавляете массив данных, а движок генерирует папку со статическими html страницами для каждой новости(сортировку по дате или параметру, который вы укажите).
В итогу мы избавляемся от cms, базы данных и других ненужных тяжелых элементов. Сервер отдает только статические html страницы.

Худший ответ: https://www.netlify.com/
Советую сам им пользуюсь
Вопрос: Как передаются Dictinary в C#?

Лучший ответ: Словари передаются по ссылке. Но если очень хочется, их можно передать по значению вручную.
Асинхронность async/await допускает использование словарей без исключений. (Вы ведь просто исполняете код в другом порядке.)
Возможно, вы перепутали асинхронность с многопоточностью, где словари желательно не изменять из разных потоков.

Худший ответ: а написать тест в 5 строк не судьба?
в случае присвоения переменной - присваивается ссылка, тогда более одной переменной могут указывать на один и тот же экземпляр объекта
в качестве параметров методов, обычно передаются копии объектов, думаю Dictionary подчиняется общим правилам* (напомню - это элементарно проверить - консольное приложение на несколько строк)
для гарантированной передачи ссылки в качестве параметра, следует использовать префикс ref
ps * - две проверки подтвердили передачу по ссылке, ну что же, значит по ссылке, сори за поспешность ))Повлияет ли на результат асинхронность методов классов? await-async думаю тут надо искать сведения о потокобезопасности. на пример
https://docs.microsoft.com/ru-ru/dotnet/standard/c...
Dictionary там вроде не упоминается, но упоминается ConcurrentDictionary возможно вам надо присмотреться к пространству имен System.Collections.Concurrent
Вопрос: Почему не работает Workerman для wss соединения?

Лучший ответ: В общем мучался-мучался, что я только не пробовал : )) В итоге всё оказалось очень просто: проблема в том, что сертификаты находятся "чертиде" /etc/letsencrypt/live/ и доступа к ним по сути у workerman нет, решение сделать линки на сертификаты и положить эти линки рядом со скриптом запуска.
пример: 
sudo cp -l /etc/letsencrypt/live/my-domain.com/fullchain.pem /var/www/вашсайт/fullchain.pem
sudo cp -l /etc/letsencrypt/live/my-domain.com/privkey.pem /var/www/вашсайт/privkey.pem
и затем подключить $context = array(
  'ssl' => array(
    'local_cert'  => __DIR__.'/fullchain.pem',
    'local_pk'    => __DIR__.'/privkey.pem',
    'verify_peer' => false,
  )
);

// Create a Websocket server
$ws_worker = new Worker("websocket://0.0.0.0:8084", $context);//0.0.0.0 - значит принимать соединения от любого ip
$ws_worker->transport = 'ssl';
и будет  счастье :)

Худший ответ: Черным по белому написано, что эта ошибка возможно из-за того что он не может найти на диске сертификат из свойства local_cert
Проверьте правильность путей до сертификатов
Если все указано верно, то посмотрите в сторону crypto_type.
Может быть выбран тот, которого не имеется на сервере.
Вопрос: Выбор колледжа по любой IT специальности?

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

Худший ответ: Лучше поступать туда, где нормально обучают
Вопрос: Для чего создали jQuery?

Лучший ответ: 1. для удобства
2. для кроссбраузерности

Худший ответ: youmightnotneedjquery.com
Если возникает вопрос, можно ли использовать что то из последних стандартов
https://caniuse.com/
Вопрос: Как правильно найти ускорения?

Лучший ответ: У вас есть вектор скорости и вектор ускорения. Проекция ускорения на вектор скорости - это и будет тангенциальное ускорение:|at| = a * norm(v)
Другая составляющая будет нормальным ускорением:an = a - |at|*norm(v)

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

Лучший ответ: Адрес меняется - html5 history api или window.onhashchange. 
Бесконечная прокрутка - примерный принцип такой: слушать событие прокрутки, при скором приближении конца страницы делать очередной ajax-запрос следующей пачки новостей, запомнить id самой последней в списке, отрисовать внизу полученные новости. При следующем приближении к концу прокручиваемой страницы повторить с отправкой запомненного id и сохранить свежеполученный. Повторять пока юзер не просмотрит всю базу чего бы это ему не стоило.

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

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

Худший ответ: Лучше copymik использовать. Более функционален. да и VSS поддерживает.
Вопрос: Как реализовать «лайки» на записях блога?

Лучший ответ: Плагин WP ULike, как использовать тут

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

Лучший ответ: То есть сам-то с заказчика взял половину денег вперед (он рисковал, что сбежишь с баблом :), а сейчас жмешься показать вторую половину работы? Как-то нехорошо.
Кроме того, заказчику именно сейчас пропадать уже особого смысла нет, потому что в верстке наверняка есть баги, наверняка будут замечания - удобнее, чтобы подправлял это сам автор.
Просто заливай и показывай код как есть.
P.S. Я не учитываю только случаи, если в процессе работы уже были какие-то конфликты и есть конкретные основания полагать, что возможны проблемы.

Худший ответ: показывай свою работу в скайпе или в тимвивере как Писали Выше.
От Себя добавлю следующее:
можешь его покормить скринами или же снять видео в 10к и 100500 фпс. (Шутка)
А самое главное всегда обговаривай финальный процесс передачи Своей Работы Заказчику и Получение своих честно заработанных денег - До начала работы
Вопрос: Как в Yii2 записать ip адрес пользователя в БД при регистрации?

Лучший ответ: $model = new User(['ip' => Yii::$app->request->userIP]);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
......
}
либо перед сохранениемif ($model->load(Yii::$app->request->post()) && $model->validate()) {
    $model->ip = Yii::$app->request->userIP;
    $model->save(false);
}

Худший ответ: Получить IP адрес пользователя вы можете с объекта Request приложения, например:
Yii::$app->request->userIP 
ну а дальше записываете его в свою модель пользователей, сохраняете и т.п.
Вопрос: Как организовывается сеть интернет провайдера?

Лучший ответ: Что у них ломается - вам никто не скажет. вечно что-то ломается и в самый ответственный момент я остаюсь без интернетов
Это Вам так кажется, я таких каждый день наблюдаю.
Вам или соглашаться и терпеть, или выбирать другого провайдера.
Если провайдер не дурак, в договоре с вами он максимум может сделать перерасчет, за то время когда не было Интернета.
Дам совет, лучше решайте все на дружественных отношениях. Тогда и от компании узнаете что действительно случилось и проблему вашу решат быстрей. Славянский народ так привык. Панибратство, хорошие отношения быстрее решают проблему, чем вы будете орать на них, а они делать вид что случают Вас.
А причины могут совершенно разные:
- возможно линк из большого города к вам в маленький не приходит
- возможно админ молодой еще и тренируется сразу на боевых машинах
- возможно нет согласия в работе команды, и кто-то что-то ставя - ломает другое
- возможно у вас проблемный участок, а проблем в головной офиса нет. Его решать надо коллективно и в зависимости от проблемы.
вариантов куча и каждом случае свой.
Картинка для наглядности:

Худший ответ: Если вопрос про обычного провайдера фикс связи FTTx Ethernet, то было...
А проблемы, ну тут уже озвучили... От себя добавлю самая частая проблема - отсутствие электропитания на промежуточных узлах по разным причинам и гроза в случае медных перекидок между домами. Это технические, а бывают еще административные, их очень много...