Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как можно сделать интернет радио с управлением через веб или софт?

Лучший ответ:
Вроде да:
https://www.musicpd.org/

Худший ответ:
Может это подойдет: Клац-клац
Вопрос: Нормально ли работает обычная мышь с Macbook 2017?

Лучший ответ:
Если кто-то найдет этот пост поиском, хочу его предупредить. Ни одна мышь не работает в макоси как в винде. Причина - кривая акселлерации, которая в макоси заточена на тачпад. Вот описание проблемы:В Макосе акселерация, конечно, есть, но она ужасна. Движения мыши дёрганы и неадекватны. Допустим, курсор находится над каким-то пунктом меню, а тебе нужен следующий. Ты начинаешь плавно вести мышку вниз. Она еле-еле шагает по одному пикселю. Ты уже проехал по столу 2 сантиметра, и так и не доехал до нужного пункта меню. Тогда ты слегка ускоряешь движение... и ты уже перепрыгнул через 3 пункта. Чёрт возьми.
ilyabirman.ru/meanwhile/2007/05/27/1
Так что если вы перепробовали кучу мышей и все они с маком работают как-то странно - вы не сходите с ума, с вами все в порядке.
Насколько я могу видеть, проблема до сих пор (10 лет прошло) не решена. Поведение мыши можно слегка приблизить к нормальному виндовому при помощи SteerMouse и т.п. утилит, но полного аналога добиться не получится. Одно радует - после пары недель мучений мозг все-таки приспосабливается к новым правилам игры . И, если вам повезёт, также есть шанс, что вы не заметите смены кривой акселлерации - некоторые не замечают, для них движения мыши в винде и макоси субьективно одинаковы.

Худший ответ:
взял недавно mx master, работает хорошо с mbp 2015, иногда подлагивает
Вопрос: Как хранить наследуемые модели Laravel в БД?

Лучший ответ:
Не надо БД и модели рассматривать как что-то совместное. Это нормальная ситуация, когда несколько моделей ссылаются на одни и те же таблицы и их колонки в зависимости от контекста поведение может быть разным. martinfowler.com/bliki/BoundedContext.html 
При этом модели не обязательно должны (но могут) наследоваться друг от друга, лучшим заменять наследование композицией, тоесть у  Admin/Person/Organization будет метод который возвращает User. С учётом Eloquent самый простой и топорный способ, это связь 1-1, что-то вродеAdmin/Person/Organization {
      function user() {  return $this->hasOne('User', 'id', 'id'); }
}

Худший ответ:
Для чего использовать разные модели?
Для этой цели нужно использовать механизм ролей.
А для механизма ролей можно использовать https://github.com/Zizaco/entrust
Городить отдельные модели под каждую роль нет смысла.
Вопрос: Почему exec ничего не выводит, хотя через командную строку вывод есть?

Лучший ответ:
Вы мануалы читаете?
php.net/manual/ru/function.exec.php
;)

Худший ответ:
как тогда curl'у указать корневую папку для сохранения файла? 
Вам тут cd вообще не нужен.$ curl --help | grep -i "\-o,"
 -o, --output <file> Write to file instead of stdout
 -O, --remote-name   Write output to a file named as the remote file
Вопрос: Как сделать такой эффект на canvas?

Лучший ответ:
Просто круги: jsFiddlevar canvas = document.getElementById("myCanvas")
  , ctx = canvas.getContext("2d")
	, r
;
ctx.translate( 500/2, 500/2); // передвинуться на центр листа

ctx.font = "14px Arial";
ctx.textAlign = "center";
ctx.textBaseline="middle"; 

ctx.fillStyle = "#999";
for(r=100;r<=500;r+=20) circle(r);

