Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Cтоит ли писать магазин на чистом php?

Лучший ответ:
Нет, не стоит, используйте CMS. Интернет-магазин - это типовой сайт, функциональность которого практически стандартна. Если писать самостоятельно, то будет крайне долго, ненадежно и не гибко. Я вижу такие плюсы использования cms конкретно для интернет-магазинов:Для cms-магазов есть куча готовых тем, но можно сделать и свою.Для cms-магазов есть куча готовых плагинов под любые нуждыВ случае чего, изменения в интернет-магазах на cms обычно гораздо дешевле выходят, и разработчика найти проще.Если делать магаз с нуля самостоятельно, то у него не будет готовой админки. Если делать на фреймворке, то она, может быть, и будет "из коробки", но либо не будет устраивать, либо ее придется сильно допиливать. В cms админка есть, причем она позволяет далеко не только добавлять товары, но и делать многие другие вещи, написание которых на фреймворке займет много времени.Какими бы некачественными в плане кода они ни были обычно (например, код не соответствует принципам PSR), CMS более надежны, потому что используются большим количеством людей (соответственно, проверяются и допиливаются постоянно). Самописные решения - нет. И хорошо если разраб хотя бы покрыл свой код тестами (что обычно не делается, кстати). То есть качество самописных решений нередко вызывает сомнения.
Писать интернет-магаз вручную надо в таких случаях:Очень высокие нагрузки, CMS не справляется даже если используется кеш везде, где только можно.Очень нестандартный магазин, на CMS ложится плохо.Реально огромный (под 100к и более товаров) и сложный интернет-магазин

Худший ответ:
изучайте и делайте все на фреймворках. напр как yii2 https://www.yiiframework.com/
и если вы хотите стать профессионалом в программировании то изучайте фремворки (они в отличии от cms бесплатные и документации для них много)
Вопрос: Запуск 10 ярлыков 1 кликом с таймером?

Лучший ответ:
timeout вставьте в батник между запусками приложений.

Худший ответ:
"ping 127.0.0.1 -n 2" - две секунды приблизительно
Вопрос: Как сжать видео размером 2,5 ГБ?

Лучший ответ:
ffmpeg - бесплатно, но работает через командную строку. Есть под Windows и под Linux.
Пример перекодирования видео из 720 в 480:
ffmpeg -i input.mp4 -vf scale=720:480 output.mp4
размер файла уменьшился с 55 Мб до 14 Мб.
Через параметры командной строки можно задавать что угодно: формат, битрейт, разрешение, можно обрезать по времени и т.п. Примеры командной строки для разных действий можно нагуглить.

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

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

Если нормальный учет нужен - то 1с.
Такой учет как вы описали на практике не работает. 
И по этой самой причине именно такой программы вы не найдете.

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

Поверьте на слово. Аппетит приходит во время еды. Практически сразу у вас начнут появляться всё новые и новые хотелки.
Вопрос: Как определить стоимость проекта?

Лучший ответ:
const x = стоимость часа вашей работы
const y = ваша оценка временных затрат на проект (в часах)

const isNormalPrice = x * y < 15 000 ? true  : false;

Худший ответ:
Сначала оцените сколько стоит один час вашей разработки, допустим, 500 рублей. Затем, сколько вы приблизительно затратите часов на этот проект. Всё зависит от ваших способностей и навыков, но пусть будет часов 20-25. Значит оценочная стоимость проекта в 15.000 рублей вышла корректной.
Вопрос: Задачка с нахождением анаграмм в массиве?

Лучший ответ:
как можно улучшить данный код
Избежать лишних действий.
Например, незачем на каждом шаге снова разбивать и сортировать исходное слово – достаточно сделать это один раз:function anagrams(word, words) {
    const sample = word.split('').sort().join('');
    return words.filter(function (e) {
        return e.split('').sort().join('') === sample;
    })
}
Нет смысла проверять неподходящие по длине слова.function anagrams(word, words) {
    const length = word.length;
    const sample = word.split('').sort().join('');
    return words.filter(w => w.length === length)
        .filter(function (e) {
            return e.split('').sort().join('') === sample;
        })
}
P.S. я вот такое решение отправил. Сравнить длину. Привести к lowercase. Запоминать позиции, в которых найден очередной символ и дальше искать после этой позиции (если будут повторы этого же символа). Как только какой-то символ не найден – всё, не совпали.Код// write the function isAnagram
var isAnagram = function(test, original) {
  const length = original.length;

  if (length !== test.length) return false;

  const A = test.toLowerCase();
  const B = original.toLowerCase();
  const dict = {};

  for (let i=0, char, pos; i < length; i++) {
    char = A[i];
    pos = B.indexOf(char, +dict[char]);
    if (!~pos) return false;
    dict[char] = pos + 1;
  }

  return true;
};

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

