pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как скопировать только комментарии и ответы на них под видеороликом на youtube без лишней информации?

Лучший ответ: Да, называется такой софт парсерами, грабберами, скрапперами и спайдерами. Чаще всего делается на заказ под конкретный сайт. Что касается гигантов вроде Google, Yandex и прочих, то они не любят, когда их данные воруют без разершения недокументированными методами, поэтому будут всячески препятствовать выполнению задачи.
Если умеете программировать, то вот апи ютуба. Коли нет - закажите у фрилансера. Еще есть уже готовые скрапперы в виде дополнений хром, можно их попробовать. Но на ютубе ajax подгрузка комментов, соответственно навряд ли универсальные решения хорошо справятся с этой задачей.
А если научиться пользоваться гуглом, можно ощутить всю мощь информационной избыточности в сети и возможно даже самому найти готовое решение бесплатно.

Худший ответ: Элементарно, либо регуляркой в notepad++ удалить все между  "ответить" и "подписчики". У меня только в примере между "ответить" и "назад"
или раскрыть все комментарии и через js через консоль все стянуть
Или через API
Вопрос: Будет ли нормально работать псевдо стримминг на php?

Лучший ответ: Собственно эта вот строка:
if (!($this->stream = fopen($this->path, 'rb'))) {
намекает на то, что скрипт открывает файл только на чтение, так что проблем у параллельных процессов с доступом к этому файлу как-бы совсем нет.
Проблема может быть в количестве одновременно запущенных процессов php. 1000 коннектов = 1000 запущенных процессов, каждый процесс кушает запросто мегабайт 50. Оперативной памяти серверу хватит? :)
Все вопросы авторизации лучше доверить профессионалам:
erlyvideo.ru/doc/auth

Худший ответ: на PHP делать стриминг, это просто пустая трата времени. Изучайте python, erlang, в крайнем случае nginx+lua
Вопрос: 50 000 полигонов + 30мб текстур с запечённым освещением в webgl — это нормально для мобильного гейминга?

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

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

Лучший ответ: А надо так:#contact p:before {
font-family: FontAwesome;
  content: "\f2ba";
}

Худший ответ: Через Unicode отображаются не иконки, а символы из заданного шрифта.
Из этого вывод - вам нужно подключить шрифт.
Вопрос: Запутался. Где именно функция-обертка?

Лучший ответ: Эту фразу, вырванную из контекста, нельзя корректно интерпретировать. Любая функция может быть обёрткой и любая функция может быть возвращена из другой.
Вот для такого кода слова "возвращаем функцию-обёртку" будут иметь смысл:function initialFunc(someNumber) {
  console.log(`initialFunc`, someNumber);
}

function foo() {                         // Замыкание
  const someRatio = 3.14;                // Причина создания замыкания

  return function(someNumber){           // Обёртка, которая возвращается из замыкания
    console.log(`wrapper`, someNumber);  // Причина создания обёртки
    initialFunc(someNumber * someRatio); // Вызов обёрнутой функции
  }
}

foo()(42);Интерактивный пример

Худший ответ: Можно сделать сколько угодно оберток.  Точно так же как можно конфету, которая уже в обертке, обернуть в еще одну обертку. Да хоть в десяток, пока не надоест.
Вопрос: Появление блоков при клике по ссылке, скрытие при повторном клике и смене ссылки + добавлять\убирать класс?

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

Худший ответ: Спасибо ребята. Помогли решить мою задачу.
В первом примере не хватает закрытия ранее открытого блока и очистка класса active при клике по другой ссылке.
Во втором при повторной клике по ссылке, чтобы скрывался блок и очищался класс active
Вопрос: Как работает return false;? Зачем он нужен?

Лучший ответ: Default browser action
Ну, у вас существует два способа сообщить браузеру, что вы хотите отменить дефолтное действие для некоторого события, в данном случае отменить переход по ссылке: вызвать event.preventDefault() или вернуть false из функции обработчика. Второй работает только если вы назначаете обработчик с помощью атрибута onсобытие вот так:<a href="//google.com" onclick="return false">google</a>
Или так:<a href="//google.com">google</a>

<script>
document.getElementsByTagName('a')[0].onclick = function() {
	return false;
}
</script>

Худший ответ: Я думаю, event.preventDefault() является w3c указанный способ отмены событий.
Вы можете прочитать это в спецификации W3C на событие отмены.
Вопрос: Как понимать лицензию Windows?

