pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: На android якобы нет места, хотя оно есть, в чем может быть причина?

Лучший ответ: Приложению чтобы проинсталлиться и запуститься нужен утроенный объем своего размера

Худший ответ: Там есть понятие "встроенная память". Это не карта памяти и не общая память устройства, это какая-то специальная часть выделенная из общей части. Сталкивался с этой проблемой, решение - купил новый мобильник))
Всякие клинеры не помагают. У меня был lenovo p780, три года мобилке. За это время приложения сильно подрасли в объеме. Рекомендую не мучиться и заказать с али какой-нибудь в районе 8000 руб.
Вопрос: Как настроить несколько VPN (или прокси) на 1 ПК?

Лучший ответ: Anton  ...Мои мощности условно не ограничены...
Вариант номер раз.
Я бы пошел следующим планом:
1. На каждую копию игрушки своя виртуальная машина.
2. Сервер с (условно) пятью IP.
3. На каждом IP свой VPN сервер
4. У каждой виртуалки свой коннект со своим сервером. (Так вы гарантированно получите изолированные копии программы каждая из которых на своем IP)
Но без VPN или прокси не обойтись.
Вариант номер два-с.
1. Первый пункт такой же.
2. У своего провайдера покупаем белые IP (если он конечно продаст несколько, не знаю не пробовал)
3. Подключаем комп через свитч к провайдеру, виртуалки настраиваем на получение каждой своего IP. (не так страшно делается, как звучит ;-), могу помочь, если возникнут трудности)
4. У каждой виртуалки свой коннект со своим IP в интернет. (Так вы гарантированно получите изолированные копии программы каждая из которых на своем IP)
Можно обойтись без VPN и прокси
PS: ценник на белый IP узнавайте у своего провайдера. Вряд ли больше ста рублей за штуку.

Худший ответ: 1) виртуалки с vpn
2) у каждой копии программы указывать прокси
3) облака c win server, неавно на хабре или гигтаймсе предлагали win2003 максимально дешевый
последнее под вопросом, т.к. не известно какие данные отправляются/определяются программой, может она смотрит все сетевые интерфейсы
Вопрос: Оптимальный вариант натяжки лендинга на WP?

Лучший ответ: Я уже отвечал на подобный вопрос недавно. Делаете custom post type "секции". Каждая запись - отдельная секция. Для них создаете поля ACF. Шаблон index.php, модифицируете главный запрос через хук pre_get_posts чтобы загружал записи вашего произвольного типа. На каждую запись для удобства делаете свой шаблончик и инклудите его через get_template_part().

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

Лучший ответ: наверное поменять их местами)

Худший ответ: наверное поменять их местами)
Вопрос: Высоконагруженный сайт / HighLoad сколько посещений в день имеет?

Лучший ответ: хайлоад  это когда железо не справляется
поставить wordpress на raspberry pi и зайти туда - будет хайлоад

Худший ответ: нет, это не хай лоад. когда за секунду переваливает 1000 новых подключений - тогда хайлоад
Вопрос: Как скрывать/показывать блок при кликах на одну кнопку?

Лучший ответ: Без классов, если интересует именно добавление / удаление стиля то можно примерно так :var knopka = document.getElementById ('push');
knopka.addEventListener('click',func1);
 
function func1() {
  var shadow = document.getElementById ('ts1');
  if (shadow.style.display !== 'none'){
  	shadow.style.display="none";
  }else{
  	shadow.style.display="block";
  }
  
};

Худший ответ: Самое примитивное:<input id="push" type="button" value="..." onclick="document.getElementById('ts1').classList.toggle('hidden');"/>
К этому диву должен быть прописан универсальный или частный случай класса hidden, тогда сработает.
Если используется бутстрап к примеру, то есть там .d-none. Впрочем, если есть бут, то есть и jQuery (не обязательно).
Вопрос: С чего начать изучение моделирования, анализа и оптимизации, автоматизации безнес-процессов новичку?

