Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Mikrotik: пропадает пинг до шлюза по кабелю. В чем может быть причина?

Лучший ответ:
Посоветуйте пожалуйста куда копатьКопайте в сторону конфликта IP-адресов (выдаваемых по DHCP).
Например, когда 192.168.1.100 перестанет пинговать шлюз, то попробуйте со шлюза пинговать 192.168.1.100.
И с разных других компьютеров пинговать 192.168.1.100.
И если такой пинг пройдёт, то отключите (физически) 192.168.1.100 от сети и снова проверьте пинги до него с разных компов.
Вдруг обнаружите, что кто-то по этому адресу отвечает, даже когда комп отключен от сети.

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

Лучший ответ:
Взять 1 батарейку типа ААА и кратковременно подключить к динамику. Динамик либо сдвинет диффузор на вас или от вас. 
Сдвигает на вас - плюс батарейки подключён к условному «плюсу» динамика. 
Ну а дальше маркируйте провода и подключайте как вам надо.

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

Лучший ответ:
Форматируй полученную строку. 
s1 = bin(3) #0b11
s2 = s1[2:] #11
s3 = '{0:>04s}'.format(s2) #0011
print(s3)
# ну или в одну строку
print('{0:>04s}'.format(bin(3)[2:]))

Худший ответ:
zfill спасет молодого программиста

>>> bin(777)[2:].zfill(22)
'0000000000001100001001'

хотя я бы просто использовал format

>>> format(777, '022b')
'0000000000001100001001'
Вопрос: Расчетная мощность системы под блок питания. Как правильно высчитать?

Лучший ответ:
Считаем:
Видеокарта - 220 Вт
ЦП - 65 Вт
Мать + винт + там все остальное  - 50 Ват
Итого 220 + 65 + 50 = 335 Вт
Блок питания для надежной работы нужен с коэффициентом 1,5 
335 * 1,5  = 500 Вт. 
Это то что нам надо.

Теперь БП:
Простые блоки питания типа указанного можем считать 50% от заявленной мощности, то есть  
Be Quiet System Power 9 на 700watt, - Это 350 честных Вт. 
(вот почему уважаемый продавец сказал что этот БП НЕ подойдет.)
Чтобы все было красиво нужен скорее всего БП "+80 " Голд, бронза или там что есть, с мощностью 650-750 Вт 
Или обычный взять на 1000Вт  но скорее всего по деньгам Голд будет немного дороже НО зато все будет работать долго и красиво.
P.S. Учитывая потребляемую мощность видеокарты стоит продумать вентиляцию корпуса так как эти 220 ват надо сначала туда подать через БП а потом тепло в том же объеме из корпуса забрать. Гудеть это хозяйство будет прилично.

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

Лучший ответ:
Вернуться в нормальное состояние "git checkout master"
Удалить последний (крайний) коммит "git reset --hard HEAD~1"
Удалить в середине "git rebase -i" а дальше читайте мануалы что там прописывать.
Ну и соответственно после манипуляций "git push -f"

Худший ответ:
Коммиты удалить нельзя, но можно переключить указатель ветки на один шаг назад
git reset --hard HEAD~1
Тогда последующий коммит «исчезнет» из истории.
Но на скрине вы вообще не находитесь ни в какой ветке. Не забудьте создать ветку в этом месте, чтобы не потерять работу.
Вопрос: При запуске вылетает непонятная мне ошибка, что это?

Лучший ответ:
Как пакет telebot ставил? pip install telebot?
Если да, поздравляю, ты поставил не тот пакет. Правильный пакет называется pyTelegramBotAPI, хотя после установки подключается тоже как import telebot.

Ну и обязательное замечание: не начинай изучать питон с ботов. Набьешь уйму шишек.

Худший ответ:
Здравствуйте затрудняюсь опознать ошибку, при запуске вылетает непонятная мне ошибка, что это?
Я как специалист могу сказать что все дело в том что:
ImportError: cannot import name 'InlineKeyboardMarkup' from 'telebot'
рад помочь, обращайся!

Ну и пробелы и кириллица в путях...фууу...
Вопрос: Какие есть графические фреймворки для С#?

Лучший ответ:
Если тебя интересует работа напрямую с графическим API, то вот:
Только Vulkan: Vortice.Vulkan
Только DirectX: SharpDX (для каждой версии dx идёт отдельный пакет)
OpenGL/Vulkan/DX в одном: Silk.NET

Худший ответ:
Но она как я понял все мертвы.
А с чего там должна теплится жизнь, когда последний раз выходило обнова под спецификации под DX9-10. Обёртки под вызовы написаны и там ничего не меняется.
Вопрос: Как работает перенаправление вывода скрипта python?