Лучший ответ:
Есть ли такое устройство, которое при отключении порта на управляемом свиче выключило бы питание неуправляемого свича?
Такие устройства есть. Называются IP PDU.

Худший ответ:
Зачем такие сложности если у микротиков есть WatchDog.
Настраивайте его и все.
В итоге если вам просто надо зайти и перезагрузить - вы сделаете  это через winbox или через ssh.
А если вам нужно перезагрузить зависший микротик - это сделает ватчдог.
Вопрос: Как постоянно синхронизировать файл с удаленным сервером по ssh?

Лучший ответ:
Вам может помочь rsync поверх ssh.

Худший ответ:
rclone - и далее в планировщик, каждые 10 мин )
Вопрос: Как уменьшить все блоки сразу?

Лучший ответ:
Задать им одинаковый класс и прописать ему нужные css свойства.

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

Если речь об адаптивности, то: 

  Использовать медиазапросы
@media screen and (max-width: XXXpx) { ... } @media screen and (min-width: XXXpx) { ... }
  Использовать относительные единицы измерения rem, vh, vw, ...


Если сайт "резиновый", то использовать относительные единицы измерения %, vh,vw, vmin для всего ( ширины,высоты, размера шрифта, отступы, ....)

Если нужно масштабирование определенного блока, то можно попробовать transform: scale(XX);
Вопрос: С чего начать разработку онлайн игры с использованием клиента сторонних разработчиков?

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

Худший ответ:
. С чего мне начать?
С гугла. Если игра 2008 года, и была достаточо популярной - под нее наверняка уже есть и распаковщики, и редакторы ресурсов и все на свете. Ищите по тематическим форумам.Чем мне вскрывать игровые ресурсы с расширением dat?
Не поверите - гуглом :) .dat - это крайне общее расширение, ничего конкретного не определяющее.знаний ноль, готов потратить годы своей жизни.
Ничоси, любов...
Вопрос: Почему пустой массив равен пустой строке, но пустые массивы не равны?

Лучший ответ:
При сравнении значений разных типов JavaScript приводит каждое из них к числу.источник: Сравнение разных типов

Два пустых массива не равны, т.к. массивы в JS – это объекты. Два объекта равны только если они есть один и тот же объект - сидит в одной области памяти:const arr = [];
let a = arr;
let b = arr;
a == b // true

let c = []; // одна область памяти
let d = []; // другая область памяти
c == d // false

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

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

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

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

Худший ответ:
Попробуйте прописать Google Public DNS 8.8.8.8
Вопрос: Где арендовать сервер под конвертацию видео?

Лучший ответ:
У Amazon есть Elastic Transcoder 
стоит $0.03 за минуту видео 720p и выше, и половина этого для видео меньшего разрешения.

Худший ответ:
Хетзнер
Вопрос: В чем отличие веб-приложений от обычных?

Лучший ответ:
Скорость. Никогда веб приложения не догонят те же приложения на том же C++. Хоть webasm хоть не wabasm.
Также они сильно урезаны, может быть когда нибудь в будущем давайте помечтаем, но сейчас и в ближайшее время такого не будет.

Худший ответ:
Минусы: из-за прослойки V8, нет нормальной интеграции с ОС, где можно управлять ресурсами, правами, драйверами, устройствами.
Вопрос: Как обойти все дерево через array.prototype.reduce?

Лучший ответ:
const traversal = (arr, prevKey, key) => arr.map((o) => {
  const newObj = {
    ...o, 
    [key]: o[prevKey], 
    children: traversal(o.children, prevKey, key)
  }; 
  delete newObj[prevKey];
  return newObj;
});

const newArr = traversal(data, 'name', 'key');
P.S. ваш код не работает из-за опечатки в названии свойства в последнем объекте

