pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Почему при определении типа параметра в массиве выдает ошибку?

Лучший ответ: Я совсем не 1Сник, но беглый гуглинг позволяет предположить, что вы пытаетесь создать многомерный массив, где 3, 2, "Строка", ЛОЖЬ, ИСТИНА, Null - количество элементов по каждому измерению.

Худший ответ: Ранее kisaa правильно ответил - ошибка именно в создании массива. Если бы вы в окошке ошибки нажали кнопку "Подробно...", то могли бы сразу это увидеть.

Компания 1С уже два десятилетия успешно отбивается от требований разработчиков добавить языку синтаксический сахар.  Так что только хардкор! Только создание пустого массива, а потом добавление в него новых элементов отдельными вызовами метода Добавить().
Вопрос: Как определить, является ли число степенью двойки на javascript с помощью цикла while?

Лучший ответ: для чисел до 2^31 можно и без цикла

const isPower2 = n => (n & (n-1)) === 0

вариант для длинной арифметики
const isPower2b = n => (n & (n - 1n)) === 0n;

alert(isPower2b(147573952589676412928n));

Худший ответ: (8).toString(2).replace(/0/g, '') == 1;  // true степень двойки
(17).toString(2).replace(/0/g, '') == 1; // false
(32).toString(2).replace(/0/g, '') == 1; // true степень двойки

Поясню, пожалуй. В двоичном представлении чисел, являющихся степенью двойки лишь одна единица. Это и проверяем.
Вопрос: Почему не получается обернуть несколько div в один на тильде?

Лучший ответ: {
  const div = document.createElement("div"); // создать обёрточный div
  div.classList.add("QnA-habr-com"); // добавить ему какой-то класс
  const els = document.querySelectorAll("#rec365427333, #rec365427599"); // выбрать элементы
  const parent = els[0].parentNode; // определить родителя первого из них
  parent.appendChild(div); // вложить обёрточный див в родителя 
  els.forEach((el) => div.appendChild(el)) // перенести в обёртку те два
}Слабое место вашего вопроса в том, что эти ID, вероятно, будут меняться в тильде, и решение перестанет работать. Лучше отбирать элементы как-то иначе. Например, сейчас те два блока, вроде бы, единственные 2 внутри div#allrecords и можно их отбирать как const els = document.querySelectorAll("div#allrecords > div");

Худший ответ: Во-первых, ID первого блока не совпадает (на текущий момент)
#rec218454823 и #rec365427333

Во вторых в какой тег вы хотите обернуть блоки?
$("#rec365427333, #rec365427599").wrapAll('<div/>');
Либо то же самое для однотипных блоков
$('[data-record-type="396"]').wrapAll('<div/>');

Скрипт размещаете под блоками
That's all)
Вопрос: Как адаптировать Windows программу для Linux?

Лучший ответ: Без исходного кода - никак.
Скорее всего, даже с ним никак, если она так жёстко завязана на Windows.

Используйте виртуальную машину с той же XP.

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

Лучший ответ: В Клавах ничего ни придумали нового матрица из столбцов и линеек. 

В случае 108 клавы это 10х11 минимум 32 пиновая микросхема. 

21 2 2 3 2?

Худший ответ: На простых контроллерах типа черная клякса.
Это не всегда простые контроллеры - клякса это вид корпуса для микросхемы.

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

Пациенты умерли от вскрытия? :))
Такое тоже возможно :)
Посмотри внимательно ещё чтобы во всех разъёмах не было грязи и все дорожки с контактами были в порядке.
Вопрос: С какой книги на русском начать учить swift?

Лучший ответ: Надо учить английский, в IT это важнее умения программировать. Без шуток - хотя бы intermediate обязан быть - иначе доступ во многие области закрыт наглухо. У меня есть несколько знакомых, которые много работали на русскоязычный сегмент поначалу, которых увольняли из-за плохого английского, и которые в итоге английский "осилили" и теперь согласны, что на него не надо было забивать в угоду умению писать код.

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

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

Худший ответ: На маршрутизаторе сделайте перехват трафика регистратора (не всякий маршрутизатор умеет). Так сможете определить, какое доменное имя он резолвит перед обновлением. Разработчики прошивок обычно не хардкодят IP-адреса серверов, а используют имена. Так что можно заблокировать на своём DNS. Но даже если этот регистратор ломится сразу по фиксированному адресу, то можно заблокировать этот адрес (или несколько адресов) брандмауэром на маршрутизаторе.

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