Лучший ответ:
Или вызывайте вот так:
print(subprocess.getoutput('./1.py'))
Так вы дождётесь полного выхлопа.
Но если выхлопа много, то лучше запускать иначе, чтобы получить выходной пайп и вычитывая его в цикле слать всё на stdout __main__

UPD: Дополню ответ, а то часть оказалась в комментариях.

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

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

Худший ответ:
Скорее всего, проблема в работе с одним файлом через два дескриптора (один - stdout твоего скрипта, второй - stdout вызываемого). Попробуй принудительно сбрасывать данные в файл:
print('Пытаемся запустить файл 1:', flush=True)
Вопрос: Привет люди. Как вывести одиночное значение из массива?

Лучший ответ:
if ($id = $_GET["cat_id"]) // здесь ошибка! 
// Должно быть 
if ($id == $_GET["cat_id"])

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

Лучший ответ:
Ладно
a = 'af' Инициализируем ПЕРВУЮ переменную А = АФ  идентиф=1
b = 'a' Инициализируем ВТОРУЮ переменную Б= А     идентиф=2
b += 'f' Инициализируем ТРЕТЬЮ переменную Б = А + Ф  идентиф=3
# А все почему? Строка - НЕИЗМЕНЯЕМЫЙ ТИП
print(a is b)
>>> False
a = 5
b = 2
b += 3
# Тоже самое но, в питоне числа до 255 КЕШИРУЮТСЯ и 50 is 50 и 255 is 255
print(a is b)
>>> True

А тут,
a = 'af'       #Инициализируем ПЕРВУЮ (ОНА ИДЕТ В КЕШ) А = АФ
b = 'a' + 'f'  #Инициализируем ВТОРУЮ интерпретатор не тупой и Б = ТОЖЕ АФ (а так как аф есть в кеше Б получает ссылку на ту же память)

print(a is b)
>>> True

Где читать? Гугл-
Изменяемые неизменяемые типы,

Худший ответ:
Потому что is это сравнение на уровне "а тот ли это самый объект".
Понятно, что эти строки - разные объекты, поэтому сравнивать нужно через ==
a = 'af'
b = 'a'
b += 'f'
print (a is b)
>>> False
print (a == b)
>>> True

Иногда питон может экономить память и если видит что переменной задается тоже самое значение изначально, он использует уже существующий объект, что может вводить тебя иногда в заблуждение.
Но операция b += 'f' не может изменить объект b, поэтому тут создается новый, другой объект.
Вопрос: Как исправить ошибку компилятора?

Лучший ответ:
Нет. Ошибка оператора. С++ компилирутется g++, а не gcc

Худший ответ:
Ого какая древность!

#include <graphics.h> // с малой буквы и не в кавычках
#include <stdio.h>

Для справки:
https://erainnovator.com/how-to-include-graphics-h...
https://home.cs.colorado.edu/~main/bgi/dev-c++/
https://verytoolz.com/blog/a31f7a7730/
Вопрос: Порекомендуйте подходящую базу данных?

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

Партицируйте прямо по суткам.

Убирайте транзакции, нафиг вам тут innodb когда хватит myisam, оно на запись быстрее, у вас база write once read ... тоже once.

У вас там база данных упирается случайно не в работу с диском? в облаке можно взять несколько дисков, они будут независимыми, раскидай по ним таблицы (myisam штатно поддерживает симлинки), что может дать прирост в скорости в разы только за счет этого, даже если они ssd, например отделить хранение индексов от данных или отделить старые данные от сегодняшних.

На время обработки аналитики можно потюнить файловую систему и отключить flush для файлов таблиц (например ext4 data writeback и можно отключить журнал) - сильно ускоряет именно запись, особенно если много ram, это включает большой риск потери/порчи данных при сбросе ос но с другой стороны вероятность этого очень мала и как я понимаю, данные в базу и так пишутся из какого то другого хранилища, т.е. при проблеме с сервером просто перезапускается обработка за текущие сутки.

Уберите индексы на запись, все, сначала пусть идет вставка данных без их индексации, затем создаете индекс (это на порядок быстрее) и уже потом строите аналитику.

Общая аналитика должна не работать с самими данными, а с их посуточной выжимкой (возможно в результате и хранить их не придется) считай это самодельные индексы. Грубо говоря если в запросе на аналитику стоит count,max,min,.. то достаточно сложить посуточные значения и для глобальных считать уже по ним... само собой если запросы с условиями и сложными группировками, то надо думать но все решаемо.. грубый пример нужно считать агрегацию по часам, вот в индексы и пиши суточные значения по часам, а если надо постранично то для каждой страницы для каждых суток считаешь, потом агрегируешь уже по этим результатам.

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

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

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

Лучший ответ:
Привет!
https://jsfiddle.net/053xsbv6/ 

С поддержкой свойств можете ознакомиться здесь: https://caniuse.com/

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