Лучший ответ: "еще очень интересует решение проблем оптимизации и автоматизации бизнес-процессов с помощью it-технологий." 
Это очень общее.
1) Слово ИТ тут очень второстепенное, для начала нужно учиться ловить поток операций и видеть узкие места. Тут лучше Голдратта я ничего не знаю. За теорией к нему. Самое простое на рутрекере найти видосы с его семинаров. Не найдешь, обращайся.
2) Чтобы разбираться в процессах нужна тренировка и заточенность мозгов под это дело. Сидишь пивас в кафе пьешь, смотришь официантки нервничают. А чего так? А потому что пятница народа много у них. Не хватает персонала? Или мешаются друг другу? Или нервничать начали, а менеджер хрен пинает? А что с этим можно сделать? А тут наоборот не мешаются, а почему? А что этот человек делает? А этот? И так далее.
Умение видеть процессы - то чему не учит ни средняя школа, ни высшая. Там нас учат, что нас окружают не процессы, а явления и факты. На самом деле вокруг нас только переходные процессы. За подробностями - в философию. Но суть в том, что для описанных вами задач нужно уметь видеть везде не только процессы, но и узкие места в них.
3) Полезно подучить методологию описания бизнес-процессов. Их несколько. Мне нравится вообще примитивные подходы типа "User story mapping" by Jeff Patton. Тут главное сильно не задрачиваться в сложные схемы, так как их все равно Заказчик не понимает.
4) Вот теперь уже можно почитать и про инжиниринг процессов и все что с этим связано в преломлении ИТ.
5) Никто не отменял практический опыт, за который платят деньгу. Чем сильно в теорию углубляться, если нет опыта, проще пойти аналитиком стажером - там научат (правда по вечерам и в режиме аврала).

Худший ответ: В сети много чего есть. Просто надо сайт с указанной проблематикой.
Кроме того не забываем наш любимый Хабрахабр.
Ну и вот здесь кое-что http://bizobj.ru...
Вопрос: Есть ли какой нибудь чек-лист по обслуживанию ОС linux?

Лучший ответ: Я бы порекомендовал с выбора и установки системы мониторинга и использования её преднастроенных шаблонов.
Конечно это капля в море и без реального опыта всё равно будут пробелы в обслуживании сервера. Но с другой стороны это даст стартовую точку от которой уже можно плясать дальше.
Например Zabbix.  Достаточно легко разворачивается и имеет много встроенных шаблонов (сам Linux, веб-сервер, бд) с предустановленными триггерами, что позволит вам взглянуть комплексно взглянуть на сервер и сделать какие-то выводы.

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

Лучший ответ: 1. Есть тег <picture> для показа разных изображений на разных экранах
2. height: auto для пропорций
3. позиционирование 
4. object-fit для правильной обрезки, аналогичной bg size.
Про то, что картинки можно готовить заранее правильных пропорций лучше промолчу.
При наличии этого всего не понятно зачем нужна манипуляция превращения картинок в фон. Разве что кто-то знает js лучше, чем css.

Худший ответ: Попробуйте устанавливать величины рисунка в "vh" и "vw".
Вопрос: Какую книгу по asp.net выбрать?

Лучший ответ: А зачем выбирать, возьмите две.

Худший ответ: Если возник вопрос, то лучше взять Разработка современных веб-приложений. Но так как это обзорная книга по .NET технологиям, то придётся дополнять материалами из интернета, например asp.net и metanit.com
Вопрос: Как ограничить скорость на Mikrotik?

Лучший ответ: Выложите сюда конфигурацию вашего QoS. (под спойлер)В консоли микротика:
queue type export file=type.rsc
queue tree export file=tree.rsc
queue simple export file=simple.rsc

Худший ответ: Это отлично делается через Queues.
Выкладывайте конфиг Queue.
Вопрос: Как выровнять текст по вертикали?

Лучший ответ: Не слушай никого. Типичные вещи CSS Не знают.div:before {
    content: "";
    padding-top: 100%;
    display: inline-block;
    vertical-align: middle;
}