Лучший ответ: Только перебор

Худший ответ: Можно попробовать реализовать скрипт в который нужно будет загрузить сид фразы - после чего он сам их переберет и выдаст конкретные результаты:
 Адрес кошелька - баланс.

Буду рад дополнительным вопросам, уточнениям и задачам.
Telegram: @ITStepster
LinkedIn: www.linkedin.com/in/sergei-nilusha-itstepster
Вопрос: Как разрешить доступ к сайту по ip?

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

Если на сервере несколько сайтов, то по IP-адресу сервер не может угадать, какой из этих сайтов нужен. Так что будет открываться всегда один, определённый настройками web-сервера. Или опять же можно настроить, чтобы никакой не открывался.

Худший ответ: держать на одном ип ровно один сайт.
Вопрос: Не открывает код в командной строке (пустота), как исправить?

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

Худший ответ: Sublime Text не сохраняет сам, каждый раз при изменении кода нажимай Ctrl + S
Вопрос: Сложить 3 строки, одна из них это математический знак(+, -, /, *) через js?

Лучший ответ: eval в помощь

Худший ответ: подходящий вариант для меня вышел switch/case

пример решения, если у кого будет похожее:
switch (select) {
   case '+': answer.innerHTML = inputFirst + inputSecond;
   break;
   case '-': answer.innerHTML = inputFirst - inputSecond;
   break;
   case '*': answer.innerHTML = inputFirst * inputSecond;
   break;
   case '/': answer.innerHTML = inputFirst / inputSecond;
   break;
}
Вопрос: Как взять данные из JSON?

Лучший ответ: Сервер на который ты стучишь запрещает кроссдоменые запросы. Если этот сервер ты можешь редактировать то ты можешь выставить в заголовках Access-Control-Allow-Origin: *

Подробнее рекомендую поизучать:
https://developer.mozilla.org/ru/docs/Web/HTTP/CORS

Худший ответ: Тебе английским языком по красному написано: "blocked by CORS". Осталось погуглить эту аббревиатуру.
Вопрос: Новая авторизация на Github по новым правилам, как настроить?

Лучший ответ: Этот вопрос неоднократно поднимался тут. Почему вы не пользуетесь поиском?

Поменялась схема https-авторизации. Чтобы заново авторизоваться, нужно лишь отменить предыдущую авторизацию. И при повторном push ввести полученный на гитхабе «ключ/токен» вместо пароля. Но я бы посоветовал просто авторизоваться через браузер, это проще.

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

Поменялась схема https-авторизации. Чтобы заново авторизоваться, нужно лишь отменить предыдущую авторизацию. И при повторном push ввести полученный на гитхабе «ключ/токен» вместо пароля. Но я бы посоветовал просто авторизоваться через браузер, это проще.
Вопрос: Unity популярнее ue4?

Лучший ответ: Unity популярнее ue4?
Да, также, как и PHP популярнее любого другого ЯП в веб-разработке.
Почему unity в ру сегменте популярне unreal engine?
Потому что в ру-сегменте (да и в принципе в мире) большая часть геймдева - казуальные мобилки, типа три в ряд, либо инди, которому просто не нужны те возможности, которые даёт UE.

Почему мобильные игры чаше делают на unity ?
Потому что большая часть мобильных игр не требует чего-то дико графонистого или вычислительно-сложного.
=> лучше взять более простой юнити, тк это удешевит производство и ускорит выпуск.
+ См предыдущий пункт.

PS:
Наткнулся на курсы от xyz, hyper casual и outblock 2020, в них используется unity да и на ютубе unity чаще мелькает чем ue4.
Емнип, у XYZ есть разные курсы, в том числе с использованием UE4

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

Лучший ответ: Перевести в систему счисления по основанию 26 (или 52) с цифрами [A-Z] (или [A-Za-z]).

Худший ответ: Из простого: создать индексированный массив с необходимыми буквами в количестве 10 штук. Потом строку числа обработать функцией strtr() с двумя аргументами. Типа:
$num = 348;
$abc = array('J','o','h','n','D','i','d','a','c','t');
$res = strtr($num,$abc);
var_dump($res); // string(3) "nDc"
Вопрос: Хочу научиться пользоваться командной строкой Windows? Какие материалы посоветуете?