function circle(r) {
  var dist = 16
		, n = Math.round( 2 * Math.PI * r / dist)
		, i
	;

	for(i=0;i<n;i++) {
		ctx.rotate( 2 * Math.PI / n); // повернуть лист
		ctx.fillText( Math.round(100*Math.random())%2?0:1,0,-r);
	}
}
Для меняющегося плавными областями цвета цифр можно задействовать шум Перлина – берутся координаты (x,y) в которые попадает очередная цифра, и через шум Перлина получается её яркость – так получаются не хаотичные, а плавными областями, как облака, яркости. Напр. реализация шума Перлина на JS.

Худший ответ:
Немножечко геометрии и математических расчётов.
Вопрос: Почему строковый метод .replace() в python не проводит нужное количество замен?

Лучший ответ:
Посчитаем количество пробелов в промежутках между строками в вашем примере:>>> a = '0 1  2   3    4     5      6       7        8         9'
>>> import re
>>> [len(x) for x in re.split('\d',a)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
вы меняете каждые 3 пробела на 1c=a.replace('   ', ' ', 2000)
>>> [len(x) for x in re.split('\d',c)]
[0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 0]
Соответственно там где количество пробелов менее 3 - их оставляем
Там где более или равно - каждые три пробела меняем на один + остаток не делящийся на 3
К примеру для 8 пробелов:>>> (lambda x: x//3 + x%3)(8)
4
Для 9:>>> (lambda x: x//3 + x%3)(9)
3
Параметр 2000 указывает лишь на то, что в каждом случае провести не более 2000 замен. Поскольку у вас количество пробелов в примере заведомо меньшее - этот параметр не оказывает никакого влияния. Если было бы больше - то было бы произведено количество замен, не большее 2000.
Наглядно изменение третьего параметра:>>> [len(x) for x in re.split('\d',a.replace('   ', ' ', 0))]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> [len(x) for x in re.split('\d',a.replace('   ', ' ', 1))]
[0, 1, 2, 1, 4, 5, 6, 7, 8, 9, 0]
>>> [len(x) for x in re.split('\d',a.replace('   ', ' ', 2))]
[0, 1, 2, 1, 2, 5, 6, 7, 8, 9, 0]
>>> [len(x) for x in re.split('\d',a.replace('   ', ' ', 3))]
[0, 1, 2, 1, 2, 3, 6, 7, 8, 9, 0]
>>> [len(x) for x in re.split('\d',a.replace('   ', ' ', 4))]
[0, 1, 2, 1, 2, 3, 4, 7, 8, 9, 0]
>>> [len(x) for x in re.split('\d',a.replace('   ', ' ', 5))]
[0, 1, 2, 1, 2, 3, 2, 7, 8, 9, 0]
...

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

Лучший ответ:
Исправил синтаксические ошибки.Чо, правда? Давайте-ка посмотрим, так ли это.
Пропущен if или условие лишнее:} else (date.getDay() == 0) {
Пропущен if или условие лишнее:} else (a < 1) {
Пропущено выражение между ? и : (UPD. Или же : лишнее - дальше в строке есть ещё одно):this.updateTime.getMonth() > 9 ? : '0'
Короче, ошибки исправлены на пять с плюсом.Подскажите, как еще можно оптимизировать(зарефакторить) данный js код?Можно его выбросить. Не стыдно подобный мусор было показывать?

Худший ответ:
Берем портянку if-elseif (date.getDay() == 1) {
	period = `${date.toLocaleDateString()} - {date.setHours(168).toLocaleDateString()}`; 
} else if (date.getDay() == 2) {
	period[i] = `${date.setHours(-24).toLocaleDateString()} - {date.setHours(144).toLocaleDateString()}`;
} else if (date.getDay() == 3) {
	period[i] = `${date.setHours(-48).toLocaleDateString()} - {date.setHours(120).toLocaleDateString()}`;
} else if (date.getDay() == 4) {
	period[i] = `${date.setHours(-48).toLocaleDateString()} - {date.setHours(120).toLocaleDateString()}`;
} else if (date.getDay() == 5) {
	period[i] = `${date.setHours(-72).toLocaleDateString()} - {date.setHours(96).toLocaleDateString()}`;
} else if (date.getDay() == 6) {
	period[i] = `${date.setHours(-96).toLocaleDateString()} - {date.setHours(72).toLocaleDateString()}`;
} else (date.getDay() == 0) {
	period[i] = `${date.setHours(-120).toLocaleDateString()} - {date.setHours(48).toLocaleDateString()}`; 
}
и переписываемlet arr = [[-120,48], [null,168], [-24,144], [-48,120], [-48,120], [-72,96], [-96,72]];
let day = date.getDay();
let dateString1 = arr[day][0] === null ? date.toLocaleDateString() : date.setHours(arr[day][0]).toLocaleDateString();
let dateString2 = arr[day][1] === null ? date.toLocaleDateString() : date.setHours(arr[day][1]).toLocaleDateString();
period[i] = `${dateString1} - ${dateString2}`;
Плюс, если уж вы используете es6 синтаксис (классы у вас там, шаблонные строки), то объявляйте переменные через const/let, а не var
Вопрос: На чём писать 2d игру на Java под Android с векторной графикой?

Лучший ответ:
libgdx 
Ну или как вариант jMonkeyEngine

Худший ответ:
чем unity не угодил?
Вопрос: Аппаратное шифрование трафика?

Лучший ответ:
Шифрование, вообще говоря, довольно ресурсоемкая процедура.
Небольшие нагрузки потянет умно-конфигурируемый роутер типа Микротик.
Но его процессор протухает при больших нагрузках.
Специализированные высокопроизводительные решения для шифрования - очень дороги.
Какая нибудь недорогой компактный компьютер с двумя сетевыми картами и с операционной системой pfSense  - лучший вариант из простых. Это такой дистрибутив FreeBSD, специализированный для работы как шлюз, имеет веб-управление, управляется по сети, монитор ему не нужен (ну разве что при первоначальной установке с монитором попроще будет).

Худший ответ:
Fortigate Начиная с 60, но см исключения тут.
У вышеперечисленных устройств имеется отдельный пакет процессор, поэтому даже перегруженный Центральный процессор (антивирус, Url Filtering) не роняет основные функции. Я не знаю как цены у Cisco - но на подписку/гарантию железа у Фортинет они демократичные.
Если цена не в бюджете - spotifi предлагает подходящий вариант.
Дмитрий Шицков - после того, как я познал дзен настроив ASA - никому его не рекомендую.
pfsense,  Fortigate, CheckPoint - хотя бы логичные в настройке. У ASA логика очень интересная ..... Я её так и не постиг.
Вопрос: Как сделать быстрый ввод тегов В PhpStorm?

Лучший ответ:
Это называется в шторме live templates. Там можно указать свои собственные шаблоны ака сниппеты. Собственно автор скорее всего так и сделал

Худший ответ:
Emmet же вроде?
Вопрос: Нужно ли идексировать политику конфиденциальности, пользовательское соглашение?

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

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

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

Худший ответ:
Мои импровизированные тесты показывают, что яндекс почта вообще ничего не отправляет в спам. Попробую использовать ее как основную, посмотрим так ли это на самом деле
Вопрос: Как установить Windows 10 без обновления с Windows 8?

Лучший ответ:
Последовательное обновление нужно (Microsoft утверждает, что обязательно) для того, чтобы Windows 10 подхватила ключ от Windows 8.
После того, как ключ активирован в Windows 10, вы можете ее снести и поставить заново начисто с нуля сразу версию 10 - ключ будет работать. Проверено.

Худший ответ:
1) Создать загрузочный диск или флешку установочную Windows 10
2) Установить. Ключ ВВОДИТЬ НЕ НУЖНО.
3) Активировать.
4) Пользоваться.
Вопрос: С чего начать изучение автоматизации на Python?