Худший ответ: Для родительского блока:display:table;
Для вложенного блока: display:table-cell; 
vertical-align:middle;
text-align:center;
Есть еще такая крутая вещь, как Flexbox, почитайте о ней.
Вопрос: Кто подскажет, как вернуть старый вид диспетчера закладок в google chrome?

Лучший ответ: Раньше было так
chrome://flags/#enhanced-bookmarks-experiment ----- Disable
Теперь вот так
chrome://flags/
Далее ищем пункт Enable Material Design bookmarks и  делаем Disable
Перезапускаем Google Crome

Худший ответ: Можно проще
chrome://flags/#enable-md-bookmarks
Вопрос: Как внедрить Vue в существующий Yii-проект?

Лучший ответ: Доброе утро.
Вот есть расширение для vue.
Статья ещё.

Худший ответ: Может, еще кому-то поможет этот ресурс: diz-blog.com.ua/primer-realizacii-rest-api-na-yii2...
Вопрос: Как корректно настроить app.config в VisualStudio при использовании GIT?

Лучший ответ: Это вопрос больше организационный.
Предполагаемые пути решения:
1. Раздать программистам по шапке, т.к. отказываются включать голову.
2. Сделать единый настраиваемый конфиг
2.1 Сделать тестовый удалённый сервер,  на который смотрит конфиг.
3. Локально у себя на компе разработчик вправе делать все что угодно, при условии что это не попадает в репозиторий и не вредит окружающим
4. За бардак в коде, внесение путаницы,  отказ включать голову - анальные кары и массовые расстрелы.

Худший ответ: Как вариант: ту часть конфига, в которой прописываются всякие path, вынести в отдельный файл. А в основном конфиге просто использовать линк на этот файл. После этого нужно, чтобы каждый из разработчиков исключил этот файл (предположим paths.config) из обновления гита командой git update-index --skip-worktree paths.config. Теперь этот файл можно менять локально и его изменения трекаться не будут.
Вопрос: Можно ли делать зеркало из плохих дисков?

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

Худший ответ: Можно. Но не нужно. Чтобы потом не биться над вопросом типа "почему не идет миграция машины". Внимательно прочтите ответ Алексей
Вопрос: Почему возвращается неверное значение инпута?

Лучший ответ: В таких случаях используют событие "input". По ссылке по подробнее: learn.javascript.ru/events-change

Худший ответ: При событии keydown вы получаете значение текстового поля до внесения в него изменений, так как ввод еще не завершен.
Для обработки события keyup вы указали неправильный селектор. Ваша конструкция предполагает, что элемент с классом .select-city будет вложен в элемент .select-city (который будет вложен в элемент body).
Исправить можно следующим образом:$('body').on('keyup', '.select-city', function(e){
    console.log(e.target.value)
});
Пример: https://jsfiddle.net/4uqLoL0L/1/
PS В этом случае событие "onkeydown" в html уде будет лишним скорее всего.
Вопрос: Как скрыть пароль для WebSocket авторизации на html странице?

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

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

Лучший ответ: Ошибку в студию.
Попробуйте так:sudo apt-get remove --purge mysql* -y
sudo apt-get autoremove -y
sudo apt-get autoclean
Затем удалите папку с конфигурацией:sudo rm -rf /etc/mysql
Ну и затем хардкор: найти все оставшиеся файлы по маске и удалить:sudo find / -iname 'mysql*' -exec rm -rf {} \;

Худший ответ: какую ошибку?
Вопрос: Актуален ли сейчас asterisk и voip в целом?

Лучший ответ: Asterisk все еще актуален и будет актуален еще очень долго (ИМХО)
На 10 лет загадывать в IT области очень сложно и опасно. Но с учетом того что многие гос конторы сидят на Asterisk , то и через 10 лет будут нужны специалисты

Худший ответ: Не совсем понятно что подразумевается под "разработчиком". Если это программист на С, пишущий модули или закрывающий баги в *, то это одно направление. Если это программист на Python/Perl/etc, пишущий систему, взаимодействующую с * через AMI/AGI/ARI - другое. Если это человек, пишуший кОнфиг к * ручками, оптимизирующий его работу - третье.
В любом случае, войдя в направление "телефония" придется самостоятельно расширять свой кругозор, расти. А там уже будут новые горизонты - "highload", масштабируемые решения и т.д.
Возможно, потребуются глубокие знания SIP (справочник Гольдштейна в помощь) и других телефонных протоколов - PRI, SS7 и т.д.
Вопрос: Нужен совет. Каким способом (как) сделать лендинг так же в две колонки, как в примере?

