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

Лучший ответ:
У www.acronis.com что-то подобное было. Ставим систему, снимаем "образ" и используем его необходимое количество раз.

Худший ответ:
Я использую для этой цели пакет Acronis True Image уже 2,5 года и очень доволен.
https://www.acronis.com/
Это мощная программа с широкими возможностями и гибкой настройкой под нужды пользователя. Создана для профессионалов.
В частности, она позволяет сохранить полный образ системы с нужным Вам софтом и с сохранением всех пользовательских настроек (как для ОС, так и для софта) и возможностью последующей инсталляции всего этого "на чистое железо".
Как за все хорошее, за нее надо заплатить – деньгами и временем на ее изучение. Но в данном случае вложение, я считаю, оправдано.
Я купил online:True Image 2013 by Acronis (Russian) – 51 евро
True Image 2013 by Acronis Plus Pack (Russian) – 30 евро
Инсталляционный диск – 23 евро
Заплатил через PayPal, диск получил по почте.
Это было в 2013 году. Сейчас есть более свежая версия – покупайте ее.
Не советую пытаться искать халявные варианты: резервное копирование – это не тот случай, когда надо экономить. В случае чего (не дай бог) потеряете больше.
Не спешите расставаться со своими деньгами. Для начала почитайте статьи про Acronis на хабрахабре.
Успехов!
Владислав
Вопрос: Как в JS сделать функцию асинхронной?

Лучший ответ:
Алексей Тен: посоветовал пользовать setTimeout
в NodeJS есть метод
process.NextTick(callback(){
  //ваш код
});
В Node работает всего два потока (по умолчанию. Вроде бы можно как-то запустить дополнительные event-loop'ы, но это совсем другая история). Первый - main поток, исполняющий ваш код, второй - поток обработки асинхронных операций (EventLoop). Пока вы свой код не поместили в очередь на выполнение, он будет выполняться в синхронном режиме, т.е. в потоке main. process.NextTick помещает ваш код в очередь и сразу же возвращает управление main-потоку.
Вроде как-то так. 
ЗЫ: Поправьте, если я где-то ошибся.

Худший ответ:
process.NextTick помещает ваш код в очередь и сразу же возвращает управление main-потоку.
Вроде как-то так. 
ЗЫ: Поправьте, если я где-то ошибся.
Если ставить в очередь с помощью nextTick, то в данном случае вы получите по сути тот-же синхронный вариант.
Дело в том, что nextTick имеем высший приоритет в очереди, и если мы на основании его сделаем "рекурсивный коллбэк" то получим его четко последовательное выполнение, как обычной рекурсии.function sleep(ms, callback) {
  var cDateMs = (new Date()).getTime() + ms;
  process.nextTick(function waitForTime() {
    if (cDateMs > (new Date()).getTime()) {
      process.nextTick(waitForTime);
    } else {
      callback();
    }
  });
}
Вместо nextTick() нужно использовать setImmidiate.function sleep(ms, callback) {
  var cDateMs = (new Date()).getTime() + ms;
  setImmediate(function waitForTime() {
    if (cDateMs > (new Date()).getTime()) {
      setImmediate(waitForTime);
    } else {
      callback();
    }
  });
}
Вопрос: Если нет выделенного IP, какой выход?

Лучший ответ:
Просто поднять тоннель до VPS  с белым адресом любым удобным для вас способом. Можно и vpn и ssh использовать.
Ну и уже там пробросить нужные порты, либо указать маршруты, в общем организовать доступ к серому серверу имея полный доступ к шлюзу с белым адресом.

Худший ответ:
Ставьте VPN. А еще проще - приобрести отдельный VPN.
Вопрос: Как по клику на определенную ссылку открыть popup-окно, в котором должен начать проигрываться mp3-файл?

Лучший ответ:
В этом решении больше проблем советы:
1) ползунок сможет работать только в HTTP/1.1+. Соответственно с PHP Вы контент выдать не сможете (нормально) . Поставьте спереди nginx, и не морочте себе голову. Или стримайте инструментами для стриминга.
2) проигрывайте аудио через javascript || flash. (если уже - опишите как у Вас получилось поиметь подобные проблемы)
На первый вопрос не достаточно данных для ответа. В других местах всё работает а фаербаг никто не отменял. 
Уточните задачку. (недавно другу в похожем помогал, связанное свежо в памяти)

Худший ответ:
Попробуйте  X-Sendfile
Вопрос: Баг со шрифтом в Firefox 20

Лучший ответ:
Кстати, разноцветная картинка Google тоже сломана. Проблема не со шрифтами?

