Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какова цель ddos атак, и зачем они нужны?

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

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

Лучший ответ:
Во первых какая архитектура сети у Вас? Многослойный перцептрон, кохонена и.т.д ? Какой тип обучения,с учителем или без? Какую задачу решаете, классификации или кластеризации данных? На чем написан проект? Какой вектор признаков распознаваемых объектов? Тут куча факторов. Когда я писал свой проект по классификации глазных патологий, на основании данных когерентной томографии, мне потребовалось около двух недель,что бы научить её работать правильно с данными и все это дело проверить(задача классификации).

Худший ответ:
если данные уже готовы для обучения, то времени программиста там практически не потребуется, ему лишь надо скормить эти данные нейросетке, а вот время обучения самой нейросети зависит от вашего железа и объема данных.
Вопрос: Есть ли готовые скрипты защиты от парсеров для nginx?

Лучший ответ:
И тут Грегор понял, что произошло. Эти существа не могли тушить лампы: галлюцинация не в силах воздействовать на неодушевленные предметы. Он вообразил, что в комнате становится темнее и… Он сам расстрелял свои лампы! Подсознание опять его надуло. Теперь Теневик смело шагнул вперед. Бластер был бессилен.
Роберт Шекли, "Призрак-5"
Прекрасный план, я считаю.
Конкуренты за 5 минут поправят ботов, чтобы они не ловились, а вот честным посетителям и поисковикам тупой бот сильно осложнит жизнь. В итоге сайт загнется, а конкуренты будут процветать.

Худший ответ:
Моно посмотреть в сторону fail2ban
Вопрос: Как определить истинный IP адрес сайта?

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

Худший ответ:
Куда А-запись ссылается, там и сайт. И ещё несколько десятков. Когда вы пишите адрес, вместо имени, то веб сервер не знает что вы хотите увидеть и отдаёт то, что настроено по умолчанию.
Вопрос: Что делает этот код php?

Лучший ответ:
Выводит товар в зависимости от месяца. Ошибка в том, что у вас нету условия для февраля:$month = "Февраль";
...
switch($month){
case "Январь": if(strpos($element["NAME"], "кофта") > 0) $res = $element["ID"]; break;
case "Июнь": if(strpos($element["NAME"], "футболка") > 0) $res = $element["ID"]; break;
case "Сентябрь": if(strpos($element["NAME"], "шор") > 0) $res = $element["ID"]; break;
}

Худший ответ:
Перебирает все элементы массива $arResult, и выводит название/описание из элемента $arResult, если $month равен "Январь", Июнь" или "Сентябрь", а название содержит "кофта", "футболка" или "шор".
Не работает потому, что среди вариантов "Января", "Июнь" и "Сентябрь" нет варианта "Февраль".
И еще, вместо strpos() лучше использовать stripos(), и  >= 0 вместо  > 0
Вопрос: Как работать с бд в JS + PHP?

Лучший ответ:
$.ajax({
  url: "index.php", 
  context: $( ".myClass" ), 
  success: function(){ 
    alert('ok');
  }
});
А на стороне сервера роутишь index.php и выполняешь то что тебе нужно

Худший ответ:
В таких случаях используй AJAX.
Вопрос: Редирект на 404 страницу wordpress?

Лучший ответ:
Здравствуйте.function my_template_redirect(){
	if( is_404() && $_SERVER["REQUEST_URI"] != '/404/' ){
		wp_redirect( home_url( '/404/' ) );
		exit();
	}
}
add_action( 'template_redirect', 'my_template_redirect' );

Худший ответ:
Добрый день. Возможно лучше сделать так.function my_template_redirect(){ 
  if( is_404() && $_SERVER["REQUEST_URI"] != '/404/' ){ 
    header("HTTP/1.0 404 Not Found"); 
    echo "<script type='text/javascript'> document.location.href = 'http://site.ru/404/'; </script>"; 
    exit(); 
  } 
}
Так сервер вернёт только 404 ответ, без 301 редиректа.
Вопрос: Почему не работает +1 в скрипте Jquery?

Лучший ответ:
ну наверно потому что это строка, а не integer

Худший ответ:
Оборачивайте математические операции в parseInt()
Вопрос: Как сейчас монетизируют статейные сайты?

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

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