Лучший ответ: Два блока в бади, каждому задаете высоту 100vh и overflow: scroll;
Для бади display: flex.
Если обоим блокам не задать жестко высоту не будет работать скролл в блоках.

Худший ответ: наколошматил велос)) https://codepen.io/erstet/pen/MRXQNB
Вопрос: Как отслеживать изменение класса Jquery?

Лучший ответ: Способа есть только два: использовать setInterval() и постоянно проверять наличие или отсутствие класса js-hidden, но это "мягко говоря" не очень красиво и  совсем не элегантное решение. И второй вариант - смотреть "кто меняет"  (т.е. кем вызвано) изменение клсса и выполнять необходимое действие в этот момент.

Худший ответ: MutationObserver вам в помощь
Вопрос: Проблема с вызовом функции при onclick. Как решить?

Лучший ответ: лучше вообще не использовать возможность внедрения onclick внутри html
внутри html не должно быть программы или оформления

Худший ответ: Он не знает, что такое this
Делайте так: https://jsfiddle.net/tmj67vbq/
Вопрос: Как выбрать вопросы на страницу из базы?

Лучший ответ: Тебе надо нормализовать таблицу. Эти 2 сущности нужно разделить на 3 таблицы.  1. Таблица вопросов(voprosi). {vopros_num, vopros_text} 2. Таблица ответов(otveti). {otvet_num, vopros_num, otvet_text}  3. Таблица правильных ответов(pravilnie_otveti) {vopros_num, otvet_num}
Так ты можешь связать с вопросом сколько угодно ответов, о потом можешь сделать выборку SELECT *
FROM `voprosi`
WHERE vopros_num IN
    (SELECT vopros_num
     FROM otveti
     WHERE COUNT(otvet_num) = 3
       OR COUNT(otvet_num) = 4
     GROUP BY vopros_num)Дальше уже можешь по номеру вопроса выводить отдельным запросом ответы, и отдельным запросом номер правильного ответа

Худший ответ: Создайте вторую таблицу где будете хранить варианты ответов с полем id вопроса, а в первой только вопрос.
Можно хранить json массив в одном поле "варианты ответов".
Вопрос: Telegram+python+flask+PyTelegramBotApi+pythonanywhere+webhook?

Лучший ответ: Для PyTelegramBotApi работает следующее:from flask import Flask, request
import telebot
from telebot import types
import time

secret = "GUID"
bot = telebot.TeleBot('TOKEN_TELEGRAM', threaded=False)

bot.remove_webhook()
time.sleep(1)
bot.set_webhook(url="https://YOURNAME.pythonanywhere.com/{}".format(secret))

app = Flask(__name__)

@app.route('/{}'.format(secret), methods=["POST"])
def webhook():
    bot.process_new_updates([telebot.types.Update.de_json(request.stream.read().decode("utf-8"))])
    print("Message")
    return "ok", 200


@bot.message_handler(commands=['start', 'help'])
def startCommand(message):
    bot.send_message(message.chat.id, 'Hi *' + message.chat.first_name + '*!' , parse_mode='Markdown', reply_markup=types.ReplyKeyboardRemove())
проверено на платном аккаунте

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

Лучший ответ: В big data не так важна информатика, как математика!
Вот, неплохая картинка, на которой схематически изображен путь data scientist'a (там, правда, все на английском, но думаю разберешься). Вычишь 3/4 из всего этого списка, можешь устраиваться на стажировку.

Худший ответ: Ответить на вопрос ГДЕ.
Где ты будешь с ними работать. В какой фирме.
БигДата в РФ к примеру: это Яндекс, Майл.Ру, Одноклассники, ВКонтакте....
И все.
Вопрос: Как собрать программу на C# с БД?