Худший ответ:
Скажите, а вы на новом профиле используете ФФ 20? Я просто ради эксперимента скачал себе Nightly build (22) под Windows, и проверил на пустом и на старом профиле, и вроде бы всё выглядит окей.
В about:config ничего связанного с ClearType у вас там нет? Мало ли что-нибудь изменило ваши настройки.

Ну и ради экспериментов, попробуйте в FireBug найдите шрифт arial, serif и отключите их в CSS. Посмотрите, как отобразится другой шрифт на странице
Вопрос: Как заменить Регулярное выражение — регулярным выражением?

Лучший ответ:
re должно быть строкой. И зачем в регулярке (\n) я не понял.
В общем, я бы сделал так:function chistka() {
  var s = document.getElementById('k2').value;
  var ri = />\s+</gmi;
  var re = ">\n<";

  var result = s.replace(ri, re);
  document.getElementById('k2').value = result;
}

Худший ответ:
Переменная должна быть строкой:function chistka() {
  var s = document.getElementById('k1');
  var result = s.value.replace(/(>)\s(<)/gmi, '$1\n$2');
  s.value = result;
}
Спасибо ВСЕМ!
Вопрос: Нарушение авторских прав дизайнера. Что делать?

Лучший ответ:
Если бы я столкнулся с такой ситуацией, то действовал бы так:
1. Если магазин работает на одной из больших площадок,  таких как алиэкпресс, написал бы в поддержку.
2. В случае же самостоятельного магазина "где-то в азии", я бы плюнул и не стал заморачиваться. Больше сил потратите и времени. 
Кроме того, если ваши работы копируют, это признак их качества :)

Худший ответ:
Если бы я столкнулся с такой ситуацией, то действовал бы так:
1. Если магазин работает на одной из больших площадок,  таких как алиэкпресс, написал бы в поддержку.
2. В случае же самостоятельного магазина "где-то в азии", я бы плюнул и не стал заморачиваться. Больше сил потратите и времени. 
Кроме того, если ваши работы копируют, это признак их качества :)
Вопрос: Как настроить автоматическое включение сервера при подаче питания?

Лучший ответ:
В биосе сервака зайти в "Boot" - "Restore on AC Power Loss" - и включить "Power On"

Худший ответ:
Доброго всем.
Тема старая, понимаю, но у меня тут почти такой же, как у ТСа раритет лежит. HP Proliant del 160 gen 9
И задача у меня - почти такая же, как у ТСа: надо чтобы оный раритет, включался и выключался по-расписанию.
Офф.саппорт говорит: всё есть в инструкции... ах вы утеряли инструкцию за давностью лет... ну так вы можете её у нас скачать... нет-нет-нет мы не можем вот просто так вам объяснить где в мозголомном и интуитивно непонятном тебю нашей железяки настраивается расписание... нет-нет-нет... никак не можем...
Может быть тут найдутся желающие подсказать, хотя бы примерное направление в ветке настроек сервака?
Вопрос: Как сделать анимацию как на этом сайте?

Лучший ответ:
- Сделать как на вашем примере, т.е. через SVG
- Сделать видеоролик, вставить через тег «video»
Привязать к скролу и к ховеру.

Худший ответ:
Это Canvas
Долго и муторно наверное их было рисовать... подумайте 100 раз - надо ли Вам это...
К тому же я перешел на сайт и не сразу даже догадался, что нужно навести курсор на этих зверей и человечков для анимации ) 
В Вашем случае возможно будет проще сделать анимированные gif-ки и вставлять их на страницу при прокрутке?
Вопрос: Nginx и PHP, как перенастроить с Apache?

Лучший ответ:
1 глупый ответ
rpm -e apache2
rpm -1 nginx
2. ответ по умнее. (если Вам нужны оба) В конфиге авача найдите listen: *:80 и поменяйте на 8080
После этого они перестанут конфликтовать за порты

Худший ответ:
chkconfig apache2 off && chkconfig apache2 --del
Вместо apache2 может быть httpd, нет центоси под рукой, чтобы проверить.
Вопрос: Проблемы с панелью задач Windows

Лучший ответ:
Решение найдено. Нужно было сделать именно Logout/Logon (смена пользователя)! Перезагрузка и завершение работы не помогает!

Худший ответ:
Попробуйте выключить в свойствах auto-hide. Ну или выключено, включить и выключить.
Равно как можете поколдовать с lock/unlock.
Вопрос: Как мне решить проблему с доступностью элементов jquery?

Лучший ответ:
Ну а html где?  Как Вы подгружаете контент, динамически? 
Если да, то навешивайте событие после того как контент загрузился.
А лучше покажите нам Ваш код на jsfiddle.net