Лучший ответ:
Так если вы уже юзаете soapui, то изучите технологии - XML и HTTP, чтобы могли с ними работать в python-е.
1. Гуглите и читаете документацию и пишете скрипт, который отправляет HTTP запрос и получает ответ.
2. Гуглите и читаете документацию и пишете скрипт, который отправляет XML запрос по HTTP и получает XML ответ.
Profit.

Худший ответ:
Imho  тестирование апи, тем более rest не должно зависеть от языка реализации. Я использую soapui.
Вопрос: Интервьюируем программиста?

Лучший ответ:
Шутка «найди того, кто тебе проинтервьюирует будущего интервьюера» слишком поверхностна, чтобы её можно было считать остроумной.А это не шутка. 
Чтобы быть хорошим разработчиком, нужно очевидно обладать техническими компетенциями.
Чтобы прособеседовать человека на должность разработчика, нужно обладать не меньшими компетенциями.
Все, круг замкнулся.
И кстати что это за интервью на фрилансе? Если у вас такого масштаба проект что кто-то согласен ждать интервью - зачем вам вообще фрилансеры? Обратитесь в любое HH агенство и возьмите людей в штат.
Ну или как вариант, выбирайте сами исходя из рекомендаций знакомых, ну и в целом:
- как быстро человек отвечает на сообщения
- скинул он шаблонный отклик или же изучил задачу (Пример плохой оценки "300 часов за все". Хорошая оценка декомпозируется на кусочки не более 4-8 часов)
- Задает ли он вопросы и какие.
Готовьтесь что 49 из 50 будут этим требованиям не соответствовать.
Отдельно хочу подчеркнуть еще несколько моментов:
- не работайте с сильно дешевыми фрилансерами. Если у человека в портфолио сплошные "сайт под ключ за 10 000") - он очевидно не сделает вам нестандартное тз.
- если ваше тз больше 5 страниц - его будут читать только люди с высоким рейтом и то не все.
- любые технологии которые предлагает вам разработчик проверяйте на массовость. Go хороший язык, но искать замену этому разработчику вы будете долго и больно. Не путайте массовость и модность. Node.js модный - но ситуация см выше.