Лучший ответ: Вот не поверишь, вот прям ради тебя закачал и расшарил https://mfd.sk/euUHLIB46WJRoStELGisFEDH

Вот прям с любовью к знаниям. Вот получай.

Худший ответ: cmd - наихудший способ "войти в it"
используйте powershell
Вопрос: Почему не заходит на сайт по айпи?

Лучший ответ: Нужно добавить заголовок Host, для браузера придется ставить расширение. 
Обычно на одном айпи адресе могут хостится несколько сайтов (от пары до десятка или сотни)
Так называемые виртуальные хосты получают заголовок Host откуда извлекают информацию, к какому сайту пользователь хотел обратиться. Если веб сервер настроен именно так, то по айпи зайти не выйдет или будет выбрасывать на дефолтный сайт (зависит либо от настройки администратором, либо от вебсервера, часто выдает первый по алфавиту, могут быть любые другие варианты)

Худший ответ: Зачем? На одном IP может быть много (оочень много) сайтов и откроется тот, который прописан в качестве дефолта - скорее всего, это будет сайт-заглушка.
Вопрос: Как ограничить CPU для скрипта?

Лучший ответ: упаковать процесс в отдельный слайс cgroups и слайсу навесить ограничения
тогда все порожденные субпроцессы будут иметь ограничения слайса.
https://habr.com/ru/company/redhatrussia/blog/423051/
и куча других подобных

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

Худший ответ: Команда nice, или вежливые процессы
Вопрос: Как настроить девайс 3g+wifi?

Лучший ответ: есть такой девайс
Такой девайс называется "роутер" ("маршрутизатор").
Какая-нибудь из моделей марки Mikrotik с поддержкой 3G может подойти для ваших целей.

Сложность может быть с получением от провайдера белого адреса со стороны 3G. Если никак, то поднимать на этом роутере VPN-клиента (а где будет VPN-сервер - это уже вам решать).

В остальном обычная работа с NAT, легко гуглится, и тысячи ответов на Тостере.

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

Лучший ответ: А мне нравится такое на комплексных числах считать. То же, что и с синусами, но элегантнее.
Вот пример на питоне:
from math import e, pi
f=lambda c, r, n=3, fi0=0: [c+r*e**(1j*(2*pi/n*i+fi0)) for i in range(n)]
Получим функцию f которая может рассчитать точки любого вписанного n-угольника:
>>> f(c=250+250j, r=250)
[(500+250j),
 (375+466.50635094610965j),
 (125.00000000000006+466.5063509461097j),
 250.00000000000003j,
 (124.99999999999989+33.49364905389041j),
 (374.99999999999983+33.49364905389024j)]
А если надо обяательно кортежами, а не комплексными точками. то вот:
>>> [(round(p.real), round(p.imag)) for p in f(c=250+250j, r=250, n=5, fi0=pi/2)]
[(250, 500), (12, 327), (103, 48), (397, 48), (488, 327)]
Тут, заметьте, пятиугольник, причем вершинкой вниз (при оси Y, направленной вниз).

Чтобы было понятно как это работает...
Представим, что центр окружности в нуле координат. Нам нужно 6 точек, смещенных относительно нуля на радиус под нужными углами: 0, 60, 120, 180, 240 и 300 градусов. В формулах мы. конечно используем радианы: pi - это 180 градусов. 
Чтобы повернуть единичный вектор на какой-то угол, нужно его просто домножить на e в степени мнимая единица, умноженная на угол. Поскольку единичный вектор на комплексной плоскости это просто 1, то его даже писать не надо. Просто возводим e в нужную степень и получаем нужный вектор в виде комплексного числа. Осталось его домножить на требуемый радиус (он при этом удлинится: был длиной 1, а станет r) и добавить к нему желаемый центр (тоже в виде комплексного числа, где реальная часть - X,  а мнимая - Y).
Вот и всё!
Красота же?..

Да, забыл сказать, что если нужно повернуть весь n-угольник на какой-то угол, то для этого есть там параметр fi0, который по умолчанию ноль.
c - это координаты центра в комплексной форме. Например если X=30, а Y=40, то c=30+40j.
n - это число вершин.
r - радиус.
И да, в javascript'е нет такого элегантного способа работать с комплексными числами, как в питоне. Но для js есть много библиотек для работы с комплексными числами. Будет не так компактно и красиво, как на питоне, но в целом всё точно так же в плане математики.

UPD: Исправил функцию. Там скобочек не хватало, поэтому поворот на fi0 работал неверно. Теперь все как надо.