Лучший ответ: Как понимать лицензию Windows?Лицензия это разрешение на использование экземпляра программы выданное правообладателем.Купили пк dexp в dns в счёте было указано без по. Отлично.При запуске оказалась винда 10 с лицензией oem, но наклейки нетБывает и такое. При чем тут наклейки?Могу ли я её использовать в коммерческих целях?Если работает - есть такая возможность.Плюс у меня есть ключ лицензии для винды 10 домашняя с одним языком. Могу ли я использовать в коммерческих целях. Тоже можете, только помните, что использование продуктов без лицензии незаконно, и возможны проблемы.Наклейка есть?Где?

Худший ответ: Она теперь вроде как вне зависимости от наклейки активируется и лицензируется.
P.S. Есть и другие ОС, более удобные, стабильные и безопасные.
Вопрос: Bootstrap — плохая практика добавлять к элементам фреймворка свои классы / стили. Как тогда лучше в моем случае?

Лучший ответ: Доброго времени суток. А тот, кто Слышал, что нежелательно добавлять к элементам Bootstrap'а свои классы - это плохая практика говорил привёл свои аргументы или доводы? 
Разумеется, много div`ов влияют на читабельность, но разве конструкции, приведенные во 2 примере, улучшают её?

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

Лучший ответ: есть SSD с достаточно высокой скоростью чтения/записи
Недостаточной. Весьма недостаточной. Настолько, что в самих flash SSD распаяны чипы DRAM для нужд кеша и контроллера. Сейчас типично DDR3, объёмом 64-1024мб в зависимости от модели.
Латентность доступа на чтение SSD весьма далека от латентности RAM в пару десятков нс.
Латентность записи - пока есть свободные страницы для записи ещё ничего, а вот если свободных страниц нет - то привет. Латентность растёт крайне существенно.
Магниторезистивная память либо память на основе фазового перехода - вот чем некоторые компании надеются заменить DRAM. Пока безуспешно.

Худший ответ: Да.
Организовать легко. Минимум оперативки, своп на SSD.
Получите:
1. Увидите как начнет притормаживать.
2. Повышенный износ SSD
Целесообразно только на специфических задачах. Например, какое-то оборудование, которое которое должно сразу же записывать данные для долговременного хранения на диск. Для которого потери от выключения питания будут критичными.
Но опять же это проще решить просто добавив батарейку.
Вопрос: Чем Docker может мне помочь?

Лучший ответ: Docker нужен, чтобы запускать идентичные билды приложений с окружением, изолированные от остальных процессов на хосте. Если вам оно не надо, значит оно не надо.
P.S. С highload сервиса, запускаемого на одной машине, смеялись всей маршруткой.
P.P.S. За деплой вручную по этим самым ручкам давно пора бить.

Худший ответ: К примеру в docker-compose.yml  прописываете контейнеры и параметры с которыми нужно их стартовать, беря при этом готовые контейнеры -  mysql, redis, nginx, nodejs, и пр., при необходимости указываете установку дополнительных зависимостей и настройку отдельных контейнеров в Dockerfile, стартуете их одной командой docker-compose up -d, и работаете в том же окружении что и на серверах на продакшене, ничего не доустанавливая себе в систему.
Вопрос: Как прижать элементы вниз?

Лучший ответ: колонки с flex-direction: row; внутри ,блоки с flex-direction: column; у текста flex-grow: 1;

Худший ответ: Лови 6ть способов
Вопрос: СКолько можно передать элементов в массиве через ajax?

Лучший ответ: Ну шлите json строку на сервер, в ней хоть 2000 значений. Главное влезть в лимиты на размер тела запроса. Как правило это примерно 5 МБ (реже 10-20), зависит от настроек сервера. Если все таки значений очень много либо поднимайте лимиты на принимающем хосте (проще всего) либо отправляйте чанками (сложнее).

Худший ответ: Доброе утро.Вот тут посмотрите.
В php.ini есть волшебная строчка: max_input_vars = 1000
Передается ровно 1000 пар {значение : переменная}
Вопрос: По каким книгам изучать устройство компьютера?

Лучший ответ: Код. Тайный язык информатики. Чарльз Петцольд

Худший ответ: Паттерсон "Архитектура компьютера": https://www.ozon.ru/context/detail/id/7425447/
Харрис и Харрис: "Цифровая схемотехника и архитектура компьютера"
Вопрос: Под новую тему новый канал You Tube или лучше всё на одном?

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

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

Лучший ответ: Воспользуйтесь функцией iconv для полученного путём парсинга текста.$html = iconv("windows-1251", "UTF-8", $html);

Худший ответ: при соединении с БД надо задать кодировку utf8
Вопрос: Какие антивирусы популярные за границей?

Лучший ответ: По первой же ссылке из гугля
И более свежая статистика.

Худший ответ: В рейтинге посмотрите. У нас в мире всего 3 интернета. Русскоязычный, китайский и все остальные, ну может японский еще.
Вопрос: Как упаковать python скрипт в exe?

Лучший ответ: Если размер проекта небольшой, то отличным решением будет сделать SFX-архив, засунуть в него всё необходимое и сконфигурировать запуск основного файла после распаковки.
Без заморочек и особых инструментов не требуется. Инструкций как наколдовать сценарий для SFX-архива в интернете куча, и есть немало инструментов, которые упрощают это процесс - стандартного редактора winRAR предостаточно.

Худший ответ: Чем собирал?Pyinstaller- самый удобный в  плане сборки и неплохо справляется сам по определению зависимых библиотек и файлов.  Для того чтобы все собрать в один .exe нужно передать флаг -F или --onefile (в мануале все есть). Если не получится, то можно передать пути к папкам используя флаг. Также есть возможность вручную подкорректировать .spec файл и там сделать инклуды как при использовании cx_freezee например.
Вопрос: Как сделать оптимизацию JPG и PNG на чистом PHP?

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

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

Лучший ответ: По мотивам ответа mefutu
Примерное решение на конечном автомате:using System;
using System.Text;
using System.Collections.Generic;
					
public class Program
{
	public static void Main()
	{
		Console.WriteLine(string.Join("|", Parse("Мама,\"мыла, блин\", раму,\"мама, мыла \"\"раму\"\"\",конец")));
	}
	
	public enum StateEnum{Start, StartQuot, Inline, InlineQuot}
	
	public static IEnumerable<string> Parse(string str)
	{
		var state = StateEnum.Start;
		var sb = new StringBuilder();
		foreach(var ch in str)
		{
			switch(ch)
			{
				case '"':
					switch(state)
					{
						case StateEnum.Start:
							state = StateEnum.StartQuot;
							continue;
						case StateEnum.StartQuot:
						case StateEnum.InlineQuot:
							state = StateEnum.Inline;
							sb.Append('"');
							continue;
						case StateEnum.Inline:
							state = StateEnum.InlineQuot;
							continue;
					}
					break;
				case ',':
					switch(state)
					{
						case StateEnum.Start:
						case StateEnum.InlineQuot:
							yield return sb.ToString();
							sb.Clear();				
							state = StateEnum.Start;
							continue;
						case StateEnum.StartQuot:
						case StateEnum.Inline:
							sb.Append(',');
							state = StateEnum.Inline;
							continue;						
					}
					goto default;
				default:
					sb.Append(ch);
					break;
			}
		}
		yield return sb.ToString();
	}
}

Худший ответ: Можно примерно такdata = new List<string>();
parts = source.Split("\"");
data.AddRange(parts.Where((x, index) => index % 2 != 0));
data.AddRange(parts.Where((x, index) => index % 2 == 0).Split(","));
result = string.Join(" | ", data.Where(x => !string.IsNullOrWhiteSpace(x));
Но если будет три кавычки, то это может не сработать.
Вопрос: Почему не работает команта npm start?

Лучший ответ: Думаю вы не вошли до конца своего файла. Вы сейчас находитесь в 01_components. Нужно cd my-app

Худший ответ: Вы уверены, что такая команда есть в package.json? Вы уверены, что запускаете её в нужной директории?
Вопрос: Удобный PHP-фреймворк — существует ли?

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

Худший ответ: Какое то пространственное понимание простой и комфортный
Наиболее удобным считаю Yii2, полноценная русскоязычная документация, куча гайдов, настолько удобный что его ненавидят все опытные Php программисты. 
Другое дело не стоит мешать мух и мед поскольку фреймверки(Симфони, юй2, ларавель и зенд) и цмс (WP) это абсолютно разные вещи и предназначены для разных целей
Вопрос: Как реализовать display: block по событию onclick одному div и при этом всем раннее открытым из 36 штук — display: none на чистом js?

Лучший ответ: Разные классы не нужны, достаточно одного общего:.ranging {
  display: none;
}

.ranging.opened {
  display: block;
}document.addEventListener('click', function(e) {
  if (e.target.classList.contains('selector')) {
    const index = [...document.querySelectorAll('.selector')].indexOf(e.target);
    document.querySelectorAll('.ranging').forEach((n, i) => n.classList.toggle('opened', i === index));
  }
});

Худший ответ: Если надо без классов
<div id="ranging_1" class="ranging">
    ... еще много дочерних элементов разного типа ...
  </div>
  <div id="ranging_2" class="ranging">
    ... еще много дочерних элементов разного типа ...
  </div>
  <div id="ranging_3" class="ranging">
    ... еще много дочерних элементов разного типа ...
  </div>

  ...

  <a class="selector" href="#" data-rating-id='ranging_1'>Клац</a>
  <a class="selector" href="#" data-rating-id='ranging_2'>Клац</a>
  <a class="selector" href="#" data-rating-id='ranging_3'>Клац</a>
var rangings = [].slice.call(document.querySelectorAll('.ranging'));
var selectors = [].slice.call(document.querySelectorAll('.selector'));
selectors.forEach(function(selector) {
  selector.addEventListener('click', function(e) {
    e.preventDefault();
    var ranging = document.getElementById(e.target.dataset.ratingId);
    ranging.style.display = '';
    rangings.forEach(function(item) {
      if (item.id !== e.target.dataset.ratingId) {
        item.style.display = 'none';
      }
    })
  });
})
Вопрос: Папка $RECYCLE.BIN на внешнем жестком диске?

Лучший ответ: Нет да и смысла никакого в отключении нет

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

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

Худший ответ: Такие файлы неплохо открываются программой Notepad++
Вопрос: Какой размер файла создавать и какую ширину контента использовать когда делаешь дизайн на imac?

Лучший ответ: 2880х1800 - это просто ретина 3k.
По большому счету, увеличена плотность пикселей, а не фактический размер экрана.
То есть у вас должно быть отображение сайтов как на ноутбуках 15' - 1440х900 при правильной верстке.
Вам нужно продолжать делать под 1920, как и делали ранее.
А вот как оно будет отображаться, мелко или адаптироваться под ретину, это работа верстальщика.
PS: Можете в принципе делать сайты "под ретину", то есть точно также увеличив количество пикселей на 2.
Вместо 1920, делайте в 3840, для своего удобства, и пишите верстальщику, что он х2 под ретину.
Думаю, многие верстальщики скажут вам за это только "Большое спасибо", если вся графика будет сразу оптимизирована под мониторы высокой плотности пикселей.
PPS: Ну, и что касается сайта Садоводства "Яблочник" :)
Как я уже отметил, ваш монитор является аналогом монитора с разрешением 1440х900.
Теперь считаем. Составим простую пропорцию.
1440 * X = 100 * 1024, X = 71.112 % примерно занимает сайт яблочников на типичном мониторе ноутбука.
Теперь составим такую же пропорцию для вашего монитора.
2880 * 71 = 100 * X, X = 2044.8 пикселей примерно должен выглядеть сайт яблока у вас.
В идеальных условиях, если нет никаких media-запросов, которые меняют ширину сайта на ноутах.
А я подозреваю, что они есть, поэтому у вас более 1600.
Мака у меня нет, чтобы проверить отображение.
Просто математика и основы верстки.
Вот примерно так выглядеть должен сайт яблочников на мониторе 1440х900.
И примерно также же соотношение боковых сторон должно быть на ретине 2880х1800.
Я имею ввиду отступы от краев до контентной области.

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

Лучший ответ: Нужно создать интерфейс с методами sendSms() и getBalance(), затем реализовать его для каждого провайдера. Количество классов будет соответствовать количеству провайдеров, у всех будет один общий интерфейс.

Худший ответ: Быстрый вариантclass Sms
{
    protected static $instances = [];

    public static function getInstance($id = 'default')
    {
        $map = [
            'first' => 'FirstSmsHandler',
            'second' => 'SecondSmsHandler',

            'default' => 'FirstSmsHandler',
        ];

        if (!isset(self::$instances[$id])) {
            if (!isset($map[$id])) {
                throw new \Exception(sprintf('Unknown hadler `%s`', $id));
            }

            $handler = new $map[$id];

            self::$instances[$id] = new self($handler);
        }

        return self::$instances[$id];
    }

    protected $handler;

    public function __construct(SmsHandler $handler)
    {
        $this->setHandler($handler)
    }

    public function setHandler(SmsHandler $handler)
    {
        return $this->handler = $handler;
    }

    public function changeHandlerByName($handlerName)
    {
        $map = [
            'first' => 'FirstSmsHandler',
            'second' => 'SecondSmsHandler',

            'default' => 'FirstSmsHandler',
        ];

        if (!isset($map[$handlerName])) {
            throw new \Exception(sprintf('Unknown handler `%s`', $handlerName));
        }

        $handler = new $map[$handlerName];

        $this->setHandler($handler);

        return $this;
    }

    public function __call($name, $arguments)
    {
        return call_user_func_array([$this->handler, $name], $arguments);
    }
}

$sms = new Sms(new FirstSmsHandler());
$sms->changeHandlerByName($_POST['provider']);

$sms = Sms::getInstance($_POST['provider']);

$sms->getBalance();
Можно еще почитать как ларавел реализовывает контракты, сервис контайнеры и сервис провайдеры. Там через конфиг просто меняем контейнер и уже работаем с другим классом. Почитайте.
Вопрос: Как организовать резервное копирование сервера на Win 2012?

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

Худший ответ: 1,2,3
Все эти решения предполагают локальное хранение и восстановление из резервных копий, именно из-за этого у вас появляется необходимость иметь еще одну железку.4. Я думаю не в том направлении и есть более рациональные методы )
Если вы хотите избежать необходимости иметь еще один сервер или ПК вам стоит смотреть в сторону восстановления сервера из резервной копии в облако, например: Veeam. Возможно и у Acronis тоже есть такое решение.
Вопрос: Почему sizeof показывает фактический размер массива хотя по сути имя массива это указатель на первый элемент?

Лучший ответ: По сути статический массив это действительно указатель. Но реально тип другой и компилятор знает реальный размер массива. После того как вы приводите массив к типу указателя (например при передаче в функцию), эта информация теряется и sizeof уже вернет размер указателя.

Худший ответ: Несмотря на то, что массив часто отождествляют с указателем, массив — это НЕ указатель. У него, например, другие операции приводят к неопределённому поведению.
И самое противное в Си — это то, что в кодеvoid sort(int x[5]);
x — это не массив, а именно что указатель. Чтобы был массив, надо Си++void sort(int (&x)[5]);
И компилятор даже подсвечивает, что параметр функции, отмеченный как массив — всегда указатель.typedef int Arr[SIZE];
int sum(Arr arr, int n)
// warning: 'sizeof' on array function parameter 'arr' will return size of 'int *' [-Wsizeof-array-argument]|
Вопрос: Как построить геодезическую линию между двумя точками?

Лучший ответ: Можно лерпить кватернион для нахождения промежуточных точек. Насчёт оптимальности пути ничего не скажу, но выглядит корректно. Сначала находите локальные координаты объектов, потом нормализуете их и получаете направление. Создаёте вращение от одного направления к другому и ступеньками его применяете для расчёта точек. Рисовать проще всего с помощью LineRenderer.using UnityEngine;

public class LineExample : MonoBehaviour
{
    public LineRenderer lineRenderer;
    public Transform a;
    public Transform b;
    public float sphereRadius = 0.5f;
    public int positionCount = 10;

    private void Awake()
    {
        Vector3 aDirection = transform.InverseTransformPoint(a.position).normalized;
        Vector3 bDirection = transform.InverseTransformPoint(b.position).normalized;

        var fromRotation = Quaternion.identity;
        var toRotation = Quaternion.FromToRotation(aDirection, bDirection);

        lineRenderer.positionCount = positionCount;
        for (int i = 0; i < positionCount; i++)
        {
            float t = i/(positionCount - 1f);
            Quaternion rotation = Quaternion.Lerp(fromRotation, toRotation, t);
            Vector3 point = rotation*aDirection*sphereRadius;
            lineRenderer.SetPosition(i, point);
        }
    }
}

Худший ответ: Пусть конечные точки имеют декартовы координаты {x0,y0,z0} и {x1,y1,z1}
Берём отрезок прямой, соединяющий конечные точки (проходящий внутри сферы); координаты его точек будут:
{x0+(x1-x0)*k,y0+(z1-z0)*k,z0+(z1-z0)*k}, где k пробегает все хначения от нуля до единицы.
Переводим эти координаты в сферическую систему, а затем принудительно делаем радиус равным радиусу окружности (углы не меняются). Всё, мы имеем все точки нужно Вам дуги окружности.
Как это использовать, т.е. какие именно точки Вам нужны (из того бесконечного набора, который я дал) - решайте сами.
Вопрос: Mikrotik DHCP server?

Лучший ответ: 1. в настройках dhcp-server включить "add arp for leases"
2. в настройках интерфейса к которому подключены юсеры настроить    arp - "reply-only"
как результат - работать смогут либо пользователи получившие адрес по дхцп, либо для которых прописана статическая АРП запись.

Худший ответ: Жестко привязвать IP к mac адресу и через ACL это все разруливать (если это касается wifi) пример
Если по проводу - Как сделать свой DHCP-сервер единственным? тема не 1в1, но суть должны уловить