Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Могу ли установить Windows 10 Pro Esd на компьютеры для школы?

Лучший ответ:
Могу ли установить Windows 10 Pro Esd на компьютеры для школы?Можете. Смотрите как удобнее, можно education взять. Вообще такие вопросы задают представителю майкрософт, у которого покупать будете.

Посмотрев в интернете, ключи электронные стоят от 500 до 5к рублей, коробочные версии от 12к. Почему такой разбег в цене и зачем переплачивать за более дорогую версию? Вы путаете ключи и лицензии.

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

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

Лучший ответ:
и что непонятно в require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.?

лан, переведу: не хватает пхп-модуля DOM.

Худший ответ:
и что непонятно в require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.?

лан, переведу: не хватает пхп-модуля DOM.
Вопрос: Какая архитектура приложения лучше?

Лучший ответ:
Монолит (предположу, что вы описываете inertia js) лучше-удобнее для работы fullstack-разработчика в одиночку,  если отдельные люди на фронте и бэке, то монолитная структура проекта превращает их работу в ад (по личному опыту говорю).

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

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

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

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

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

По моему опыту - даже у нас, программистов, тут кромешный хаос, а ведь все последовательно и понятно. Там же вообще "нейронная сеть правит бал" (читай: мы выкатили, оно пошло, потом графики посмотрим, как работает? - "ну работает же!")
Вопрос: Как можно защититься от подобных ситуаций?

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

Худший ответ:
У Google есть форма, через которую можно жаловаться на подобные сайты. При большом количестве жалоб, сайт удаляют из выдачи, как это было с qaru.site.
Вопрос: Почему после подключения внешнего монитора к ноутбуку приложения стали работать с использованием дискретной видеокарты Nvidia?

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

Худший ответ:
Попробуйте так



Если не поможет, то в настройках биоса выставьте использование интергрированной графики.
Вопрос: Как функция index scan в postgresql понимает тип индекса?

Лучший ответ:
Весь раздел https://www.postgresql.org/docs/current/internals.html
за исключением разве что System Catalogs

Узел Index Scan в плане запроса - это далеко не одна функция, а целый отдельный src/backend/executor/nodeIndexscan.c
Ну и кучка поддерживающих конструкций, чтобы от этого был толк. Большая кучка конструкций. Очень.

 Как функция index scan в postgresql понимает тип индекса?
А ему и не надо.
Если планировщик выбрал index scan - значит этот index access method предоставляет совместимый интерфейс. Далее index scan согласно контракту index access method дёргает методы этого конкретного AM, и уже сам AM решает, где у него что лежит и как доставать требуемые TID по заданным условиям.

и как именно Postgre понимает, какую функцию следует применять
postgresql или postgres. Базы postgre не существует.
А муками выбора о плане запроса страдает планировщик, работающий перед executor'ом. И там настоящая чёрная магия (и костыли)

Худший ответ:
Где можно почитать подробнее про то, как конкретно работает эта функция под капотом
https://github.com/postgres/postgres
Вопрос: Как правильно исопльзовать exception в api и нужно ли вообще?

Лучший ответ:
и как вы на клиенте собрались ловить эксепшены на сервере?

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

Худший ответ:
можешь не изобретать велосипед и использовать swagger
Вопрос: Как обновить docker-compose на prod-сервере, ничего не поломав?

Лучший ответ:
Ответ простой - обновляют docker-compose.
Варианта два: 
1) если прод. сервер один, то просят время на downtime, обновляют, проверяют, возвращают в продакшен
2) если серверов несколько, то исключают один сервер из сервиса, обновляют, проверяют, подключают заново, и т.д. со следующими

Худший ответ:
Ответ простой - обновляют docker-compose.
Варианта два: 
1) если прод. сервер один, то просят время на downtime, обновляют, проверяют, возвращают в продакшен
2) если серверов несколько, то исключают один сервер из сервиса, обновляют, проверяют, подключают заново, и т.д. со следующими
Вопрос: Разработка грузовой машинки. Можно ли соединить 2 сервопривода по 35 кг/см воедино, чтобы в итоге вышло 70 кг/см?

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

Худший ответ:
какая разница какого они размера и веса? питание подается отдельно, тебе нужно что-то вроде wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%...
Вопрос: Aiogram: Как сохранить введенные данные пользователя?

Лучший ответ:
Ну, а шаги то по State? Если да, то это await state.update_data(name='Вячеслав'). На втором шаге записываешь уже фамилию, или что там тебе угодно.

В конце извлекаешь содержимое:
n = await state.get_data()
name = n['name']

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

А вот где хранить данные - вопрос реализации. Можно сделать словарь вида "ID пользователя - набор данных", можно сделать БД. Принцип это не меняет.
Вопрос: Как остановить выполнение программы в supervisor?

