pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как задать несколько стилей через js?

Лучший ответ: https://developer.mozilla.org/en-US/docs/Web/API/D... returns an Element object 
https://developer.mozilla.org/en-US/docs/Web/API/D... returns an array-like object of all child elements 
backgroundRepeat может лучше добавить через класс, а в скрипте манипулировать классами ?

Худший ответ: https://developer.mozilla.org/ru/docs/Web/API/HTML...
Разница есть: https://learn.javascript.ru/searching-elements-dom
Вопрос: Возможно ли увеличить кол-во ОЗУ в ноутбуке если она распаяна?

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

Худший ответ: Даже при наличии распаянной ОЗУ могут быть слоты расширения. Проверьте.
Вопрос: Как скрыть часть блока?

Лучший ответ: .parent .block:nth-child(2) ~ .block{
  display: none
}
.parent.active .block:nth-child(2) ~ .block{
  display: block
}// jQuery
$('.button').on('click', function(){
  $('.parent').addClass('active');
});

// или не jQuery
document.querySelector('.button').addEventListener('click', function(){
  document.querySelector('.parent').classList.add('active');
});

// я не сумасшедший.

Худший ответ: .parent .block:nth-child(2) ~ .block{
  display: none
}
.parent.active .block:nth-child(2) ~ .block{
  display: block
}// jQuery
$('.button').on('click', function(){
  $('.parent').addClass('active');
});

// или не jQuery
document.querySelector('.button').addEventListener('click', function(){
  document.querySelector('.parent').classList.add('active');
});

// я не сумасшедший.
Вопрос: Как выполнить вывод количества просмотров елемента в карточку товара «Битрикс» с функцией возврата окончания слова при склонении?

Лучший ответ: use Bitrix\Main\Grid\Declension;
echo (new Declension('штука', 'штуки', 'штук'))->get(2);

Худший ответ: function RusEnding($n, $n1, $n2, $n5) {
    if($n >= 11 and $n <= 19) return $n5;
    $n = $n % 10;
    if($n == 1) return $n1;
    if($n >= 2 and $n <= 4) return $n2;
    return $n5;
  }
echo RusEnding(40, "Человек", "Человека", "Человек");
Вопрос: Как написать программу которая распознает речь на C++?

Лучший ответ: -Гармонический анализ, цифровая обработка сигналов, машинное обучение, практика физического эксперимента, некоторые разделы вычислительной лингвистики, математическая статистика и теория вероятностей - в качестве математической платформы (математики, которая программисту "не нужна")

-разработка высокопроизводителных приложений, многопоточная обработка на GPU, хранение данных - специальные разделы от общей информатики

-контейнеры, оптимизация алгоритмов, культура разработки программ на C++ - собственно, от C++

Худший ответ: Лучше взять готовое что-либо вроде Vosk или Kaldi
Вопрос: Какая есть альтернатива ООП в Java?

Лучший ответ: Язык Java создавался исключительно для ООП. Спустя годы выяснилось, что ограничение одной парадигмой - не очень хорошая идея, поэтому в языке сейчас с каждым релизом становится всё больше функционального программирования, но только как дополнение к ООП.

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

Лучший ответ: Сделать несколько папок vendor_branchname, а вместо папки vendor симлинк на одну из них.

При переключении ветки менять симлинк. Это можно автоматизировать, написав хук на post-checkout, например.

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

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

Программная же часть в данном случае тривиальна, самое страшное будет - сделать механику.

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

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

Лучший ответ: При клике на span.sub отправляет ajax на url:'/wp_rast/send.php?email='+email, а ответ сервера выводит в alert

Худший ответ: Отправляет GET запрос с e-mail, получает какой то ответ и передает этот ответ в alert окно
Вопрос: Где находится верстка на хостинге(главная страница)?

Лучший ответ: Почему мне так смешно? Может за вас ещё заказ сделать? Рано вам фрилансом заниматься.

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

Лучший ответ: При выборе товара и его количества сохраняете эту инфу в localStorage/sessionStorage/бд, при при удалении, удалять, при редактировании изменения. После оформления заказа очищать

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

Лучший ответ: Какие тогда серверы обслуживают сайты на даркнете?Обычные.
почему нельзя получить доступ к сайтам через обычный браузер?Не знаю почему вы так решили.
IP сайта в в обычной сети может совпасть с IP сайта в даркнете?Может совпасть, может не совпасть, какая разница??? При чем тут IP адреса?

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

Лучший ответ: За сутки? Ничего нового почерпнуть не успеете, если только непоняток прибавится. Отдохните и выспитесь

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