Лучший ответ: вообще то есть понятие connection string - строка подключения, она либо в каких то конфигах программы, либо в тексте программы. это зависит от использованного драйвера (ADO, DAO, ODBC... может даже Entity Framework или Linq to SQL)
так вот данная строка, гарантировано содержит абсолютный, или относительный (к примеру относительно профиля пользователя) путь к файлу БД
если у вас есть исходники проекта (и даже если нет) - от папки программы/проекта, выполните поиск фалов по маске *.* содержащего подстроку с именем БД, в проводнике, фаре, тотал командере... все равно.. в любом файловом инструменте, которым умеете пользоваться. такой файл обязательно найдется, дальше будет на много проще понять, как управлять ситуацией

Худший ответ: В студии выбираете файл, затем в свойствах находите "Build Action", указываете  "Content" и "Copy to output directory" указываете "Copy Always" or "Copy if Newer" (если он меняется, будет скопирован только в случае изменения).
Вопрос: Почему не приходят письма с сайта на корпоративную почту?

Лучший ответ: Ну для начала бы наверное надо покопаться в /var/log/mail  и изучить что там в логах страшного и неправильного.
Как правило после этого приходит понимание куда копать дальше или в чем конкретно проблема.
А ежели и после этого понимания не будет можно показать конкретную ошибку из лога публике и спросить совета.

Худший ответ: Проверьте через https://www.mail-tester.com/
Вопрос: Как проверить отображение письма на мобильных устройствах?

Лучший ответ: Пользоваться litmus.com)

Худший ответ: Поставить эмулятор андроида :) Ну или купить само устройство :)
Вопрос: Как правильно делать изменения в папке vendor?

Лучший ответ: В папке vendor вносить изменения нельзя. Если вам нужно было изменить логику для Auth/Passwords, то можно было попробовать этот вопрос решить путем написания кода в app/http/controllers/auth/PasswordController файле

Худший ответ: Папка vendor должна быть в режиме read-only. Если надо немного расширить или переопределить логику, то можно воспользоваться советом hakkol. Если же нужно что-то пропатчить под себя или изменить какой-то пакет достаточно серьезно, то можно форкнуть его и править отдельным проектом. Затем композером заменить зависимость на свою, добавив свой репозиторий как источник.
Вопрос: Как установить плагин в Nuxt.js?

Лучший ответ: Господа, сам нашел ответ убив 3 дня)
1. Vuetify не поддерживается в Nuxt.js
2. Поддерживается ElementUI
Инструкция как установить:
3.0) npm install element-ui -S
3.1) nuxt.config.jsmodule.exports = {
    plugins: ['~plugins/element-ui.js'],
3.2) ~plugins/ekement-ui.jsimport Vue from 'vue'

const ElementUI = require('element-ui')
const locale = require('element-ui/lib/locale/lang/ru-RU')
Vue.use(ElementUI, {local)} // если вставить global ничего не меняется, пока я не понял почему так
3.3 ~pages/index.vue<template>
<div>
    <el-row>
        <el-col :span="24">
            <el-button>Default Button</el-button>
            <el-button type="primary">Primary Button</el-button>
            <el-button type="text">Text Button</el-button>
        </el-col>
    </el-row>
    <el-row>
        <el-col :span="24">
            <el-input-number v-model="num1" :min="1" :max="10"></el-input-number>
        </el-col>
    </el-row>
</div>
</template>

<script>
export default {
    layout: 'teub',
    data() {
        return {
            num1: 1
        }
    }
}
</script>

<style>
body {
    font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
    padding-top: 50px;
}

.el-row {
    padding: 10px;
    text-align: center;
}
</style>