Лучший ответ:
Используйте селениумовские ожидания
https://habrahabr.ru/post/273089/
selenium-python.readthedocs.io/waits.html

Худший ответ:
ну по идеи в try except  оборачивать нужно:
try:
____код который может вызывать исключение
except (класс ожидаемого исключения):
____код на случай возникновения исключения
Или просто проверку if'ом на присутствие кнопки, если она есть то выполнить нужный код, если нет то пропустить.
Как-то так, хотя я могу и ошибаться))
Вопрос: Как изменить id элементов на странице?

Лучший ответ:
Ну, можно добавить вызов функцииfunction sortItemIds() {
   $('[class^=general_block_]').each(function (ind) {
      ind += 1;
      $(this).attr('class', 'general_block_' + ind).attr('id', ind);
      $(this).next('[class^=close-button_]').attr('class', 'close-button_' + ind);
   });
}
Но учитывайте, id элементов не должен начинаться с цифры, там тоже правила именования. Сделайте хотя бы gb1, gb2 и.т.д.
UPD: как правильно заметил Даниил Попов в each первый аргумент это индекс. 
Ваш код кстати не рабочий, т.к. вы id берете с close-button, а его там нет.
Вот готовый пример https://jsfiddle.net/0op64a5m/

Худший ответ:
$("body").on("click",  ".close-button", function () {
  const index = $(this).attr('id');
  $('.general_block_' + index).remove();
  $('.close-button').each(function( index ) {
    $(this).parent('div').attr('id', index);
  });
}
Но лучше так не завязывать хардкорно :) можно сделать иначе:<div class="general_block" id="1"><div align="center"></div><div class="close-button"></div></div>
<div class="general_block" id="2"><div align="center"></div><div class="close-button"></div></div>
<div class="general_block" id="3"><div align="center"></div><div class="close-button"></div></div>
<div class="general_block" id="4"><div align="center"></div><div class="close-button"></div></div>$("body").on("click",  ".close-button", function () {
  var closeButton = $(this);
  var generalBlock = closeButton.parents('.general_block');
  var alignedElement = generalBlock.find('.center');

  // тут уже можете делать, что хотите..
  generalBlock.remove();
}
Вопрос: Стоит ли связываться с фотостоками в качестве доп/заработка?

Лучший ответ:
Стоит понимать, что стоки — это работа и большая работа. Нужно следить за трендами, датами, анализировать рынок и рисовать постоянно. Загружать партиями, много и на постоянной основе. Просто загрузив то, что осталось от основной работы не получится — проверено (хотя это только мой опыт). Везде и всегда нужен основательный подход. 
P.S. Есть знакомые фотографы, иллюстраторы и моделлеры, которые живут на заработок от стоков, он достаточно неплохой, но и они уже занимаются этим не первый год и это их основная деятельность.

Худший ответ:
тут главное = попробовать и посмотреть на "выхлоп"
Вопрос: Как выключить встроенную видеокарту на ноутбуке и использовать только дискретную?

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

Худший ответ:
В BIOS отключите, как посоветовал checkifitworththat
Вопрос: Можно подключить к одному RAID-контроллеру SAS SSD 12Gb/s и два SATA 6Gb/s?

Лучший ответ:
(разъем для подключения miniSAS SF8643)
Это интерфейс подключения дисковой корзины. Какой интерфейс будет на бекплейне дисковой корзины - вопрос производителю. 
В SAS интерфейс вы сможете подключить SATA диск, а наоборот не получится.
Производительность буде зависеть от нагрузки и конкретных дисков.

Худший ответ:
Тупо подключайте у вас вроде вариантов нет
Вопрос: Как использовать старый роутинг в angular6?

Лучший ответ:
1. Использование хэша:RouterModule.forRoot(routes, { useHash: true })
2. Редирект:const appRoutes: Routes = [{
    path: '',
    redirectTo: '/index1',
    pathMatch: 'full'
  }
];

Худший ответ:
Зачем? вот зашел на https://angular-router-basic-example-dp22q8.stackb... в анонимном режиме хрома, зашел в каталог.
Вы имеет ввиду дефолтный роутинг, если нету страницы?{path: '**', component: NotFoundComponent}
Вопрос: Где можно получить данные о пробках в городе а json формате?

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

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

Лучший ответ:
Тебе сюда: apple.stackexchange.com/questions/6901/how-can-i-c...

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

Лучший ответ:
1. Вам нужно знать, что амбиции это круто, но когда ваши амбиции льют через край - это признак глупости.
2. Вам нужно знать, что одному сделать подобный проект - невозможно.
3. Вам нужно знать, что лепить очередной недоклон вк или фб - не имеет смысла.
4. Вам нужно знать, что анонимность в вашей сети это пустой звук. Дуров и ФСБ вам это подтвердят.
5. Вам нужно знать, что идею создать соцсеть пытаются реализовать очень крутые команды и не у всех выходит. А вы не знаете даже основных моментов.
6. Вам нужно знать, что нет смысла использовать чужие идеи в точности, как они были уже использованы. Это не работает.
7. Вам нужно знать, что пытаться у людей узнать идеи для проекта - глупо. С вами никто не поделится, а если поделится, то заезженными темами.
8. Вам нужно знать, что делать такой проект не имеет смысла.

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

Лучший ответ:
Приветствую, сегодня сам столкнулся с такой проблемой. Если у вас есть такое же многофункциональное окно, как и у меня, то объединить мониторы будет очень легко.  (см. скриншот №1).
Для начала заходим в вкладку "дисплей", там выбираем настройки для нескольких дисплеев. (см. скриншот №2).
Далее выбираем раздел "коллаж", и, соответственно включаем его.  
Думаю, принцип вам понятен, спасибо за внимание!

Худший ответ:
Саму Windows настроить в режиме "Расширить рабочий стол на этот монитор".
Вопрос: Ремонт железа! Кранштейны ноутбука, как ремонтировать?

Лучший ответ:
Болты на сквозь обрезать залепить чтобы не царапались. все!

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

Лучший ответ:
Для соединения кабелей.

Худший ответ:
Вероятно, чтобы из кабеля USB-A → Micro-USB и этого переходника сделать кабель OTG. Так теоретически должно работать со всеми устройствами, которые не являются USB-хостами (флэшками, фотоаппаратами…).
Пишут также, что используется инженерами в испытании и прототипировании схем.
Вопрос: Создание простого приложения на react?

Лучший ответ:
Что-то простое, подходящее для диплома - реально. (кроме js нужно знать еще html/css)
время подсказывать не будем, лучше сразу ссылки:
https://reactjs.org/tutorial/tutorial.html
https://egghead.io/courses/building-react-applicat...

Худший ответ:
Голый JS и даже с голым React это очень-очень-очень мало для построение чего-либо существенного, увы.
Если задача стоит просто что-то наваять, то при должном упорстве и за пару месяцев можно наверное что-то сообразить. ключевое слово тут "что-то".
Для того чтобы делать православно и годно вангую минимум полтора-два года упорства и настойчивости по 6-12 часов ежедневно, ибо собрать нужно столько граблей и набить столько шишек, что мама дорогая... Ну и еще пару десятков технологий освоить до кучи, часть из которых весьма нетривиальны, при неприлично скудной документации...
Вопрос: Каким образом сделать связи между четырьмя и одним изначально не существующим объектом?

Лучший ответ:
Как бы не хотелось сейчас создать 3 таблицы для одинаковых сущностей – не делайте этого. Совет от новичка) Потом замучаетесь рефакторить, а рефакторить структуру бд – это все сносить и делать заново. И вы будете это делать. Потому что юзеры в разных таблицах принесут вам проблемы.
Нужно сделать модели (таблицы)
User (все пользователи)
Role (именование ролей – учителя, ученики и т.д.)
UserRole (с полями user_id и role_id)
User связывается с Role через ManyToMany
В модели userpublic function roles()
    {
      return $this->belongsToMany('App\Role', 'user_roles', 'user_id', 'role_id');
    }