Худший ответ: ну можно сделать так:
V_ix = 250 + 250*sin (2*i*PI/n)
V_iy = 250 + 250*cos (2*i*PI/n),
где V_ix, V_iy - координаты икс, игрек у i-той вершины (всего n вершин)
n - количество вершин

Если что-то не понятно, то спрашивай
Вопрос: Куда мне развиваться в веб программировании?

Лучший ответ: Что мне еще надо знать чтобы уже в 14 лет делать сайты на заказ? Самое главное, что надо знать - у тебя НЕ ПОЛУЧИТСЯ делать сайты на заказ. 
С желанием делать сайты на заказ ты опоздал примерно лет на 20.
Это тогда можно было сделать на коленке примитивный сайт и это было "вау".
Сегодня сайты на заказ пилятся командами. Т.е. веб-студиями. Специалистами с РАЗНОЙ компетенцией и зоной ответственности. 
В 2023 году из уст молодого человека фраза "делать сайты на заказ" звучит также абсурдно, как "построить в одиночку дом".

И вообще, тебе еще рано думать о сайтах.

Худший ответ: Что мне еще надо знать чтобы уже в 14 лет делать сайты на заказ?А не на заказ пробовали что-то серьезное реализовать? Чего не хватило?

По уму, если именно на заказ - вордпресс и вперед. Дешево и сердито. Если что-то сложное и с уникальным функционалом - фреймворки, Джанго под пайтон или лару под пых... На фронтенд соответственно вуй или реакт. Это стандартный набро фулстака на сегодня.
Вопрос: Как NTFS удаётся хранить файлы размером больше 4Gb?

Лучший ответ: Если операционная система 32-битная, то это накладывает ограничение лишь на оперативную память, а не на жёсткий диск или файлы.

Загрузить 4-гигабайтный файл в память она не сможет, но это и не требуется ни для копирования файла, ни для работы с ним (по частям).

Худший ответ: Тут подробно
https://docs.microsoft.com/ru-ru/windows-server/st...
Вопрос: Как скачивать музыку с youtube и с любых других сайтов из веб браузера?

Лучший ответ: Плагин. Download helper
Safefromnet
youtube-dl
Итд

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

Лучший ответ: Генератор случайных чисел и так работает на основе некоего стартового значения (seed). Так что если вы ему скормите ID статьи, он ван наштампует всегда одинаковый, но случайный набор чисел.

Худший ответ: Да раздели  1000000 на это id и бегите по цифрам после запятой. Тут же важно получить просто условно бесконечную, но одинаковую последовательность цифр
Вопрос: Как можно практиковаться в Python?

Лучший ответ: 1. codewars - оно может помочь укрепить некие знания об основах
2. Нужно определиться с направлением: сайты, боты, парсинг, машинное обучение и тд.
3. Изучить библиотеки выбранного направления.
4. Познать ООП
5. Это довольно странно, что "нету идей". Т.к. обычно, когда скучно, можно вообще за любую идею взяться.

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

Лучший ответ: Для диска хдд в целом вредно любое включение выключение

Худший ответ: Вредно, если делали это руками, а не через средства ОС, которые безопасно отключают диск.
Вопрос: Как соединить модуль time с модулем telebot?

Лучший ответ: Как вариант, написать кастомный фильтр

from datetime import datetime

works_from = datetime.strptime('00:00','%H:%M')
works_to = datetime.strptime('15:00','%H:%M')

class TimeBlock(telebot.custom_filters.SimpleCustomFilter):
    key='time_block'
    @staticmethod
    def check(message: telebot.types.Message):
        current_time = datetime.strptime(datetime.fromtimestamp(message.date).strftime('%H:%M'), '%H:%M')
        return current_time > works_from and current_time < works_to

@bot.message_handler(time_block=True, content_types=['text'])
def send_text(message):
    bot.send_message(message.chat.id, 'Hello, world!')

bot.add_custom_filter(TimeBlock())

Вроде как-то так. Преобразование времени не оч по-моему, но всё равно

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

Лучший ответ: набери 
ls /sbin
и посмотри список "приложений".
Можно также ls /bin и ls /usr/bin

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

Лучший ответ: А может прибыль будет на столько мала что не окупит затраченное время на создание данного "шедевра" :D?
Будет очень мала. 1 копейку за год получишь в лучшем случае
Вопрос это вообще принесет прибыль?
Нет
За это могу забанить?
Могут, если узнают