Худший ответ: Для подключения плагина надо
1. Создать файл под подключение в папке plugins/
2. Подключить файл плагина в nuxt.config.js
p.s. используйте подключение в конструкции if (!Vue.prototype.plugin) {
  Vue.use(plugin)
}
Подключение в nuxt.config.jsmodule.exports = {
  plugins: [
    '~plugins/validator.js',
    '~plugins/lodash.js'
  ]
... остальные настройки
}
Пример подключения сторонней библиотеки адаптированной под vue :import Vue from 'vue'
import lodash from 'lodash'
import VueLodash from 'vue-lodash/dist/vue-lodash.min'
if (!Vue.prototype._) {
  Vue.use(VueLodash, lodash)
}
Пример подключения своего плагина:import _ from 'lodash'
import Vue from 'vue'

export const validator = (Vue) => {
  Vue.validator = {
    applyErrors: {
      inputs (inputs, errors = {}) {
        _.forEach(inputs, (input) => {
          input.error = ''
          if (errors[input.name]) {
            input.error = errors[input.name][0]
          }
        })
        return inputs
      }
    }
  }
  // Подключаем для вызова с любой точки объекта Vue в контексте this
  if (!Vue.prototype.$validator) {
    Object.defineProperties(Vue.prototype, {
      $validator: {
        get: () => {
          return Vue.validator
        }
      }
    })
  }
}

Vue.use(validator)
Вопрос: Как лучше загрузить Windows и весь системный раздел напрямую в RAM-диск при старте коипьютера?

Лучший ответ: Как лучше загрузить Windows напрямую в RAM-диск при старте коипьютера?Вы не поверите, для этого ничего не нужно делать. Она в любом случае загружается в RAM при старте системы, сама собой.эксперимента по устранению бутылочных горлышек в I/O домашней рабочей станции.Любой современный  SSD гарантированно устранит все бутылочные горлышки в I/O если вы положите систему на него. Дальнейшее увеличение IOPS диска не даст эффекта, по той простой причине, что узкого места уже не будет. Это факт, многократно проверенный и доказанный.Не надо беспокоиться об износе, усилении записи и других глупостях.Ну беспокоиться об износе SSD и HDD довольно глупо, в данном случае. А вот что такое усиление записи не совсем понятно.Таким образом проблема недостатка I/O для наиболее требовательных рабочих приложенийПроблему недостатка I/O для требовательных приложений это никоим образом не решит, для этого надо грузить в RAM не систему, и даже не приложение, а данные с которыми работают приложения, и папку в которой эти приложения хранят свои кэши, и прочие промежуточные результаты.Тебе не хватит места — как ни странно, хватит.Вы серьезно 16гб занимает десятка? 
И в этот размер входит файл подкачки? Или вы его отключили???64 ГБ быстрой памяти, из которых примерно 44–48 ГБ выделено под RAM-диск;Поверьте самое лучшее в этой ситуации отдать эту память системе, и не лепить RAM драйвов, так она будет использоваться наиболее оптимально и принесет больше пользы.
Исключение - старые, кривые приложения не умеющие эффективно использовать память и в наглую эксплуатирующие диск. Такие иногда есть смысл загрузить в рамдрайв. Но это редко.
И в любом случае - выигрыша против SSD это все равно не даст.Не забывайте что любой RAMдрайв это драйвер который постоянно крутится в оперативной памяти, и неслабо грузит процессор.

Худший ответ: Через гипервизор можно проверить если разница в производительности. Разместить один и тот же образ системы на ссд и рам диске и прогнать тесты.
Либо вот - forum.ru-board.com/topic.cgi?forum=62&topic=24404 Там правда про 7, но возможно и 10 так запустится.
Вопрос: Как действует этот код??

Лучший ответ: Мы как-бы присвоили переменной morningAlarm новое значение =)

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

Лучший ответ: наверно надо спросить у этих ресурсов?

Худший ответ: На Кикстартере есть такая опция. А что у вас за проект? Может лучше самому заняться его рекламой?
Вопрос: Какую сборку выбрать для изучения (и какую для работы на) PHP на Windows?

Лучший ответ: Для РНР лучше выкинуть Windows с компьютера.

Худший ответ: Для обучения достаточно скачать php https://windows.php.net/download/
Вот и всё. Сервер и так из коробки идёт php.net/manual/ru/features.commandline.webserver.php а БД можно потом отдельно накатить, если надо.
Но я конечно же за Docker.