В модели Rolepublic function users() {
        return $this->belongsToMany('App\User', 'user_roles', 'role_id', 'user_id');
      }
Можно проще записать но лучше так. Теперь у вас есть связь между ролями и юзерами через промежуточную таблицу 'user_roles'. Почему именно так:
1)	У вас будет одна таблица вместо 10 для любых изменений, связанных с пользователями. Например, добавить новое поле, изменить поле ит.д. Вы это будете делать 1 раз, а не 10, исключая ошибки человеческого фактора
2)	Вы захотите добавить правила доступа. А для этого нужна будет еще одна таблица Perm. Которая будет привязана к ролям. И сделать это будет легко и просто в данной структуре и права доступа вы потом будете менять в несколько кликов.
3)	С несколькими таблицами юзеров у вас будет запутанная раздутая логика со множеством моделей, переменными , вы замучаете ларавелю, запутаетесь сами и снесете все нафиг. 
Ладно, модели создали)) Теперь при регистрации добавим роль пользователю. Допустим учитель регистрируется и выбрает себе роль учитель (пускай будет чекбокс с полем role где value это ид роли).
В контроллере регистрации (если стандартном ларавелевском) идете в методprotected function create(array $data)
и пишете после создания юзера$user->roles()->attach($data['role']);
После чего у вас автоматом создастся запись в промежуточной таблице и юзеру будет присвоена роль учителя. Готово. Теперь вы можете делать все что угодно. 
Например
 получить пользователей указанной роли в контроллере$teachers = Role::find(3)->users()->get();