Худший ответ:
попробуйте $(document).on('click', ...);
Вопрос: Есть ли в Yii2 готовый виджет комментариев и виджет форума?

Лучший ответ:
Ну во первых более корректно это называется модуль. Виджет это кое что другое.
https://yiigist.com/package/rmrevin/yii2-comments#...
А вообще, вот очень хороший сайт по расширениям для yii и yii2.
https://yiigist.com/
P.S. Для первой версии есть форум , может быть перепишете на 2 версию.

Худший ответ:
Добрый день!
Помогите пожалуйста по https://yiigist.com/package/rmrevin/yii2-comments#
куда писать <?php
use \rmrevin\yii\module\Comments\Permission;
use \rmrevin\yii\module\Comments\rbac\ItsMyComment;

$AuthManager = \Yii::$app->getAuthManager();
$ItsMyCommentRule = new ItsMyComment();

$AuthManager->add($ItsMyCommentRule);

$AuthManager->add(new \yii\rbac\Role([
    'name' => Permission::CREATE,
    'description' => 'Can create own comments',
]));
$AuthManager->add(new \yii\rbac\Role([
    'name' => Permission::UPDATE,
    'description' => 'Can update all comments',
]));
$AuthManager->add(new \yii\rbac\Role([
    'name' => Permission::UPDATE_OWN,
    'ruleName' => $ItsMyCommentRule->name,
    'description' => 'Can update own comments',
]));
$AuthManager->add(new \yii\rbac\Role([
    'name' => Permission::DELETE,
    'description' => 'Can delete all comments',
]));
$AuthManager->add(new \yii\rbac\Role([
    'name' => Permission::DELETE_OWN,
    'ruleName' => $ItsMyCommentRule->name,
    'description' => 'Can delete own comments',
]));
там написано In auth manager add rules (if Module::$useRbac = true):
но в какой файл то надо, тыкните носом пожалуйста
еще, есть у кого нибудь этот модуль на примере, где можно посмотреть его работу?
Вопрос: С чего начать изучение по внедрению amocrm?

Лучший ответ:
с нуля Вы набьёте огромное количество шишек и своих и клиентских, вплоть до личной ненависти и судебных исков. Самое лучшее, что могу посоветовать - поработать в компании, внедряющей CRM, хотя бы на 5 проектах. Если такой возможности нет, изучайте различные методологии внедрения. Например, у Террасофт (https://www.terrasoft.ru/services/automation/ci). У Террасофт методология, конечно, не для малого бизнеса, но в целом даёт понимание, что и как делать. Да, и если хотите заниматься направлением всерьёз, изучайте не технические детали - на них всегда сможете найти программиста - изучайте и делайте продажи и маркетинг

Худший ответ:
С Amostart.
Вопрос: Как прикрепить swipe к слайдеру bootstrap?

Лучший ответ:
Hammer.js + JS Методы Bootstrap = Результат

Худший ответ:
Вот  сразу несколько замечательных решений, выбирайте какой больше нравится lazcreative.com/blog/adding-swipe-support-to-boots...
если будут проблемы с пониманием или переводом - пишите помогу чем смогу)
Вопрос: Где вы храните бекапы своего ПК?

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

Худший ответ:
В облаке.
У меня фотографии даже на пк не попадают, сфоткал на телефон ушло на ядиск(а потмо уже на пк с ядиска).
музыка тоже вся на телефоне, вконтакте или если что выкачать с торрента не долго.
зачем фильмы хранить и тем более бекапить? это как раз самое не ценное что можно потерять.
рабочие файлы на рабочих серверах, с которых бекап в облако идет.
так что ноут/пк не более чем рабочая станция с несколькими софтинами в нынешних реалиях, все так или иначе крутится в интернете.
Безопасность нужно не проеб*анить самому - привязка к телефону/2х фактор авторизация везде есть.
Вопрос: Как лучше всего организовать мультиязычность на WordPress?

Лучший ответ:
Я использую WPML с выводом языков в поддомены. Типа ru.site.com для русского и site.com для англ. Удобно.

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

Лучший ответ:
Вы имеете как минимум начальное представление о схемотехнике?
Вы умеете держать паяльник?
Если нет, то очевидно, что сами вы поДчинить себе ноутбук не сможете. Это не похоже на «банальную» неисправность.

Худший ответ:
Явно с железом что то.
Вопрос: Как вернуть указатель в функции поиска подстроки?