Худший ответ:
Дополнительная прокладка в виде стороннего разработчика, который будет для вас кого то там выбирать - не нужна
Делаете выборку из людей, которые вам подходят по ценнику +-$5
Сортируете их по вашему желанию
Делите ТЗ на мелкие кусочки
И проходитесь по списку сверху вниз пока не остановитесь на том, кто сделает быстрее или больше, или больше понравится взаимодействие
Вопрос: Как в node js выполнить одновременно 500 запросов?

Лучший ответ:
Я бы использовал библиотеку async, там есть много интересного, но именно вам должно помочь это https://caolan.github.io/async/docs.html#times

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

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

Худший ответ:
Зависит от вашего сеоплана если его нет то лучше на одном
Вопрос: Есть ли шаблоны интерфейсов для программ?

Лучший ответ:
Есть, называются UI kit ну или UI psd, что часто одно и тоже. Это наборы элементов интерфейса из которых можно создать любой свой.
Реже можно найти прямо интерфейс уже собранный, но таких совсем мало встречается.
Если вам для вдохновления или поиска удачных решений для удобного интерфейса, то просто смотрите на реальное ПО и берите лучшее. Шаблоны в этом плане не помогут.

Худший ответ:
Ищите по названиям "Пользовательский интерфейс", "Man-machine interface", "Human-machine interface".
Вопрос: Где прописывать ключи и описание блога на Wordpress?

Лучший ответ:
У вас установлен плагин Yoast Seo. В старых версия было отдельное окно, где вы могли задать "ключи" для Главной. Теперь, метаданные для Главной и для других страниц задаются на странице редактирования конкретной страницы / записи. Можно задавать общий шаблон для страниц, записей, кастомных типов записей, таксономий в настройках плагина.