Правильно написал? только цифры нужно поменять на константы и вообще лушче сразу в модели написать один метод для получения юзеров любых ролей (подставлять название константы роли через переменную) – но это ладно, потом просто передалть. На этом все) Только после создания ролей можно приступать к группам и это уже нужно выносить в отдельный вопрос.

Худший ответ:
Просто создаете таблицу 
school_groups:
name
class_id
type_id(100% типы появятся) 
school_group_users
school_group_id
user_id
user_object(если user может быть учитель или ученик)
admin_id
admin_object(если админ может быть учитель или ученик)
либо вместо admin_id  и admin_object сделать поле access_type и ставить там типо доступа просто и все
Конечно можно делать через систему ролей и доступов, но это раз так в 100 будет трудозатратнее и дороже.
Ну и если вы задаете такой вопрос, вы нормально не сделаете, потому не лезьте в систему ролей.
Вопрос: Можно ли с Arduino программировать на JavaScript?

Лучший ответ:
Iskra JS, например

Худший ответ:
Мне вот эта библа нравится johnny-five.io
Вопрос: Как добавить несколько почтовых адресов в Mail на Mac?

Лучший ответ:
Настройки:
или прям тут:
Странный вопрос.

Худший ответ:
Сменил язык на англ., появилось поле from. Странно... Но вопрос решен спасибо
Вопрос: Как быстро создать блок по БЭМ?

Лучший ответ:
Всё есть: https://github.com/bem-tools/bem-tools-create:bem create my-block.{js,css,pug} -l components
создаст my-block.js, my-block.css и my-block.pug в каталоге ./components/my-block.
Аbem create my-block__{header,content,footer}.{js,css,pug} -l components
нагенерирует./components
  my-block__content/
    my-block__content.js
    my-block__content.css
    my-block__content.pug
  my-block__footer/
    my-block__footer.js
    my-block__footer.css
    my-block__footer.pug
  my-block__header/
    my-block__header.js
    my-block__header.css
    my-block__header.pug
Шаблоны, естесвенно, можно создавать под любые языки.

Худший ответ:
Использую gulp и бэм но папки для блоков приходится вручную создавать и подключать. Какое есть решени для того чтобы быстро создать блок с css и js файлом и папкой под изображения.
Можно написать NPM скрипт, типа npm run add block, а еще можно автоматически создавать блок в зависимости от HTML разметки. Можете глянуть эту сборку и выдернуть себе нужный функционал.
Вопрос: Где лучше искать русскоязычного программиста на разработку мобильного приложения: на Upwork либо на сайтах Фрилансим/fl.ru?

Лучший ответ:
Цена на овощи в деревне сильно ниже чем в городе, значит ли это что они намного хуже? Нет это значит только то что они намного лучше и без химии

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

Лучший ответ:
Да, это нужная штука, и по моим наблюдениям постфиксная встречается значительно чаще, чем префиксная.
Постфиксная возвращает текущее значение, и потом уже увеличивает переменную. Префиксная, сперва увеличивает, и возвращает уже увеличенное.spoilerlet i = 0, zzz = 'abcdef'
while(i < zzz.length) {
  console.log(zzz[i++])
}