Лучший ответ:
st - i - это указатель на начало совпадающей части строк. Если вам нужно позицию первого вхождения, то нужно ее вычислить, как разницу указателя начала исходной строки и указателя на начало совпадающей части.
Кроме того
1) Вот это вот явно не то, что вы хотите (и не то, что написано в комментарии) pa-i; //сбрасываем паттерн на исходное положение
st-i; // сбрасываем строку на исходное положение
2) Почитайте про алгоритмы нахождения подстроки в строке

Худший ответ:
Вы все задачи с https://stepic.org/ будете так решать?
Вопрос: Где можно достать базу данных регионов РФ с ключевыми словами?

Лучший ответ:
фиас, кладр, dadata.ru,
vk api

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

Лучший ответ:
Угнали сегодня — воспользовались отстояв какое-то время: так что менять для праведной паранойи

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

Лучший ответ:
Также можете попробовать найти Lego Mindstorms. Там ещё и программирование, помимо конструирования =)

Худший ответ:
Тоже всеми руками за pidgin. Он меня уже не первый год ублажает. Только вот на счет одноклассников не в курсе, но они и не нужны.
Вопрос: Как отключить логирование root cron jobs в /var/log/syslog (и вообще куда-либо) в ubuntu 14.04 lts 64 minimal?

Лучший ответ:
решение:/etc/rsyslog.d/50-default.conf- 
*.*;auth,authpriv.none  -/var/log/syslog+ 
*.*;auth,authpriv.none;cron.none  -/var/log/syslog
service rsyslog restart

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

Лучший ответ:
Главное, чтобы тексты были качественными и уникальными. Остальное в сотни раз менее важно.

Худший ответ:
robots.txt, sitemapНапример сейчас есть вопрос, нужно ли в договоре публичной оферты выделять семантически номера телефонов, email
нет не нужно
Вопрос: API у операторов существует ли?

Лучший ответ:
API? У опсосов?) Лет через тыщу.

Худший ответ:
Могу сказать, что для ЛК Билайна такого API точно нет.
Вопрос: Создание роутера php. Другой способ разборки url?

Лучший ответ:
А не проще ль не городить велосипедов и взять какую то готовую библиотеку?  Наприме https://github.com/nikic/FastRoute

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

Лучший ответ:
Посмотрите в сторону REST API, может подойдёт.
Проверку можно реализовать на токенах. Передавая его при запросах.
api.mail.ru/docs/guides/restapi

Худший ответ:
@kealman браузер <-> приложение.
Нафига? Если приложение может устанавливать сетевые соединения, то оно сразу должно ходить на сервер.
Вопрос: Как исправить static:: php5.2 ошибка T_PAAMAYIM_NEKUDOTAYIM ?

Лучший ответ:
"Да хоть говнокод"? Лехко!class BaseClass {
  public static function base_create($class, $params = array()) {
    return new $class($params);
  }
}
class OtherClass extends BaseClass {
  public static function create($params = array()) {
    return self::base_create(__CLASS__, $params);
  }
}
Но лучше обновите пхп. И не используйте статические члены класса

Худший ответ:
никак в php 5.2 нет такой конструкции, используйте self::
Вопрос: Какой js framework выбрать для PhoneGap?

Лучший ответ:
ionicframework.com - как по мне лучшее что есть (UI kit + интеграция в angular.js).
Так же хочу заметить что этот фреймворк уже включает в себя решения самых распространенных проблем (особенно у новичков).

Худший ответ:
я работал с jquerymobile
фактически вот (с мобилы)
Вопрос: Где хранится пароль VK.com в официальном приложении vkapp в IOS?

Лучший ответ:
токен авторизации как раз таки всё и даёт

Худший ответ:
Ну еще есть iOS keychain, например
Вопрос: Где купить Б/У сервер? Как не попасть в подставу? И какой нужен по конфигурации сервер?

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

Худший ответ:
В общем решено было взять обычный комп, ибо на ddr4 комп "пушка", соберется за 50 т.р (02.10.2015). и ни один б.у. сервер по той же цене его не догонит по характеристикам. а для надежности можно продублировать комплектующие (хотя бы мат плату). Еще возможно будeт куплен Raid, только вот какой опять не понятно.
Вопрос: Skype и Крым совместимы?

Лучший ответ:
Как альтернатива Viber, Jitsi, Любой SIP провайдер или тотже Jabber с сервисом звонков.
А если юзать скайп то смотри в сторону VPN

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