Худший ответ:
в целом для сайта - это наверное по умолчанию для Главной страницы и всех других страниц, для которых Вы вручную не будете этого делать? 
Что мешает установить All in One SEO Pack или Yoast SEO - в них есть всё что Вам нам нужно и даже больше )
Вопрос: Чем бекапить все базы Postgres без прерывания доступа к сервису?

Лучший ответ:
pg_basebackup
Сделает консистентную физическую копию базы. Соответственно размер бекапа примерно равен размеру кластера postgresql + накопленные за время копирования WAL.
Восстанавливаться элементарно запустив postgresql с указанием PGDATA в место где лежит результат pg_basebackup.
Им обычно реплики поднимают.
pg_dump или pg_dumpall
Логический бекап данных. Обычно не очень подходит по критерию быстро восстанавливаться т.к. при восстановлении будут перестраивать индексы, проверять fk и прочие constraint, зато как правило сильно (в пару раз без сжатия легко, со сжатием ещё больше разница) компактнее по размеру бекапа
Все из штатной поставки Postgresql. И другие способы бекапа Postgresql в основе своей опираются на них же.

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

Лучший ответ:
Как ведет себя демон
Вызовите экзорциста, пусть разбираетсяон работает пока я не завершил сеанс
дакак можно сделать
systemctl или загуглите "автозапуск linux"

Худший ответ:
Нифига. Демон по своему определению работает не в терминале, а фоновым процессом. Если же нет - запускайте с префиксной командой nohup и закрывайте терминал - нохап позаботится о ней.
Вопрос: Какая разница между патернами?

Лучший ответ:
Во втором случае вызовы 
var App1 = new App();
var App2 = new App();
создадут два разных объекта.
Первый случай гарантирует что на странице будет только один App.
Также есть разница в производительности, т.к. прямой вызов метода быстрее, чем поиск и вызов в прототипе - разница очень мала, но в критических местах может быть ощутимой$(function(){

  // Для первого способа можно изменять объект, зная что эти изменения видны всем
  App.prop1 = true;

  // Для прототипов изменения App1 не отражаются родительском App
  var App1 = new App();
  App1.prop1 = true;

});
$(function(){

  // Для первого случая есть изменения
  console.log(App.prop1); // true

  // Для второго случая создается новый потомок, который ничего не знает о других потомках
  var App1 = new App();
  console.log(App.prop1); // undefined

});

Худший ответ:
Если вам нужен всего один и единственный App - то используйте модуль. 
А если у вас набор из разных App - то их как раз правильно будет создавать в виде экземпляров класса App. 
Вас скорее всего смутило, что и в первом и втором  примере - методы описаны одинаково ) Но паттерны, как таковые овершенно разные и служат разным целям
Вопрос: Как правильно передать JSON в компонент vue js?

Лучший ответ:
<my-component :docs='{{ json }}' />
И не надо никакого JSON.parse, docs будет объектом.

Худший ответ:
computed сделай
И вообще, в props и data не должно быть атрибутов с одним именем
Вопрос: Можно ли реализовать деплой части проекта?

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

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

Лучший ответ:
Настройки -> Дополнительные настройки -> Контекстное меню -> снять галочку с пункта "Показывать при выделении текста кнопки "Найти и "Копировать""

Худший ответ:
А теперь ещё и "Настройки - Переводчик - Переводить выделенные слова и фразы".

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

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

Худший ответ:
Нет. Нужно уверенное владение, минимум, питоном, иначе знания останутся только теоретическими.
Вопрос: Аналог компонентов 1C-Bitrix в Symfony?