Лучший ответ:
kill -9 <PID процесса>

Худший ответ:
Есть такая проблемка, начиная с 20.04.
Сам Supervisor, своими средствами плохо управляет процессами в плане стоп, ребут, ремув, а то и вообще не управляет.
При чем в 18.04 этой проблемы нет вообще и всё работает Гут!

И некоторыми программ всё таки управляет, а некоторыми нет.
У меня так именно.

Александр Карабанов вам написал реальный выход из ситуации, я так тоже делаю.
Надеюсь, как найти PID процесса знаете...
Вопрос: Как сделать выборку строк из одного txt файла и записать в другой txt на Python?

Лучший ответ:
Как-то так
import re

def read_file():
    with open('1.txt','r') as file:
        for line in file:
            f = re.findall(r"^(\w+?)\s", line)
            if f:
                yield ''.join(f)


def main():
    with open('2.txt','w') as file:
        for i in read_file():
            print(i, file=file)               

if __name__ == "__main__":
    main()


Худший ответ:
Либо так:
from re import findall
open('2.txt', 'w').write('\n'.join([''.join(findall(r"^(\w+?)\s", line)) for line in open('1.txt').read().split('\n') if findall(r"^(\w+?)\s", line)]))
Либо так:
from re import findall
list_=[]
for line in open('1.txt').read().split('\n'):
    symbols = findall(r"^(\w+?)\s", line)
    list_.append(''.join(symbols)) if symbols else None
open('2.txt', 'w').write('\n'.join(list_))
Вопрос: Синтаксис find_element в Selenium 4?

Лучший ответ:
https://www.selenium.dev/documentation/getting_sta...

До

driver.findElementsByClassName("className");
driver.findElementsByCssSelector(".className");
driver.findElementsById("elementId");
driver.findElementsByLinkText("linkText");
driver.findElementsByName("elementName");
driver.findElementsByPartialLinkText("partialText");
driver.findElementsByTagName("elementTagName");
driver.findElementsByXPath("xPath");
После

driver.findElements(By.className("className"));
driver.findElements(By.cssSelector(".className"));
driver.findElements(By.id("elementId"));
driver.findElements(By.linkText("linkText"));
driver.findElements(By.name("elementName"));
driver.findElements(By.partialLinkText("partialText"));
driver.findElements(By.tagName("elementTagName"));
driver.findElements(By.xpath("xPath"));

Пример на Java, в Python аналогично

By находится здесь

from selenium.webdriver.common.by import By
driver.find_element(By.XPATH, xpath)

Худший ответ:
Как было, так и осталось все. Метод принимает только два параметра - By и поисковую строку, там подсвечивать то нечего

from selenium.webdriver.common.by import By
driver.find_element(By.XPATH, '//button[text()="Some text"]')

https://selenium-python.readthedocs.io/locating-el...
https://www.selenium.dev/documentation/webdriver/l...
Вопрос: Как работать с таким json?

Лучший ответ:
Ну, тут можешь итерировать все элементы в json и если pl == "Город / Район", то и работать с этим элементом дальше.

for el in jsn:
    if el['pl'] == 'Город / Район':
        print(e)

Худший ответ:
Это не json )
Но если хочется получить данные - то например так по ключу 'vl': 'Гомель':
next(filter(lambda x: x['vl'] == 'Гомель', a))
# {'pl': 'Город / Район', 'vl': 'Гомель', 'p': 'area', 'v': '5'}
где в а - ваша структура
Вопрос: Как разрешить eslint не выдавать ошибку на не использованой функции?

Лучший ответ:
Для того чтобы проигнорировать такое предупреждение один раз, нужно добавить специальный комментарий над строкой с объявлением функции:
// eslint-disable-next-line no-unused-vars
function unused() {}
Описание более продвинутой регулировки правил находится тут.

Худший ответ:
Можно воспользоваться комментарием, вида:
Для строки
// eslint-disable-line no-unused-vars
... или ...
// eslint-disable-next-line no-unused-vars
или для блока:
/* eslint-disable no-unused-vars */
...
/* eslint-enable no-unused-vars */
Вопрос: Python 3.8 как задать строку с кириллицей?

Лучший ответ:
Тебе просто надо сохранить файл в нормальной Utf-8 кодировке, а не в 1251

Худший ответ:
Задай кодировку файла перед импортами:
# -*- coding: utf-8 -*-
Вопрос: Как получить новый объект с посчитанными суммами?