Лучший ответ: 
Сделать копию сайта со всеми плагинами.
Разработать новую тему. 
Залить новую тему на оригинальный сайт


Худший ответ: заменить дизайн сайта  - очень размытое понятие. Самое простое это заменить css.
Вопрос: Виртуальные папки в Linux возможно ли такое?

Лучший ответ: Если sftp в /usr/local не вариант, из известного мне могу предложить mount --bind.
В домашней папке создаётся обычная, пустая: mkdir /home/ivan/usr-local
Если теперь от рута сделать mount --bind /usr/local /home/ivan/usr-local
, то во второй папке отобразится содержимое первой. Отменить заклинание, соответственно, umount /home/ivan/usr-local.
По ману, вместо ручных команд можно в /etc/fstab прописать/usr/local /home/ivan/usr-local none bind
, что приведёт к аналогичному эффекту автоматически.

Худший ответ: Небезопасно. Ну просто крайне небезопасно. Этот финт ушами Вам пардон, зачем? Из-за того, что /usr/local входит в PATH? Добавьте, что надо.
Вопрос: Как получить всю информацию об установленном приложении?

Лучший ответ: В sysinternals suite (предоставляется микрософт бесплатно) есть ПО позволяющее мониторить и реестр и файловую систему. Начиная с этапа установки приложения стартуете мониторинг, затем при типичной работе приложения. Объединяете информацию мониторинга и получаете искомое.
Это можно провернуть, если приложение это какая-нибудь маленькая утилита.
Но если приложение "среднее" или еще больше, то этот процесс будет очень трудозатратен. Мониторниг реестра обычно выдает сотни (если не тысячи) обращений к реестру, с файловой системой так же.
Обычно бывает проще в ручную прошерстить реестр (HKLM и HKCU) по ключевым словам приложения, проверить Program Files, профиль Public (All Users) и профиль пользователя.

Худший ответ: Нет. Только о запущенном.
Вопрос: Как сделать прозрачный зазор между колонками?

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

Худший ответ: поиграться с margin и padding
Вопрос: Стоит ли долго оставаться эникеем в большой компании?

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

Худший ответ: Если з/п высокая и устраивает, то стоит. 
По ходу дела можно учиться. 
Трогать руками оборудование смысла нет. Работа сис. админа - это чтение документации. Руками разве что провод обжать, а если больше, то это уже монтажник. Так что изучайте сети и прочее, а там видно будет
Вопрос: VS Code, SFTP открывается только для чтения. Как исправить?

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

Худший ответ: В который раз - проверьте может ли этот пользователь вообще редактировать файлы на сервере. Уже сегодня даже был такой же вопрос
Вопрос: Можно ли с помощью php защитить сайт от воровства?

Лучший ответ: Можно ли с помощью php защитить сайт от воровства?
Можно. Запускать сайт на localhost

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

Лучший ответ: Ну, в принципе передача состоит из:

написания документации
передачу документации и доступов
удаление у себя доступов


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

Лично я веду уже по всем своим проектам confluence. Благо, для личных нужд он free, если не перегибать палку. Если не хочется так то и простых документов в Word тоже будет достаточно.

Очень важно не только кинуть в лицо человеку документацию и доступы, но и проверить что он понял и у него нет вопросов. Например, можно провести одну сессию по скайпу с расширенным экраном. Также важно закрыть общение. То есть предупредить что вы сжигаете мосты и поддержкой заниматься не планируете. Это очень важный шаг, который если забыть то призраки прошлого будут еще очень долго преследовать

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

Лучший ответ: Работая на зарубежных кастомеров могу сказать что релокация (если не CIS) дается только в следующих случаях:

вы исключительный специалист на рынке (то есть поиск второго такого кандидата может занять месяцы)
вы соответствуете всем критериям для получения визы
первое время вы готовы пахать аки конь за то что вас перевезли
вы знаете необходимый язык (почти всегда это английский) на уровне B2+ (это примерное значение, но даже с B1 вы никому там особо не сдались)
вы можете принести реальную ценность в организацию
у вас нет "багажей" в виде проблем со здоровьем, семьи (если она не сможет ехать с вами) и т.п. (читаем как нет причин проситься обратно)
вы мотивированы к релокации
у вас отличные soft skills


В итоге, как правило, релокацию получают различные:

Senior Delivery Manager
Senior Project Manager
Senior Account Manager
Solution Architect
Software Architect
System Architect
CxO (любые Chief)


различные девелоперы,  девопсы, QA и тому подобные замечательные люди до уровня Senior в принципе никем не рассматриваются.

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

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

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

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

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