Лучший ответ:
Похожая ситуация с матерью.
Тут помогут две вещи.
Просто "тупо бросить" в свободное плавание, а не учебные материалы. Никто не будет учиться и запоминать, если есть кто-то, нак ого можно переложить отвественность. "Во время сравнения моделей навигаторов, выиграл звонок мужу". Сейчас не 90ые, все интерфейсы уже проработаны и достаточно понятны, что бы не itшник мог разобраться.
Второе. Нормальные, максимально настроенные операционки. Мой выбор для десктопа - debian + xcfe. Классический вид, на который легко перейти тем, кто учился работать на компе на win95-98-me-xp. Достаточно стабильные интерефейсы программ - нету тут ни новых скайпов, ни новых убогих дизайнов фурифокса. Всё стабильно. Не натаскает вирусов-локеров. Как-правило новые программы не нужны, если что достаточно показать пару раз. Настроить всё. Поставить всё нужное. Забыть.
Тоже самое среди мобильных - iphone. Сам предпочитаю андроид, но мать пользует, подареный мной iphone4. Нет вирусов-локеров-отправителей смс. Стабильные интерфейсы в ОДНОМ стиле.
Всё это работает уже четвертый год, не требуя моего участия.

Худший ответ:
Похожая ситуация с матерью.
Тут помогут две вещи.
Просто "тупо бросить" в свободное плавание, а не учебные материалы. Никто не будет учиться и запоминать, если есть кто-то, нак ого можно переложить отвественность. "Во время сравнения моделей навигаторов, выиграл звонок мужу". Сейчас не 90ые, все интерфейсы уже проработаны и достаточно понятны, что бы не itшник мог разобраться.
Второе. Нормальные, максимально настроенные операционки. Мой выбор для десктопа - debian + xcfe. Классический вид, на который легко перейти тем, кто учился работать на компе на win95-98-me-xp. Достаточно стабильные интерефейсы программ - нету тут ни новых скайпов, ни новых убогих дизайнов фурифокса. Всё стабильно. Не натаскает вирусов-локеров. Как-правило новые программы не нужны, если что достаточно показать пару раз. Настроить всё. Поставить всё нужное. Забыть.
Тоже самое среди мобильных - iphone. Сам предпочитаю андроид, но мать пользует, подареный мной iphone4. Нет вирусов-локеров-отправителей смс. Стабильные интерфейсы в ОДНОМ стиле.
Всё это работает уже четвертый год, не требуя моего участия.
Вопрос: Есть ли в c++ способ выделить память под все переменные?

Лучший ответ:
Может вам лучше ошибку отловить, например запустить под дебаггером и посмотреть где и почему падает? :-)

Худший ответ:
Для начала прочитайте эти объяснения. Осознайте, что существует 2 принципиально разных способа хранения информации - на стеке и в "динамической памяти". Для объектов на стеке не надо дополнительно резервировать память, и они автоматически удаляются при выходе из функции. 
Выделить память автоматически, разумеется, нельзя. Дело в том, что часто нам не известен размер памяти, которую необходимо выделить. Однако, в большинстве случаев можно использовать стандартные типы данных, например, std::vector, в которых эти операции написаны за вас. В реальном коде может практически не быть в ручную вызываемых операций delete благодаря использованию "умных указателей".
В вашем случае далеко не факт что проблема именно в этом. Возможно, вы обращаетесь за границы какого-то массива или пытаетесь что-то повторно удалить, или одна из десятков других причин. Различное поведение может объясняться различным режимом сборки debug/release, или, скорее всего, вам "везет" в виртуалке, и вы не вылезаете за пределы зарезервированной для вашего приложения памяти.
P.S. Почитайте умных книжек по C++, без этого не как. Начните с этой, например.
Вопрос: Как использовать emmet+бэм?

Лучший ответ:
Непонятно, какой редактор использует ТС, но в саблайме это настраивается в preference → package settings → emmet → settings-user "preferences": {
        "bem.elementSeparator": "__",
        "bem.modifierSeparator": "_",
        "bem.shortElementPrefix": "-",
},
И еще в snippets должен быть указан bem в filters, вот так "snippets": {
        "html" : {
            "filters" : "html, bem",
}
}
и правильно писать нужно так.page-header>.__top-menu

Худший ответ:
В emmet есть фильтр Yandex BEM/OOCSS
В вашем случае будет:
.page-header>.-top-menu|bem
Вопрос: Чем сделать скриншоты большого разрешения?

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

Худший ответ:
Нарисуйте картинку в SVG, делов-то!
Вопрос: Как «разжать» том?

Лучший ответ:
Если загрузитесь с livecd или флешки, установите gparted и двигайте партиции, как угодно.
Винда при этом может поломаться. Чтобы не поломалась, можно из-под винды уменьшить размер ее раздела, чтобы было свободное место, а потом с livecd изменять размеры раздела ext4.
Вообще, коварные эти эксперименты. И много времени отнимают. Говорят, LVM помогает.

Худший ответ:
Похоже на это.