Лучший ответ:
const out = items.reduce((acc, {id, price}) => {
  const key = obj[id]
  if (key) { // проверяем что элемент с таким id нас вообще интересует
    if (acc[key]) { // если он встречался ранее, то добавляем к текущему значению
      acc[key] += price
    } else { // иначе запоминаем с текущей ценой
      acc[key] = price
    }
    acc.total += price // и всегда добавляем к total
  }
  return acc
}, { total: 0 })

Худший ответ:
Наскоро, так:
const output = Object.fromEntries(Object.values(obj).map(name => [name, 0]));

items.forEach(({ id, price }) => {
  if (!Object.hasOwn(obj, id)) return;
  output[obj[id]] += price;
});

output.total = Object.values(output).reduce((acc, c) => acc + c);
// { first: 80000, second: 80000, total: 160000 }
Вопрос: У меня несколько ошибок «was not declared in this scope» в коде C++, что делать?

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

И так по каждой ошибке от компилятора в вашем вопросе. Смотрите на какое имя он ругается и где эта функция/переменная определена.

Худший ответ:
У вас stopServerRunning не определена выше connector().
Вопрос: Возможно ли логивать изменения файлов через sftp?

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

Худший ответ:
Я видел пакет iwatch. Кажется пытался где-то его применить. Он слушает слишком много событий. Там буквально каждый чих в файловую систему будь то просмотр директорий или атрибутов вызывает шквал событий и их надо грамотно буферизировать и фильтровать.

В идеале вы должны поставить свой ФТП-root под версионный контроль. Например под git. И делать чисто технический коммит на каждое событие изменения файла. 

Проблема в том что в такой много-пользовательской среде как ФТП трудно выделить атомарную часть изменения чтобы обозвать ее коммитом. Если 2 пользователя одрновременно пишут в 2 файла в ФТП - это нормальное действие с точки зрения файлового сервака. И в этот момент трудно принять решение где-же собсно
был коммит. Мы полюбому будем фиксировать в коммитах недописанные тела файлов. Вот в чем проблемка.

И кому нужна такая бестолковая история изменений где файлы постоянно битые. Вобщем такие вот мысли.
Может я ошибаюсь.

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

Лучший ответ:
Если форматировать Д не будешь, то нет.

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

Лучший ответ:
Если Вы из России, то просто не имеете права просто так раздавать интернет всем желающим
(97-ФЗ от 05.10.2014 года, ПП № 758 от 31 июля 2014 г., № 801 от 12 августа 2014 г.)
Рекомендую посмотреть тут
Настройка Микротика тут
Во всяком случае, это либо отпугнёт хацкера, либо даст вам смотреть логи, а главное, в случае чего избежать штрафа

Худший ответ:
Нанять сисадмина
Проверить не влез ли кто в микротик и пофиксить
Обновить по на микротике
Ограничить публичный вифи по скорости/времени

Проверить пк в сети на вирусню
Вопрос: Как рендерить сайты с жс, используя C#?

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

UP
postman collection сохраняете как json и импортируете. 
На чистом C# используйте веб клиент и отправляйте post запросы изменяя параметр number 0,1,2...n 
{
	"info": {
		"_postman_id": "82c63f15-f241-46b4-b7a3-b3245ee52bb3",
		"name": "www.lesegais.ru",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"item": [
		{
			"name": "https://www.lesegais.ru/open-area/graphql",
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\r\n    \"query\": \"query SearchContractLease($size: Int!, $number: Int!, $filter: Filter, $orders: [Order!]) { searchContractLease(filter: $filter, pageable: {number: $number, size: $size}, orders: $orders) {\\n    content {\\n      companyName\\n      inn\\n      dealDate\\n      constituentName\\n      forestryName\\n      subForestryName\\n      tractName\\n      forestBlockNumbers\\n      woodVolume\\n      __typename\\n    }\\n    __typename\\n  }\\n}\\n\",\r\n    \"variables\": {\r\n        \"size\": 20,\r\n        \"number\": 0,\r\n        \"filter\": null,\r\n        \"orders\": null\r\n    },\r\n    \"operationName\": \"SearchContractLease\"\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://www.lesegais.ru/open-area/graphql",
					"protocol": "https",
					"host": [
						"www",
						"lesegais",
						"ru"
					],
					"path": [
						"open-area",
						"graphql"
					]
				}
			},
			"response": []
		}
	]
}

json для post запроса по адресу https://www.lesegais.ru/open-area/graphql
{
    "query": "query SearchContractLease($size: Int!, $number: Int!, $filter: Filter, $orders: [Order!]) { searchContractLease(filter: $filter, pageable: {number: $number, size: $size}, orders: $orders) {\n    content {\n      companyName\n      inn\n      dealDate\n      constituentName\n      forestryName\n      subForestryName\n      tractName\n      forestBlockNumbers\n      woodVolume\n      __typename\n    }\n    __typename\n  }\n}\n",
    "variables": {
        "size": 20,
        "number": 0,
        "filter": null,
        "orders": null
    },
    "operationName": "SearchContractLease"
}