Худший ответ:
const traversal = (arr, prevKey, key) => arr.map((o) => {
  const newObj = {
    ...o, 
    [key]: o[prevKey], 
    children: traversal(o.children, prevKey, key)
  }; 
  delete newObj[prevKey];
  return newObj;
});

const newArr = traversal(data, 'name', 'key');
P.S. ваш код не работает из-за опечатки в названии свойства в последнем объекте
Вопрос: Как парсить элементы сайта, генерируемые Angular JS?

Лучший ответ:
Может я не правильно понял вопрос, но текст песни забирается requests'стом с genius.com буквально в одну-две строчки.


Худший ответ:
В head смотрите<meta content="трататамноготекста" itemprop="page_data"/>
Парсим его и разбираем json. 
Профит.
Вопрос: Как собрать лёгкую сборку приложения .NET Core?

Лучший ответ:
но полученные папки "для публикации" выходят совсем тяжёлыми - под 200 мегабайт для программки весом в 0,2 МБ!!!
Так в варианте с .NET Framework надо прежде скачать этот фреймворк на 400Мб и установить. Без него не будет работать. Поэтому утверждение, что программа весит 0.2Мб не верное.

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

https://docs.microsoft.com/ru-ru/dotnet/core/deploying/

Кроме этого можно скопировать 1 раз файлы, а после просто заменять dll

Или же вариант создать инсталлер, который  устанавливает фреймворк по необходимости. 
Например WiX installer

Вот  рабочий код без всякого мусора. 

dotnet build -c Release-no-self
dotnet zip --no-restore -c Release-no-self

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>_444</RootNamespace>
    <Configurations>Debug;Release;Release-no-self</Configurations>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <DebugSymbols>true</DebugSymbols>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-no-self|AnyCPU'">
    <SelfContained>False</SelfContained>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Packaging.Targets" Version="$(PackagingNuGetVersion)" />
  </ItemGroup>

  <PropertyGroup>
    <PostInstallScript>
    </PostInstallScript>
    <PostRemoveScript>
    </PostRemoveScript>
  </PropertyGroup>

  <Target Name="PackageZip" DependsOnTargets="CreateZip" Outputs="$(ZipPath)"/>
  <Target Name="PackageTarball" DependsOnTargets="CreateTarball" Outputs="$(TarballPath)"/>
  <Target Name="PackageDebian" DependsOnTargets="CreateDeb" Outputs="$(DebPath)"/>
  <Target Name="PackageRpm" DependsOnTargets="CreateRpm" Outputs="$(RpmPath)"/>

</Project>
Вопрос: Как в c# передать неизвестные класс в метод со свойствами?

Лучший ответ:
Передавайте не класс а интерфейс.

Худший ответ:
Используйте словари и храните там параметры с текстовыми ключами.
Вопрос: Не хватает мощности процессора для просмотра Youtube?

Лучший ответ:
Кодек сменить надо, чтобы задействовать GPU вместо одного CPU. Расширение для хрома h264ify.spoilerMakes YouTube stream H.264 videos instead of VP8/VP9 videos
Try h264ify if YouTube videos stutter, take up too much CPU, eat battery life, or make your laptop hot.
By default, YouTube streams VP8/VP9 encoded video. However, this can cause problems with less powerful machines because VP8/VP9 is not typically hardware accelerated.
In contrast, H.264 is commonly hardware accelerated by GPUs, which usually means smoother video playback and reduced CPU usage. h264ify makes YouTube stream H.264 videos instead of VP8/VP9 videos.
Github: https://github.com/erkserkserks/h264ify

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

Лучший ответ:
1) Делайте задержку перед каждым запросом.
2) Накидайте расширений(тот же adblock) в профиль selenium. Походите по нескольким страницам в selenium вручную.

Худший ответ:
Как парсить без бана?
Вопрос: Управление экранными кнопками под Android, 2D платформер, как сделать?

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

Если кнопки, то как всегда: привязываете действия к событиям через меню в редакторе (или скриптом).
Если сканер, то прослушиваете события touch events и проверяете условия (если в левом нижнем углу, то прыжок).

Худший ответ:
https://forum.unity.com/threads/upravlenie-na-knop...

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