не сдавайтесь.

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

Лучший ответ: вставляйте свой скрипт в любом месте страницы указав ему атрибут defer

ну и почитайте это Внешние скрипты, порядок исполнения

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

Лучший ответ: Думаю, существует. А что?
По сабжу:
Создайте функцию-фильтр и сделайте обход вашего массива с дополнительной проверкой

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

Лучший ответ: В чём проблема удалить Гном и поставить i3wm?
В чём проблема поставить ubuntu-server и поставить i3wm?

Худший ответ: Можно еще попробовать использовать гугль
https://medium.com/@labruillere/minimal-i3-ubuntu-...
Вопрос: Можно ли использовать flex для ссылки?

Лучший ответ: Разрешаю. 
Подпись. Печать.

Худший ответ: Применять Flexbox к ссылке можно без проблем.
Вот только не очень понятно, как Вы хотите "центрировать" картинку и текст, ведь из-за Flexbox они расположатся рядом
Вопрос: WiFi роутер для офиса (~40 клиентов)?

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

Худший ответ: Mikrotik rb4011igs+5hacq2hnd-inЖелезка для данной ситуации с хорошим запасом.

Если экономно, я бы посмотрел в сторону MikroTik hEX S (RB760iGS), а WiFi отдельно.
Вопрос: Как настроить сервер дома?

Лучший ответ: VPN
На сервере Nginx смотрит наружу и проксирует на IP домашенго компьютера в сети VPN.

Худший ответ: Спросите у провайдера мне дали внешний ип бесплатно, некоторые за 150р единоразово покупают, некоторые за 50р/месяц, кароч это все равно дешевле чем своя впска.
Вообще если у вас чисто статический веб серв, то можно еще на IPFS посмотреть, тогда и внешний ип не нужен.
Вопрос: Php! или === null?

Лучший ответ: if($error === null){} предпочтительный (иногда он обязательный по стандартам), тк вариант if(!$error){} — это авто-приведение к bool:


например 0 приведется к false, в то время как он может быть валидным интовым значением
пустой массив — тоже может быть валидным значением, но с !$arr он приведется к false... конечно допускать в программе одновременно и [] и null стоит как можно реже, но такое может произойти


!$any можно использовать комфортно, когда вы (и программа) уверена, что работает либо с объектом, либо с bool

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

Еще есть практика выноса статуса ошибок из возвращаемого значения, так как ошибки бывают разные и требуют разной ответной реакции, с помощью исключений - классов потомков Exception

В этом случае каждый вариант ошибки должен быть отловлен в своей секции catch а вызов в try (саму ошибку инициализировать с помощью throw).
Вопрос: Обязательно ли иметь два жестких диска, чтобы поставить Linux вместе с Windows?

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

Худший ответ: Можно поставить на один жёсткий диск.Нужно создать минимум два раздела и отформатировать их в NTFS для винды и в ext2-4 для линукса.
Советую вначале ставить винду.Дело в том,что загрузчик винды не видит другие операционки.Загрузчик линукса же увидит вашу установленную винду и у вас будет удобное меню загрузки.
Вопрос: Ворота против телеграм-бота. Как защититься?

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

Худший ответ: Требуйте ввода какого-нибудь пароля тональным набором, например.
Вопрос: Как учить Node.js #2?

Лучший ответ: Скринкаст еще вполне актуален, да есть устаревшая информация, но в случае если не нравится скринкаст, то можно найти вполне годные курсы, к примеру я смотрел от WebForMyself. Сам автор - Владилен Минин очень хорошо преподносит информацию, так же можно и js выучить по его курсам. Если не хотите платить за них то в интернете есть уже слитые курсы. А дальше идите по книгам, список из предыдущего вопроса отличный, только на издательство смотрите, и выбирайте новее. Ну и конечно же ни какие курсы и книги не заменят вам практику, так что это очень главное.
P.s. Для тех кто изучает js а в дальнейшем хочет изучать node.js то советую к прочтению и изучению книгу "Выразительный JavaScript. Современное веб-программирование | Хавербеке Марейн". В конце есть главы по node.js. Конечно их полноценными знаниями по node.js назвать сложно, но они подводят того кто изучает js к ноде.

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

Лучший ответ: Хранить нужно только часть path/to/images/avatar.jpg, и она никогда не должна меняться. Завтра вместо localhost вы переедете на нормальный сервак и вам придется менять везде пути если вы его тоже сделаете частью пути, а ещё через некоторое время поменяется ip или домен и ТД, в общем такие данные ни в коем случае нельзя делать частью пути, а вот все что дальше - структура папок до авы и ее название - это нужно, потому что структура папок(то есть путь до авы) будет одинаковым на любом сервере и домене