Лучший ответ:
В Symfony обычно основной код работает в сервисах, а контроллер вызывает нужный сервис. Большой плюс - один раз создал код работы с сущностью, и можно использовать его в любом месте - в любом контроллере, в другом сервисе, в шаблоне. Весь год работы с сущностью - в одном месте (в одном сервисе).
1) Сделать сервис, который строит список последних новостей (этот же сервис использует кэш).
2) Создать Twig расширение, которое добавляет функцию получения списка последних новостей (получение из созданного сервиса). Например, создать функцию "lastNews". Ссылку на сервис новостей настроить через контейнер (в services.yml, или где там делаете сервисы). (ссылки для создания функций: 1, 2)
3) В основном шаблоне (app/Resources/views/layout.html.twig) вызвать созданную функцию. Упрощённо примерно вот так:{# app/Resources/views/base.html.twig #}
<!DOCTYPE html>
<html lang="ru">
    <head>
    </head>
    <body>
        {% block body%}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>{# app/Resources/views/layout.html.twig #}
{% extends 'base.html.twig' %}

{% block body %}
<div class="container">
    <div class="sidebar">
        {% block sidebar %}
            <ul class="sidebar-menu">
            {% for item in lastNews() %}
              <li><a href="{{ item.href }}">{{ item.title }}</a></li>
            {% endfor %}
            </ul>
        {% endblock %}
    </div>
    <div class="content">
        {% block content %}
        {% endblock %}
    </div>
</div>
{% endblock %}

Худший ответ:
В Symfony обычно основной код работает в сервисах, а контроллер вызывает нужный сервис. Большой плюс - один раз создал код работы с сущностью, и можно использовать его в любом месте - в любом контроллере, в другом сервисе, в шаблоне. Весь год работы с сущностью - в одном месте (в одном сервисе).
1) Сделать сервис, который строит список последних новостей (этот же сервис использует кэш).
2) Создать Twig расширение, которое добавляет функцию получения списка последних новостей (получение из созданного сервиса). Например, создать функцию "lastNews". Ссылку на сервис новостей настроить через контейнер (в services.yml, или где там делаете сервисы). (ссылки для создания функций: 1, 2)
3) В основном шаблоне (app/Resources/views/layout.html.twig) вызвать созданную функцию. Упрощённо примерно вот так:{# app/Resources/views/base.html.twig #}
<!DOCTYPE html>
<html lang="ru">
    <head>
    </head>
    <body>
        {% block body%}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>{# app/Resources/views/layout.html.twig #}
{% extends 'base.html.twig' %}

{% block body %}
<div class="container">
    <div class="sidebar">
        {% block sidebar %}
            <ul class="sidebar-menu">
            {% for item in lastNews() %}
              <li><a href="{{ item.href }}">{{ item.title }}</a></li>
            {% endfor %}
            </ul>
        {% endblock %}
    </div>
    <div class="content">
        {% block content %}
        {% endblock %}
    </div>
</div>
{% endblock %}
Вопрос: Ubuntu 15.10 не может установить php 7?

Лучший ответ:
15.10 уже не поддерживается (поддержка не-LTS версий 9 месяцев). Следовательно, не приходят обновления безопасности. И именно поэтому в упомянутом и используемом вами репозитории теперь тоже пусто, разработчик просто удалил поддержку устаревшей Ubuntu 15.10.
Обновляйтесь до 16.04, там php 7 доступен из стандартных репозиториев.
P.S. В Ubuntu 16.04 ставьте пакеты без версии: php, php-fpm, php-mysql; подтянется версия 7 по зависимостях, обновлять будет проще.

Худший ответ:
можно через Менеджер пакетов Synaptic если в убунту он есть, в линуксе он есть
Вопрос: Почему падает mysql на VDS?

Лучший ответ:
Вашей VDS нехватает памяти, в критической ситуации когда вся память и своп уже заняты, ОС запускает процес oom_killer (oom = out of memory) который убивает процессы чтобы освободить память.

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

Лучший ответ:
Наиболее надежным средством от криптовымогателей является версионное резервное копирование.
Наиболее простой способ это сделать - развернуть ownCloud (делается за 1 час с перекуром, обедом, и поболтать с коллегами) и настроить на нужных клиентах синхронизацию с облаком.
Заодно избавитесь от: 
-ой, у меня файл потерялся!
-когда?
-да месяца два назад как из корзины стерла!

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