Худший ответ: Ищите слоновые фермы. Люди уже давно собирают под сотню телефонов и накручивают рекламу, спамят и ботят. Получают примерно 1,5 тысячи в месяц но сейчас все меньше прибыли приносит
Вопрос: Windows ноутбука Lenovo G580 не видит SSD установленный вместо CD-привода, в чем может быть проблема?

Лучший ответ: Быстрей всего не инициализирован.
Инициализируй через "Управление дисками"

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

Лучший ответ: До 15 точек можно полным перебором сделать. Вам надо перебрать все разбиения 3n точек на тройки. Таких разбиений (3n)!/(3!)^n/n! для n=5 - это чуть больше миллиона. 

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

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

Какое-то геометрическое решение в голову что-то не приходит.

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

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

Смотрите настройки самого устройства, чтобы отключить второй MAC, либо просто смиритесь и не пользуйтесь вторым адресом, ведь он по большому счёту никому не мешает.

Худший ответ: Она случайно ен подключена кабелем и по вифи?)
Вопрос: Хочу использовать компьютер одновременно как NAS так и Свитч вопрос в том возможно ли это?

Лучший ответ: Прежде всего, неадекватный выбор операционной системы для NAS.spoilerWindows - для игр. Linux - для работы с сетью. *BSD - маньякам для работы с сетью.Потом неадекватно использовать такое железо в роли свитча. Наверняка, в качестве роутера сейчас используется какая-нибудь "мыльница". В то время как можно на этом железе построить шикарнейший роутер + NAS на Linux.
spoilerКогда вам нужно охранять дом, то вы заводите большую собаку. Хотя у вас уже были 5 кошек ("что-то мы зря их кормим, пусть пользу приносят" (c)) и можно было найти специального тренера, который бы научил кошек злобно лаять и кидаться на незнакомых людей. :)А свитч стоит копейки, и выполняет свои функции лучше, чем программный велосипед, потому что там используется специальный чип, идеально заточенный только под функции свитча.
spoilerТо, что вы пытаетесь сделать - теоретически это сделать можно, но это бессмысленная хрень. Так что учитывайте:
1) люди не любят делать бессмысленную хрень (хм... ну-у... да... на самом деле любят, но речь не об этом), вам будет трудно найти человека, который делал ту же самую бессмысленную хрень и смог бы дать не просто теоретические рекомендации, а дать конкретные инструкции на основе личного опыта делания именно этой бессмысленной хрени.
2) люди не любят тратить время на то, чтобы помочь кому-то делать бессмысленную хрень; лучше потратить время, чтобы помочь кому-то в чём-то полезном, ну или хотя бы потратить время, чтобы отговорить кого-то от делания бессмысленной хрени.

Худший ответ: Сеть без подключения к Интернету. Что это? Я могу предположить что Microsoft наличие интернета определяет по доступности какого-то интернет ресурса. Статус - вполне ожидаемый ведь у нас действительно там нет интернета. Мы-же делаем свитч?

По поводу использования Windows в роли NAS/switch. Мы живем в эпоху челленджей. Когда люди например целый день швыряют карандаш в бутылку и снимают на телефон успешные попадания. Я думаю что эта задача тоже - безсмысленный челледж. 

Можно ли вообще это сделать? Я думаю можно.

Для Linux/BSD сущесвтуют мануалы по конфигурации проксей, мостов и натов. Можно их брать и консольными командами идти к успеху. Для Windows десктовов я таких манов не знаю. Ну... может быть есть визуальные инструкции из серии - зайди в панель управления и нажми на Сеть и т.д.  Но проблема в том что они датируются эпохой Windows-XP и безнадежно устарели. А дизайн Windows от версии к версии меняется так что сложно потом где-то искать нужный батон. Куда его производитель запихнул. Это знают инженеры по ремонту железа. Которые домохозяйкам ставят антивирусы и интернет. Но они NAS/router не делают.  Невыгодно и хлопотно.

Кроме того в эпоху экономии электроэнергии нам не очень выгодно держать включенный десктоп. Шумит. Тепловыделяет. Вибрации лишние. Для дома и для семьи лучше держать тихую технику. Чтоб ночью спать спокойно. 

А если делать медиацентр - то можно в обычный роутер tp-link включить portable-drive и пошарить медиа-сервер.  И можно фильмы смотреть.