Худший ответ: Варианты.
1. Не хранить в базе вообще мя аватарки, а именовать файл по id пользователя и хранить уже в отдельной папке все аватарки. Ну а путь к этой папке задавать в настройках.
2. Хранить как имя файла без расширения, если расширения у всех изображений одинаковые или с расширением если могут быть варианты. 
Смысла хранить путь не вижу, ну или в очень специфических случаях.
Вопрос: Зачем вносить принтер в Active Directory?

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

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

Лучший ответ: Регистрируетесь на cloudflare.com, выбираете бесплатный тариф, настраиваете DNS и радуетесь жизни.
И абсолютно безвозмездно, т.е. даром, получаете еще кучу плюшек.

Худший ответ: готовы запариваться с новым хостом- берите хост с адекватной тех. ресурсом. Запариться с Днс и все. У кселента даже в тех.поддержке можно проконсультироваться заранее
Вопрос: 1400 человек на вакансию Python разработчика?

Лучший ответ: Статья глупая на самом деле.

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

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

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

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

Худший ответ: Если уж давать код, то лучше так:
<html><title>Click-n-Win!</title>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
</head>
<body>
<div style='width:200px; height:250px; border:1px solid black;'>
    <div id=heading style='position:relative; width:100px; height:50px; border:1px solid red;'>Click</div>
</div>
<script>
var leftOffset = 0, topOffset = 0;

var moveHeading = function () {
  if (leftOffset < $("#heading").parent().innerWidth() - $("#heading").outerWidth() && topOffset <=0)    leftOffset += clicks * 3;
  if (leftOffset >= $("#heading").parent().innerWidth() - $("#heading").outerWidth() && topOffset < $("#heading").parent().innerHeight() - $("#heading").outerHeight())
    topOffset += clicks * 3;
  if (leftOffset > 0 && topOffset >= $("#heading").parent().innerHeight() - $("#heading").outerHeight())   leftOffset -= clicks * 3;
  if (leftOffset <= 0 && topOffset > 0)     topOffset -= clicks * 3;

  $("#heading").offset({ left: $("#heading").parent().offset().left + leftOffset, top: $("#heading").parent().offset().top + topOffset});
};
var clicks = 0, intervalId;

$("#heading").click(function () {
  clicks++;
  if (clicks == 1) intervalId = setInterval(moveHeading, 5);
  if (clicks < 10) $("#heading").text("You clicked "+clicks);
  if (clicks == 10) { clearInterval(intervalId); $("#heading").text("Congratulations! You won!"); }
});
</script>
</body>
</html>
Вопрос: На ком лежит натяжка шаблона?

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

Худший ответ: Вставляй экшны в формы и указывай неймы, делай запросы и т.д.это фронт.
Вопрос: Агрегация интернет-каналов: на ПК создать VM-суммирующий сервер?

Лучший ответ: Получается, что можно сделать свою виртуальную машину (суммирующий сервер)
Да.не придётся собирать Raspberry Pi
Да.не придётся арендовывать сервер
Нет.
MPTCP должны уметь хосты и принимающие и отправляющие данные.
На одном только отправителе - старый добрый LARTC и multihome routing со своими ограничениями

Худший ответ: Аренда сервера — лучшее решение?
Я вам в том вопросе пытался объяснить, но, похоже, безуспешно. Попробую ещё раз.
У нас есть точка, где интернет "плохой" - по LTE-свисткам, ADSL или нестабильный по кабелю, но каналов несколько. И мы хотим пользоваться сразу несколькими из них, создавая избыточность и суммируя, если возможно, пропускную способность. Там ставится MPTCP-роутер - прямо на вашем компе или малинке, или ещё где. Роутер отправляет сразу через несколько каналов трафик к суммирующему серверу.
Суммирующий сервер НЕ НАХОДИТСЯ ТАМ ЖЕ, где роутер. Он стоит где-то ещё, где канал может быть один, но стабильный и быстрый. В частном случае - это сервер или VPS на полноценном хостинге. К нему приезжает трафик через LTE/ADSL/etc, он его суммирует и отправляет, куда надо, затем получает ответ и переправляет к вам домой.
Если стабильный канал есть и у вас дома - непонятно, зачем городить агрегацию. Ради отказоустойчивости? Но для этого достаточно настроить multi-WAN, который умеют, по-моему, все более-менее современные SOHO-роутеры.