Худший ответ:
если на поддержку пофиг : используем filter:blur
если нет - можно поизвращаться через SVG фильтр feGaussianBlur
Вопрос: Как сделать компилятор СИ на джаве?

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

Нужно понимать ассемблер, иметь знания по теории компиляторов (есть много книг), теории языков.

Если же вам надо просто прикрутить компиляцию к вашему редактору, то, как многие другие IDE, вам надо будет лишь запускать сторонний компилятор (будь то gcc, clang, visual studio или что-то другое).

У всех них есть консольное приложение которому можно передать файлы в качестве аргументов в коммандной строке. Вам остается лишь разобраться, как запускать приложения на Java.

Худший ответ:
Вам не нужно писать свой компилятор на жаве.
Вы можете притащить с собой готовый - хоть gcc, хоть tcc, хоть clang.
https://stackoverflow.com/questions/11852187/how-t...

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

Лучший ответ:
24 в одноканальном режиме лучше чем 8 в одноканальном) Ставьте. Хуже не будет

Худший ответ:
С такой работой, как указана, разницу между одно- двух-канальной вообще не будет заметно.
Вопрос: Перемещение файла в ProgramFilesx86 (read-only)?

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

Худший ответ:
Запускайте свой софт с повышенными привилегиями (правой кнопой и там запустить от имени админа) и будет вам счастье. Простым пользователям туда обычно писать не дают, даже если это пользователь с админскими правами.
Вопрос: В какие страны ЕС можно переехать из России, будучи узкоспециализированным фронтенд-разработчиком без профильного диплома о высшем образовании?

Лучший ответ:
Получить рабочую визу не имея диплома можно в странах:
Германия, Англия, Чехия, Нидерланды, Финляндия 

Вне ЕС:
Канада, Япония

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

Лучший ответ:
Потому что никто никогда не читает документацию. 
В которой написано, например - какой массив возвращает fetchAll(). И можно ли из него получить что-то в виде $user_data['id'].
А ещё в мануале написано, какая на самом деле функция подойдёт в данном случае.

Также, там написано, что делает функция fetchColumn(). Которая, во-первых, делает совсем не то что думает автор кода, а во-вторых, даже если бы и делала, то всё равно здесь никаким боком не нужна.

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

Худший ответ:
После fetchColumn курсор переходит на следующую строку результирующего набора и fetchAll ничего не получает.
Вопрос: Будут ли проблемы с трудоустройством в IT если косить по психушке?

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

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

Лучший ответ:
Сам proxmox рекомендует делать так
If you want to run application containers, for example, Docker images, it is best to run them inside a Proxmox Qemu VM.


https://pve.proxmox.com/pve-docs/chapter-pve-faq.html

Худший ответ:
Не надо этого делать. Кроме Proxmox на сервере ничего не должно быть. Максимум DHCP сервер.
Вопрос: Можно ли в Linux делегировать права на создание пользователей?

Лучший ответ:
Можно добавить утилиту в sudoers, тогда он будет писать sudo useradd и пароль не надо будет вводить. Но тут уже вопрос безопасности, в такой ситуации пользователь сможет добавить пользователя с правами рута, перелогиниться в него и делать что хочет.

Худший ответ:
Можно сделать алиас useradd > sudo useradd и выдать права на судо без пароля.
Вопрос: Как изменить разрешение в virtualBox до установки ОС?

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

Худший ответ:
Попробуйте к ядру в загрузчике добавить video=1280x1024, иногда графика потом это разрешение подхватывает
Вопрос: Как защититься от авторизации ботов?

Лучший ответ:
Раз это именно авторизация то отказаться от sms. Сделать подтверждение почтой или в мессенджерах. Или подтверждение по OTP.
Другой вариант, если аудитория конкретной страны то можно:
1 ограничить доступ по IP подсетей страны. Т.е. доступ только для страны
2 ввести проверку введённых номеров, по коду оператора
3 ввести проверку введённых номеров по наличию в твоей БД, у тебя же именно авторизация а не регистрация
4 ввести лимит по запросам до api с IP адреса обратившегося
5 усложнить обращение к апи путем введения временного ключа, ключ уникальный для каждого клиента. Видишь что с одним ключем много обращений то банишь юзверя.

Проще уйти на OTP\почту\мессенджеры.

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

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

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

Лучший ответ:
То и имеется что система восстанавливает состояние свое или документа на определенном состоянии. 
Прочитайте вот этот перевод
https://translate.google.com/?sl=auto&tl=ru&text=p...

Худший ответ:
В 99% случаев имеется в виду, что система сохраняет своё состояние на диск, и после перезагрузки состояние потеряно не будет.

В остальном 1% надо смотреть на контекст и уточнять у того, кто это написал или сказал
Вопрос: Как сделать фильтрацию сообщений?