Лучший ответ:
хм... Chrome DevTools Protocol, правда совсем на баше не получится, но можно на:
ноде: https://www.npmjs.com/package/puppeteer
расте: https://crates.io/crates/headless_chrome
питоне: https://pypi.org/project/pyppeteer/
и наверняка на много чем еще...

Худший ответ:
хм... Chrome DevTools Protocol, правда совсем на баше не получится, но можно на:
ноде: https://www.npmjs.com/package/puppeteer
расте: https://crates.io/crates/headless_chrome
питоне: https://pypi.org/project/pyppeteer/
и наверняка на много чем еще...
Вопрос: Как получить доступ к локальной сети извне, с серым ip?

Лучший ответ:
При отсутствии доступа внутрь нужно инициировать соединение изнутри к чему-то, что доступно снаружи.
Это может быть например самый дешевый VPS, на который роутер или компьютер из локальной сети будут поднимать VPN соединение.

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

Лучший ответ:
Не надо кушать лишней памяти, и лишний раз ходить по итератору тоже.
def all_unique(iterator):
    counter = 0
    items = set()
    for item in iterator:
        items.add(item)
        counter += 1
        if len(items) != counter:
            return False
    return True
Худший случай, конечно, всегда один для данной задачи: О(N) и по памяти, и по времени. Но в лучшем случае может хватить всего лишь 2 итерации цикла и множества из 1 элемента (это когда в итераторе 2 первых элемента уже одинаковые), а в среднем будет что-нибудь типа O(N/2).

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

Лучший ответ:
У вас у наблюдается какая-то странная терминологическая каша. 

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

Во-вторых, нет никакой "библиотеки iostream" и никогда не было. Почему вы вдруг называете "iostream" "библиотекой"? В С++ существует стандартный заголовок <iostream>, содержащий описания сущностей из стандартной библиотеки языка С++. Но заголовок - это совсем не библиотека. Никто не считает <iostream> "библиотекой". Почему вы вдруг это делаете?

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

Лучший ответ:
1. Привыкайте выкладывать превью вашей верстки в сервисы по типу codepen, jsfiddle или github pages. Никто не будет клонировать вашу верстку на локальный ПК, чтобы что-то там проверить.
2. Привыкайте давать осознанные, читаемые id и class. В более сложной верстке вы потом сами забудете какой класс или id у вас за что отвечает. У вас сейчас так:<figure id="h">
3. Если у вас пустая ссылка - в href ставьте #. Таким образом вы избежите неожиданностей в виде внезапно изменившегося стиля ссылки в случае, если ваш макет внезапно пойдёт в продакшн и ссылки реально будут вести на какую нибудь страницу. У вас так:<a href="" class="twit"></a>
4. Приступайте к более сложным макетам.

Худший ответ:
1) У тега html нет lang.
2) Почитайте про различные мета теги, для чего нужны и как использовать. (так же в консоли во вкладке аудит можно посмотреть свои ошибки)
3) Проверьте код валидатором и исправьте то, что будет
4) Пока не поздно - изучите БЭМ. Это упростит верстку и все встанет по полочкам (либо другую методологию). Соответсвенно уйдут стили на теги и id.
5) Настройте свлю среду разработки на авто форматирование кода, почитайте рекомендации (мне нравится от airbnb)
6) Вместо картинок попробуйте подключать иконочные шрифты, либо используйте svg, либо спрайт из иконок png. (но на данном этапе это не приципиально)
7) Посмотрите список форматов шрифтов,  которые нужны для разных браузеров и, собственно, подключите их по вашим требованиям.
8) Старайте не писать все стили в одном файле (на будущее почитайте, например, sass 7-1 pattern)
Если есть вопросы,  пиши (контакты в профиле)
Вопрос: Заранее подготовленные фразы в EXCEL из выпадающего списка — возможно ли?

Лучший ответ:
Возможно, через "Проверку вводимых значений" на вкладке "Данные". Там выбираете тип данных список и указываете диапазон(со всеми возможными значениями) для этого списка(с отдельного листа или на этом же)

Худший ответ:
То, что Вам нужно называется "автозамена".
Посмотрите середину этой статьи: https://advanceduser.ru/microsoft-excel/avtozamena...
"И самое интересное – «Заменять при вводе». Именно эта команда активирует механизм автозамены и позволяет «на лету» устранять орфографические ошибки, вставлять специальные символы (например, «копирайт») и прочее. Здесь можно указать последовательность символов, которые затем программа должна будет преобразовать во что-то иное."
Вопрос: Почему при переходе на другое активити вылетает приложение?