Худший ответ:
Я пробовал selenium и cefsharp, оба работают так себе, не до конца подгружают контент.
Ну тогда у вас нет шансов.
Вопрос: Linux fedora для ноутбука?

Лучший ответ:
Линукс на ноутбук плохой выбор (любой)
99% железа выпускается под windows macOS chromeOS
Соответственно оптимизируются под эти системы. 
Федора ничем не лучше убунты, разве что мантейнеры более мотивированы. 
Энергосбережение и работа с биосом а также с графикой и сетевухами это вообще головная боль

Худший ответ:
Соглашусь с Владимир Коротенко Большая часть ноутов работает в линухе - как повезет. Повезет - и заведется искаропки, как у меня. Не повезет - будете ипаца с дровами на сеть, на wifi, на батарейку. Федора - нестабильная версия шляпной линейки, для работы ее хорошо использовать тем, кто рубит фишку. В ней могут быть нестабильные компоненты - это типа тестового полигона.
Вопрос: Как получать уведомления через PHP?

Лучший ответ:
Бот в telegram самый простой вариант.

Худший ответ:
Смотря какие уведомления. 

Если о новых заказах или что-то по типу этого то телеграм бот + на пыхе скрипт, который будет на url телеги кидать запрос для отправки сообщения. В инете есть пример кода на php и других языках + дока самой телеги.

Если о падении сервера, то тут либо самописная система мониторинга с нескольких локаций, либо какое-то готовое решение по типу Zabbix, либо уже готовые сервисы по типу ping admin. Они мониторят твой сайт или сервак с десяток или сотен локаций по всему миру и отправляют уведомления в телегу/смс/email и т.д. Можно настроить частоту проверок (раз в секунду, час или минуту и т.д.) и список локаций, откуда будет производится проверка. За каждую проверку придется платить копеечку. Соотвественно чем больше проверок и локаций - тем больше счёт будет за месяц. Оплата по факту. Кидаешь на баланс пару соток с обедов, они тратятся себе.
Вопрос: Как перехватить любое исключение в php?

Лучший ответ:
В старых версиях PHP деление на ноль никакое не исключение, а обычная ошибка.
О чем ясно написано в выводимом сообщении: Warning: Division by zero in ...

Чтобы перехватывать ошибки, их надо конвертировать в исключения. В простейшем варианте
set_error_handler(function ($level, $message, $file = '', $line = 0)
{
    throw new ErrorException($message, 0, $level, $file, $line);
});
После установки такого обработчика все ошибки будут автоматически конвертироваться в исключения, и соответственно могут быть пойманы через try..catch:

Fatal error: Uncaught ErrorException: Division by zero

Худший ответ:
Ловите \Throwable $e
Это интерфейс всех исключений
Вопрос: Какой необходимый уровень TypeScript требуется для front-ende'ra?

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

Худший ответ:
В реальность всем за глаза хватает жс
Вопрос: Где взять тест-кейсы для тренировки скила qa автоматизатора?

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

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

Лучший ответ:
"Дедик" - это dedicated server, полностью ваш железный сервер в чьем-то датацентре.
Да, на нем можно без всяких раздумий запустить винду и елозить мышкой. Но он стоит, как крыло от самолета, и вас вообще не должен интересовать.
Для пет-сервера, которому не нужно ни выдерживать наплыв пользователей, ни крутить тяжелые задачи - самый дешевый VPS за 55 руб./мес., скорее всего, будет более чем достаточен.
НО! Никаких мышек по рабочему столу. Линукс, командная строка, вся свобода администрирования...

Худший ответ:
Вот вам руководство
https://www.digitalocean.com/community/tutorials/h...

Впрочем оно подойдет и для 20 убунты
Вопрос: Что можно подарить радиолюбителю, не новичку?

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

Худший ответ:
На Banggood есть интересные подарки-самоделки, если поискать там по слову DIY.
Вопрос: Как проксировать WebSockets через nginx?

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

Худший ответ:
Настройка аналогична, просто добавьте в серверный блок listen ssl и остальные необходимые параметры - сертификат и т. д.
Вопрос: Почему watcher не реактивен при создании компонента?

Лучший ответ:
1. Всё работает: snippet
2. Лучше писать так: watch(
  seachCityName,
  (value) => {
    localStorage.setItem("seachNameFromLS", value); 
    // ...
  },
  { immediate: true }
);
3. Оборачивайте код в <code></code>, когда задаёте вопрос. Это нормы приличия.

Худший ответ:
watch вообще не отрабатывает? А покажите кусок шаблона, где используете seachCityName