Лучший ответ:
1. Читаешь документацию discord.py насчёт события on_message()
2. Читаешь документацию насчёт объекта Message и его свойств, в частности channel и его id.
3. Читаешь документацию насчёт метода delete() у объекта Message.
4. Комбинируешь полученные знания в одну программу.

Документация тут.

Худший ответ:
Написать бота. У бота в событии on_message проверять первый символ сообщения и если он не "!" - удалять сообщение
prefix = "!"
@bot.event
async def on_message(message):
    #  проверки на то, что сообщение в нужном канале, если это нужно
    # if message.channel == {id канала}
    if message.content.startswith(prefix):
        await bot.process_commands(message)
    else:
        await message.delete()
Вопрос: Как отслеживать смену значений в объекте?

Лучший ответ:
Заворачиваете свой объект в Proxy:

const obj = {
  a: 69,
  b: 187,
  c: 666,
};
    
const proxy = new Proxy(obj, {
  set(target, key, val) {
    console.log(`${key} changed from ${target[key]} to ${val}`);
    target[key] = val;
    return true;
  },
});
Дальше вместо исходного объекта работаете с экземпляром Proxy.

Худший ответ:
const obj = { name: 'Boris', age: 5};

// переназначить свойство с геттерами и сеттерами
// ниже очччень сокращённый пример
Object.defineProperty(obj, "name", {
  set(newName) {
    console.log("Name changed to", newName);
  }
});

// проверяем:
obj.name = "Toster"; // в консоль выведет "Name changed to Toster"на деле нужно сохранить начальное значение, где-то хранить значение свойства name, и добавить геттер. Т.к. вероятно, не единственное свойство захочется так подменить, лучше будет воспользоваться «оптовым» Object.defineProperties() или в цикле по свойствам объекта каждое сделать реактивным интерактивным.

Подробнее см. примеры для Object.defineProperty()
Вопрос: 1 розетка RJ45, а нужно подключить 2 устройства. Как?

Лучший ответ:
самый дешевый свитч купите и будт вам счастье.

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

Лучший ответ:
А входящие нужно тоже разрешать все порты одной командой и со state RELATED, ESTABLISHED

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

Лучший ответ:
Нанять сисадмина
Поднять домен
Удаленный доступ можно реализовать через MeshCentral например

Блокировка сайтов осуществляется через proxy обычно

Есть общий "комбайн" на линукс, Zentyal. Возможно он Вам подойдет

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

Лучший ответ:
падает скорей все при закрытие тела запроса (которого нет при ошибке), 

func GetRequest(client *http.Client, method, url string) (body []byte, err error) {
	// request
	req, err := http.NewRequest(method, url, nil)
	if err != nil {
		log.Println("Error Occurred.", err)
		return
	}
	response, err := client.Do(req)
	if err != nil {
		log.Println("Error sending request to API endpoint.", err)
		return
	}
	// Close the connection to reuse it
	defer response.Body.Close()

	body, err = ioutil.ReadAll(response.Body)
return
}

Худший ответ:
падает скорей все при закрытие тела запроса (которого нет при ошибке), 

func GetRequest(client *http.Client, method, url string) (body []byte, err error) {
	// request
	req, err := http.NewRequest(method, url, nil)
	if err != nil {
		log.Println("Error Occurred.", err)
		return
	}
	response, err := client.Do(req)
	if err != nil {
		log.Println("Error sending request to API endpoint.", err)
		return
	}
	// Close the connection to reuse it
	defer response.Body.Close()

	body, err = ioutil.ReadAll(response.Body)
return
}
Вопрос: Что лучше Ubuntu или Mint?

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

Худший ответ:
На ноутбук оба хуже. Ставьте винду, а линукс если нужен - в виртуалку/WSL.
Вопрос: Как составить запрос на добавление данных в таблицу или обновление двух и более столбцов?

Лучший ответ:
create table info (
  ID int generated always as identity, 
  FirstName text, 
  LastName text, 
  Year int2, 
  Mounth int2,
  primary key (FirstName, LastName)
);

INSERT INTO info (FirstName, LastName, Year, Mounth) VALUES ('Дима', 'Скрипов', 1999, 12)
ON CONFLICT (FirstName, LastName) DO UPDATE SET 
	Year = excluded.Year,
	Mounth = excluded.Mounth;

SQL editor online

Худший ответ:
UPDATE info
SET Year=2000, Mounth=1
WHERE FirstName='Дима' AND LastName = 'Скрипов'

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

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

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

В наличии 6 телефонов по типу d link dph 120se. Максимальное потребление 4вт.
Учитываем по классу 2, это 7 ватт на порт.

Две точки доступа Unifi ap ac lite,макс.потреб 6вт.
Эти по классу 3, т.е. 15.4 ватт на порт.

Итого нужен бюджет 6*7+2*15,4=73 ватта.

Худший ответ:
Возьми два 8-портовых коммутатора, подключи и хватит с головой и резерв и запас