Лучший ответ:
В логах.

Худший ответ:
ошибка бывает не только в коде где уходиш . ну и коде куда переходиш !
отправте код дргуой страницы !
Вопрос: Откуда сами иконки соц сетей?

Лучший ответ:
иконочные шрифты подключены https://cdnjs.cloudflare.com/ajax/libs/font-awesom...

Худший ответ:
на codepen можно отдельно от "основной страницы с кодом" подключать внешние css и js библиотеки, на шестеренку можно увидеть font awesome
Вопрос: Всем привет! Кто знает как импортировать товары на сайт на ВордПресс?

Лучший ответ:
Лучше wp all import еще ничего не придумали, но он платный. В WooCommerce есть свой импорт/экспорт из CSV, потестируйте еще и его

Худший ответ:
Сначала ставим плагин Woocommerce для создания магазина на Wordpress, затем используем плагин Product CSV Import Export для импорта товаров
Вопрос: Как связать рецепт и продукты?

Лучший ответ:
Почитайте про связь таблиц, в частности ManyToMany. Если конкретнее - создается еще одна таблица, скажем, RelationsRecipeProduct, которая будет содержать всего 2 поля - idRecipe и idProduct. Затем с помощью джойнов подхватываются данные с 3 таблиц и вуаля!

Худший ответ:
Можно попробовать оттолкнуться от этой структуры:
Table: Recipes
Recipe_ID, Recipe_Name, Cooking_time
Table: Ingredients
Ingredient_ID, Ingredient_Name
Table: Recipe_Ingredients
Recipe_Ingredient_ID, Ingredient_ID, Recipe_ID, Ingredient_Qty
Вопрос: Какую купить видео-карту для системника windows для обработки видео?

Лучший ответ:
Берете вашу программу нелинейного монтажа и смотрите сертифицированные карты. 
По идее должна подойти любая из gf среднего уровня что то типа gf 1060 и выше.

Худший ответ:
gf 1050ti б/у оптимален по цене на сегодняшний момент. Полностью раскроется на самой последней версии премьера, т.к. там поддержку nvenc прикрутили.
Вопрос: *args в Python — нужны ли звёздочки?

Лучший ответ:
Что вообще за бред? Ну вы же где-то прочитали про "звёздочки" разве там всего остального не было написано? В последнем случае вы передаёте один объект, список, *args нужно для передачи нескольких аргументов. Звёздочку при вызове функции писать не надо. Вот как *args применяют: def example(*args):
  for i in args:
    for t in i:
      print(t) 

example([1,55,73], [2,95,93]);

Худший ответ:
по-моему тут более чем доступно про это написано
Вопрос: Как отправить большое видео на апі из react native?

Лучший ответ:
вот тут посмотрите: https://gist.github.com/nandorojo/c641c176a053a9ab...
Если верить тому что там написано, надо просто путь к файлу передать в xhr. Я не проверял.

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

Лучший ответ:
Проверь наличие в head такой штуки<meta name="viewport" content="width=device-width, initial-scale=1">.

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

Лучший ответ:
В общем случае Windows 10 + SSD хорошо, остальные варианты уже не очень.UPD: есть фирменный пакет утилит для отслеживания активности при запускеЭтапы загрузки Windows под микроскопом Windows Per...How to collect a good boot trace on Windows 10 
Устаревшее, но тут методика автоматической оптимизации, актуальные ссылки брать из верхних статей: Ускорение загрузки Windows for fun and profit
= = =
Без дополнительных инструментов используйте:
Открывайте монитор ресурсов и смотрите, кто на самом деле занимается непотребством. Заодно наверняка очередь диска безумной длины в период торможения.

Худший ответ:
Вероятнее всего у вас стоит LTSB/LTSC редакция, установите нормальную Windows 10 Pro или лучше Home последней версии 1903/1909. А так же лучше всего уже перейти на SSD, которых тьма по достойной цене есть на aliexpress с приличными объемами. Ну а в качестве костыля, можно поставить галочку вот здесь для вашего диска с системой и воспользоваться SSD Mini Tweaker с вот этими галочками, станет заметно легче.