Худший ответ:
Это не одно и тоже. Запустите консоле след код.var a=1, b=1;

console.log(a++);
console.log(++b);
Вопрос: Сайты поиска единомышленников по изучению программирования?

Лучший ответ:
Придумайте проект, сделайте репозиторий на github, в README напишите, в чем суть проекта. А дальше киньте ссылки в тематические паблики и telegram-каналы, можете и здесь ответом дописать, вдруг кому интересно будет.

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

Лучший ответ:

если, вдруг, понадобилось вернуть всё обратно, в голову приходит только такой вариант:
чтобы не удалить случайно что-то лишнее, шаблон можно дополнить какими-то символами, вроде воскл знаков.обратите внимание на подчеркивания в меню ctrl+alt+j. если нажать на клавиатуре первую букву аббревиатуры шаблона, будет применён конкретный шаблон из списка. так что название выбирайте так, чтобы было удобно нажимать его первую букву.

Худший ответ:
а как сделать так чтоб это применилось к нескольким елементам? Например есть несколько строк и эти строки надо загорнуть в тег li
Вопрос: Как считывать в память EEPROM arduino uno?

Лучший ответ:
Памяти у контроллера очень мало (не более килобайта), так что если надо больше - цепляйте SD карту

Худший ответ:
Памяти у контроллера очень мало (не более килобайта), так что если надо больше - цепляйте SD карту
Вопрос: Тестирование HDD на отказ, вопросы теории?

Лучший ответ:
Тестировать диски на "отказоустойкивость" - штука непростая и требует большого количества железа и, как следствие, денег. Нельзя просто так взять один-два диска и по результатам их работы сделать выводы об отказоустойчивости данной модели. Для этого нужно иметь как минимум несколько (десятки/сотни) дисков из разных партий + выработать методику, которая будет учитывать статистические погрешности и т.д.
Я бы посоветовал искать уже существующие данные и методики тестирования, но в публичном доступе такое встречается крайне редко. На ум приходит разве что Backblaze с их ежеквартальными и ежегодными отчетами. 
Попробуйте начать от туда.
https://www.backblaze.com/b2/hard-drive-test-data.html
Возможно кто-то типа гугла (вроде что-то припоминается) или амазона делится подобной статистикой, но я ее не искал целенаправленно.
Ну и немного голой теории.

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

Лучший ответ:
Засунуть ее в объект.function foo(obj) {
   // obj.a, obj.b, obj.c
}
foo({a: 10, c: 20});
в ES6 можно легчеfunction foo({a, b, c}) {
   // a, b, c
}
foo({a: 10, c: 20});

Худший ответ:
Если foo всегда принимает 3 или меньше аргументов, при этом соблюдается условие: -если аргументов 2, то это a и c
то вариант решения, не зависящий от типов переменных может быть таким:function foo(a, b, c) {
	if (arguments.length === 2) {
		c = b;
		b = undefined;
	}
	// ...
       console.log(a,b,c);
}
foo("Ivan", "Ivanov", "Ivanovich");
foo("Ivan", "Ivanovich");
Вопрос: Как связать Django и Vue?

Лучший ответ:
Как связать backend от Django и Frontend от Vue?
Через REST API (Django Rest Framework)И вообще, стоит ли так делать?
Да

Худший ответ:
Тыц
Вопрос: Насколько хорошо нужно знать Java для создания приложения Android?

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

Худший ответ:
>>Беглом пробежавшись по урокам от Android, могу предположить что знания могут быть и поверхностными, поскольку весь необходимый функционал (загрузка фото на сервер, регистрация и тд.) имеют уже свои, созданные и протестированные сторонние библиотеки.
Ну 99% java-программистов обладают схожими знаниями. Сторонние библиотеки лучше использовать с осторожностью. ТК проконтролировать качество кода java, как осп-основанного языка крайне проблематично.
Вопрос: Разные процессы на виртуальном рабочем столе?

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

Худший ответ:
Создаем новый виртуальный рабочий столВ Windows нет виртуальных рабочих столов (это термин относится к облачным технологиям). Вы можете создать второй, третий и так далее.Как включить Windows Sandbox.