Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какое правило в файле hosts присваивает значение IP доменам без A-записи?

Лучший ответ:
В файле hosts нет никаких правил.
Просто соответствия адреса конкретному хосту.
Все.

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

Лучший ответ:
Юзайте регекспgrep -P "^|нужный текст"

Худший ответ:
Юзайте регекспgrep -P "^|нужный текст"
Вопрос: Взломали сайт на wordpress, как найти и закрыть дыры?

Лучший ответ:
Установите плагин Wordfence и просканируйте сайт
Если у вас обнуленные премиум плагины, то ищите проблему там
Просканируйте ваш сайт. Вам уже подсказали, что можно использовать - https://revisium.com/ai/#download

Худший ответ:
Дополню:
- удалить лишние, старые и ненадежные плагины
- обновить WP и плагины до последней стабильной версии и делать это регулярно
- file permissions
- Один из  Wordfence, succuri и т.п.

См.  https://www.wpbeginner.com/wordpress-security/ для подробностей
Вопрос: Перебрать массив?

Лучший ответ:
var arr = [12, '+', 13, '/', 5];
var result = eval(arr.join(''));
console.log(result);
Скопируйте этот код в консоль и увидите, что он работает.

Худший ответ:
без учета приоритетов примерно так:var arr = [12, '+', 13, '/', 5, '-', 6];
var result = 0;
var op = '';
for(var i = 0; i < arr.length; i++) {
  switch(typeof arr[i]) {
  case 'string':
    op = arr[i];
    break;
  case 'number':
    switch(op) {
    case '+':
      result += arr[i];
      break;
    case '-':
      result -= arr[i];
      break;
    case '*':
      result *= arr[i];
      break;
    case '/':
      result /= arr[i];
      break;
    default:
      result = arr[i];
      break;
    }
    break;
  }
}
console.log(result);
если приоритеты нужны, то нужно в дерево сворачивать
Вопрос: Есть ли расширения для сохранения отредактированного в Devtools кода?

Лучший ответ:
Если код лежит локально, в Chrome можно зайти в Devtools/Sources, слева на вкладке Filesystem, нажать + (Add folder to workspace) и выбрать корневую папку.
После этого манипуляции в Devtools будут вноситься в исходники.

Худший ответ:
Навскидку помню только про вот это расширение, с такой функциональностью - link, но  работает только с Sublime Text 3 (по крайней мере так было раньше)
Вопрос: Как определить имя переменной передаваeмой в min(), max() в python?

Лучший ответ:
Вам это не надо. Вы работаете с данными, а не с именами переменных.

Дичь, но это "то, что надо":
a = 0
b = 1
c = 2
d = 3

alls = min(a, b, c, d)

globs = globals().copy()
for i in globs:
  if id(globs[i]) == id(alls):
    print("имя переменной, у которой самый маленький int:", i)
    break
all - зарезервированное имя, не используйте его.

Худший ответ:
---------------------------------
Осторожно! Говнокод!
---------------------------------

l = locals()

print([i for i in l if l[i] == 0][0])
Вопрос: Найдена опасная уязвимость в очень популярном мобильном приложении. Что делать?

Лучший ответ:
и учечка данных пользователей может обойтись сервису 100.......000$-ми убытками
Может. Но (тебе) лучше, чтобы об этом сообщил кто-нибудь другой. Потому что скорее всего, тебя же и обвинят во взломе и хищении. 
Обращаться стоит только в том случае, если у сервиса есть программа по исправлению ошибок ("bugs bounty"), если же нет, а аппликуха популярная - лучше перестать пользоваться, застраховаться и не лезть, ну или сообщить с левого одноразового мейла.
А что до вознаграждения - вот что пишет классик, Иван наш Андреевич Крылов

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

Лучший ответ:
Расклад такой: питон - крутая и востребованная штука, но для устройства нужно быть готовым джуном, т.е. прийти, неделю поразбираться и начать закрывать задачи, число вакансий для trainee -> 0. Для того чтобы этого достичь может уйти несколько лет. С другой стороны, я неоднократно натыкался на вакансии на Java, Php, Битрикс с чисто символической зп(тысяч до 30ти), куда берут реально с минимальными знаниями. Но если у тебя есть в запасе года 3 - питон неплохой выбор.

Худший ответ:
Конечно для backend лучше изучать Django в Python, либо попробуй освоить php (css, html тоже и к python)
Никогда не поздно, чувак
Вопрос: Когда появится реклама google ads?

Лучший ответ:
Тем не менее когда я ищу в поисковике ремонт бытовой технике или ремонт бытовой техники в Ташкенте моя реклама не появляется!!
1) Потому что система не считает ваши запросы релевантными, мол учитывая что вы часто проверяете, но при этом не переходите по ссылкам, или переходите и сразу выходите, не делает вас потенциальным клиентом, а наоборот - вам скорее не будет показываться реклама из этой категории.

2) Показ может быть ограничен дневным бюджетом - это можно узнать включив столбец Процент потерянных показов в поисковой сети(бюджет). Если будет высокий процент, то значит надо увеличить дневной бюджет, так как при текущем вы показываетесь только при максимально релевантных запросах

3) Возможно у вас слишком низкая ставка - это можно узнать включив столбец Средняя позиция показа и Средняя позиция клика, либо сравнив с свою ставку с рекомендуемой ставкой Ads в разделе ключевых слов.

4) Может повлиять и качество объявления - если низкое, то оно будет выигрывать меньше аукционов и соответственно получать малый процент показов и уж точно не на первой странице.

Также возможно вы поставили расписание показов, или у вас указан другой часовой пояс в аккаунте Ads.

Худший ответ:
вы думаете ваша реклама за $3 в сутки будет показываться всем подряд? раз в час может покажется кому-то и всё
Вопрос: Как и кто загружает товары в интернет-магазин?

Лучший ответ:
Все что больше 1к позиций нужно делать на csv
Но бывают варианты, когда головой не думают и тогда появляются xml, json, excel по 10Гб
Задача впринципе мало связана с фронтендом

Худший ответ:
Очень не здравый выбор технологии для интернет-магазина... :) Практически наверняка получите проблемы с индексацией, это я Вам как SEO-шник говорю...
Товары в магазин надо загружать вручную (если их мало) и импортом из файла формата .CSV (если их много), все прочие варианты создают кучу проблем на ровном месте.
Вопрос: Как сделать возможность игры в Minecraft прямо из браузера?

Лучший ответ:
У меня один вопрос - как ты собрался играть в java(почти) игру, .exe приложение в БРАУЗЕРЕ?
Может ты имел ввиду "хостинг"?

Худший ответ:
Самый простой и дешёвый  (из всех возможных) вариант это сделать - написать свой майнкрафт. В качестве примера могу привести minecraft classic, который сделали на 10-летие майнкрафта.
Вопрос: Когда использовать .js файлы, а когда .jsx? Как они отличаются друг от друга?

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

Создайте криэт реакт апп и увидите, что там файлы .jsx не используются.

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

https://www.cyberforum.ru/react-js/thread2161491.html
https://ru.stackoverflow.com/questions/731548/В-че...
Вопрос: Как разрешить ввод только 2х знаков после запятой?

Лучший ответ:
val => (val.split('.')[1] || '').length < 3 || 'Не более двух знаков после запятой'

Худший ответ:
Обычный input type number это умеет. Добавьте step="0.01"
Вопрос: Есть старый процессор, какую подобрать мать, чтобы использовать процессор по максимуму?

Лучший ответ:
1. Athlon 64x2 6000+ (AM2)
Под этот процессор можно брать любую материнку на сокете AM2 или AM2+. И тот и тот сокет поддерживает только память DDR2. Чипсет – главное не Nvidia, умирали очень часто. Биос возможно придется обновлять, в зависимости от конкретной модели процессора. 

Athlon 64x2 6000+ горячий процессор. Особенно если с частотой 3Ghz (у него TDP 125W и в комплекте шел кулер с тепловыми трубками, как на opteron). Если с частотой 3,1 Ghz - то похолоднее, достаточно будет стандартного кулера, если без разгона. Лучше уточните модель перед покупкой охлаждения и материнки. 

2. Core2 duo e7500 (LGA775)
Достаточно свежий процессор, поэтому на самых древних материнках работать не будет. Нужно смотреть не только сокет, но и чипсет (должен быть G31 или P31 минимум. Иногда работает на 945-м и 965-м чипсете после заливки свежего биоса). 
Преимущество LGA775 – бывают материнки под память DDR3 (но чаще все-таки DDR2). 
Core2 duo e7500 – относительно холодный, боксового алюминиевого кулера хватает с головой. 

Заниматься разгоном на таком железе лично я не вижу смысла. Это старшие модели, оба процессора уже имеют внушительные для своего поколения 3Ghz. Обычно хорошо гонятся младшие модели. Если пытаться разгонять выше 3Ghz – на приличное охлаждение уйдет больше денег, чем на все остальное железо. Правда у Core2 duo e7500 запас по разгону еще должен быть, они легко брали 4-4,5.

Худший ответ:
Так как это довольно древнее БУ - лучше не выжимать, а оставить работать на стандартных частотах и т.п.
Вопрос: Как использовать единицы «vw» в адаптивной верстки сайта?

Лучший ответ:
1500px=100vw
48px=3.2vw

Если нужен весь сайт в vw, то надо все размеры из дизайна разделить на 15 и результат деление и есть vw.
Было у меня ТЗ, вёрстка нужна в vw. Результат можно увидеть тут

Худший ответ:
vw - Viewport Width
vh - Viewport Height

если задать 100vw, то это будет равняться 100% ширине экрана ( адаптируется при изменении размеров экрана ) тоже самое и с высотой
1vw - 1% ширины экрана
1vh - 1% высоты экрана

1. Нельзя просто так взять и перевести в vw, потому что везде 1vw или 1vh будет равняться разной цифре. Поэтому, просто используй @media в css или scss, и задавай фиксированные значения
2. Если задашь тексту размер например 15vw, это будет адаптивный текст, который будет автоматически подстраиваться под размеры экрана, таким образом всегда размер будет разный, и перевести в px нельзя. А вообще это используют на маленьких размерах экрана, типа если меньше 500px размер экрана, то можно задать в vw размер текста, и можно забить на более маленький размер экранов.

Использовать на постоянке для текста, лучше не надо, ведь нельзя задать фиксированный размер (у тебя в макете 48px) если задашь в vw, то постоянно будет изменяться при изменении размеров экрана, таким образом размер уже не будет равняться 48px.

Надеюсь понятно объяснил)
Вопрос: Зачем тестировать верстку на локальном сервере?

Лучший ответ:
Например, сборщик Gulp поднимает локальный сервер по адресу localhost:3000. Чем это может помочь при тестировании верстки?Насколько я помню, сам Gulp ничего не поднимает, но это не суть... Сервер, локальный, нужен как минимум для возможности указания корректных по отношению к корню сервера путей, для тех же картинок, например: <img src="/img/image1.png" alt="#" /> - без локального сервера будет работать "никак". Уже этого факта достаточно, что бы этот самый сервер поднимать :)

Худший ответ:
Как минимум в gulp есть plumber и вы не пропустите свои ошибки. А еще позволяет использовать различные препроцессоры облегчающие жизнь верстальщика))). Это все намного ускоряет процесс.
Вопрос: Как скрыть комментарии заблокированного пользователя во ВКонтакте?

Лучший ответ:
1) Устанавливаете в chrome расширение
https://chrome.google.com/webstore/detail/user-jav...
Оно позволяет писать скрипты для страницы

2) Пишете для vk.com примерно такой скрипт
const blocked = `
Иван Говнов
Еще ненавистный юзер
И еще один нехороший человек
`
const filter = new Set(blocked.split('\n').filter(Boolean))

setInterval(() => {
  const authSpan = [...document.querySelectorAll('.author')]
    .filter(v => filter.has(v.textContent))
  authSpan.forEach(el => 
    el.parentElement.parentElement.parentElement.style.display = 'none')
  }, 3000)

И все, с частотой в 3 секунды скрипт будет мониторить комментарии на открытой странице и скрывать сообщения ненавистных персонажей.

Худший ответ:
Пишется user-script который через публичный/не публичный web-api читает ваш список блокировок, и по нему фильтрует содержимое блоков комментариев.
Вопрос: Как происходит переход с junior на middle?

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

Худший ответ:
1. Повышение. Год-два нормальной работы джуном и повышают до мидла.
2. Смена компании. Год-два работы и устройство в новую компанию сразу на мидла.
Вопрос: Как превратить список в строку?

Лучший ответ:
from ast import literal_eval

a = '["парам", "парам", "пам"]'
b = literal_eval(a)

Худший ответ:
import json
list = json.loads('["парам", "парам", "пам"]')
print(list[0])
Вопрос: Можно ли соединиться с бд один раз?

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

Худший ответ:
Если я правильно понял вопрос, то обойти создание нового подключения можно с помощью паттерна Singleton.
Выглядит это так:class Db
{
    private $pdo;

    private static $instance;

    private function __construct()
    {
        $dbOptions = (require __DIR__ . '/../../settings/setting.php')['db'];
        
        $this->pdo = new PDO(
            'mysql:host=' . $dbOptions['host'] . ';dbname=' . $dbOptions['dbname'],
            $dbOptions['user'],
            $dbOptions['password']
        );
        $this->pdo->exec('SET NAMES UTF8');
    }

    public static function getInstance(): self
    {
        // если объект подключения не создан и равен NULL
        if (self::$instance === null) {
            // то создается новый объект класса Db;
            self::$instance = new self();
        }
        // если подключение создано, просто возвращаем уже созданное подключение
        return self::$instance;
    }
}
Соответственно и подключение уже будет происходить через:Db::getInstance();
Вопрос: Как бороться с клонами сайта?

Лучший ответ:
- как бороться? Ни как. Понять, простить и забить.
Я уже подумывал о ддосе - DDoS(даже с благими намерениями) является преступлением - так как создается нагрузка на сеть не только мошенникам, но и третьим лицам. В таком случае наказание можете понести уже вы.

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

Лучший ответ:
если не изменяет память - jQuery не имеет никакого отношения к этому, всё делается с помощью джаваскрипта, изменяя плейсхолдер:
document.найтиЭлементПо. . .("ключевое слово").placeholder = "текст";
если вы не осведомлены о них, то, это что-то в духе "подсказки", которая появляется в input-поле.

Худший ответ:
Возможно тебе нужно value
Вопрос: Как убрать посторонний шум в AirPods?

Лучший ответ:
Это частая проблема в одной из довольно качественных подделок AirPods 2 (именно с левым наушником), исправляется только покупкой оригинальной продукции Apple. По личному опыта говорю, возможно у вас редкий случай с браком у оригинальной продукции.

Худший ответ:
Покупала в re:store. Столкнулась с такими наушниками. Еле еле поменяли, так как продавец услышал звук, который не услышали в сервисном центре после недели проверки. Новые наушники тоже пищат. Голова болит и в ухе тоже появился теперь звук. Столько стоят наушники и столько боли они мне принесли, лучше вернуться видимо к galaxy buds.
Вопрос: Как перебрать массив с помощью includes?

Лучший ответ:
arr.flat().includes(3)
Но вообще в данном случае правильнее будет использовать сом:
arr.some((a) => a.includes(3))

Худший ответ:
// Infinity - определяет сколько уровней вложенности раскрыть, в данном случае до бесконечности.
[[3, 4, 5], [1, 7, 1, [1,2,3]], 1,2,3].flat(Infinity).includes(3); // true
Вопрос: Как восстановить данные с отформатированной флешки?

Лучший ответ:
Проще пройтись по окрестности найденного заголовка любыми средствами починки MS Access баз данных, часть данных получится достать. Целиком весь файл собрать назад гораздо сложнее (сходу не цепляется программами для восстановления)



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

Лучший ответ:
Записать в файл, затем воткнуть вместо микрофона плеер. На телефоне нажать запись голосового сообщения, на плеере - воспроизведение файла. Ждать 20 минут. На каждом пользователе.

Худший ответ:
сожмите или измените формат и сожмите и отправите этой датой 
он лайн конвертер в помощь.
Вопрос: Как защитить форму обратной связи от атак?

Лучший ответ:
Из здесь обсуждавшихся самый простой способ обломить ботов - скрытое поле, в которое скрипт на странице вводит длину сообщения перед отправкой. При заполнении ботами оно будет либо отсутствовать, либо пустовать.
Капча - не помогает. Рекапча - здорово мешает пользователям, сидящим на загруженных каналах (мобильных, например). Угадывание витрин и лестниц на мутных фотках... так ли им нужен ваш сайт?

Худший ответ:
По IP и/или капчей
Вопрос: Что делать если постоянно работает второй порт роутера microtik?

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

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

Лучший ответ:
А что не ищется через API?   users.search()

Худший ответ:
У меня скрипт сработал и вернул результат со списком фамилий.
Вопрос: Не работает ОЗУ, что нужно плате кроме частоты и объёма планки?

Лучший ответ:
У оперативной памяти параметров дофига и больше. Ёмкость отдельных чипов на планке, битность их шины, тайминги чтения. Всё это прописано в SPD и используется BIOS для инициализации подсистемы DDR. Есть вероятность, что обновление BIOS вам поможет, есть вероятность, что ваша мать сильно старее планки памяти и данную аппаратную конфигурацию не поддерживает даже последний BIOS. А может даже чипсет её "не умеет"
если прям очень сильно хочется найти причину - считайте и расшифруйте SPD обеих планок (которая не работает / которая работает) и сравните детали. Утилиты в открытом доступе есть, стандарт SPD описан. В случае затруднений, пишите в комментах, разберемся

Худший ответ:
Самое главное - не совать low voltage планку в слот обычной, и наоборот. Там другое напряжение.
Еще раньше (сейчас не слежу- не в курсе) была такая тема как dual rank организация чипов на плашке и нюансы в их применении.
Чтоб наверняка - залезай на сайт производителя материнки и ищи свою модель в списке поддержки.
(оставляем за кадром всякие глупые варианты как например хват руками в свитере за память)

А еще о напряжении - бывают специальные оверклокерские модули которые требуют повышения вольтажа от дефолта для нормальной работы. И мать если недостаточно умная, надо перед установкой такой памяти при наличии старых плашек принудительно выставить нужный вольтаж.
Вопрос: Зачем во Vue запросы выносят в services?

Лучший ответ:
Для упрощения кода. Скажем, чтобы не писать каждый раз всю конструкцию аля axios.get(ENDPOINT + '/api/' + API_METHOD, {
  params: {
    id
  }
})
.catch
...
Делается обёртка, условная функция getUser(id). В неё выносится вся логика по работе с запросом, определение маршрутов АПИ, обработка ошибки и так далее. Наружу торчит только одна функция и параметр.
При работе с TS это проще типизировать. Намного легче описать типы принимаемых параметров и возвращаемый тип для нескольких функций, чем описывать универсальную конструкцию для доступа к любым методам апи.
Ну и наконец: сервис можно вызывать прямо в компонентах. Вызывать методы АПи не обязательно внутри Vuex. Доже чаще это должно выполняться внутри отдельных компонентов, каждый из которых работает с одним-двумя апи, а не со всем набором. 


Худший ответ:
Я не работал с Vue.js, но очень похоже на реализацию Redux - разделение состояния приложения, представления приложения и запросов. Что бы напрямую не менять стейт приложения создаются дополнительные прослойки. Actions в данном случае - это не только запрос, но и изменение стейта, а одни и те же запросы в теории могут использоваться в разных экшенах, по этому их и разделяют.
Вопрос: Какие посоветуете книги по Java, если есть опыт в программировании?

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

Худший ответ:
Г. Шильдт - Полное руководство Java
Б. Эккель - Философия Java
Р. Лафоре - Структуры данных и алгоритмы java
Р-Г Урма - Современный язык Java
Б. Гетц - Java concurrency на практике
Вопрос: Как мне php сайт конвертировать в android приложение (apk file)?

Лучший ответ:
Меняешь формат php на apk и все, приложение из воздуха появится

Худший ответ:
Никак.
Вопрос: Ошибка выполнения команды консоли в Firefox?

Лучший ответ:
Потому, что формально вы вызываете примерно такой код
let age = prompt('Сколько тебе лет?');
alert(`Тебе ${age} лет!`);

let age = prompt('Сколько тебе лет?');
alert(`Тебе ${age} лет!`);
Переменная age объявлена дважды в пределах одного контекста. Что является ошибкой. Хром тоже так себя вёл до недавних пор. Потом, разрешил непосредственно в консоли повторно объявлять переменные с использованием let/const

Худший ответ:
Используйте var вместо let Особенности консоли и let
let x;
let x; // ошибка: переменная x уже объявлена
Вопрос: Как вывести текущий процент загрузки диска в терминале, по аналогии с диспетчером задач Windows?

Лучший ответ:
используйте iotop или iostat

Худший ответ:
взять выхлоп df и отфильтровать под свои нужды.
$ df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             4.0G  2.4G  1.5G  62% /
    /dev/sda2              29G   14G   14G  50% /usr
    /dev/sda3              62G  2.6G   56G   5% /var
    tmpfs                 512M   60K  512M   1% /tmp

для интерактивности поиграться с tmux
Вопрос: В Trello теперь нельзя создавать персональные доски?

Лучший ответ:
Можно в настройках рабочей площадки Trello, внизу страницы нажать удалить команду. У меня доски оттуда сразу в персональные переносятся

Худший ответ:
Создайте команду, в которой вы будете единственным участником. Всё.
Вопрос: Как создать превью страницы сайта?

Лучший ответ:
Геннадий Уваров,  чтобы это сделать, вам нужно добавить в head страницы теги:<meta property="og:title" content="">
<meta property="og:site_name" content="">
<meta property="og:url" content="">
<meta property="og:description" content="">
<meta property="og:image" content="">
Далее нужно каждому мета-тегу заполнить параметр content=""
За что отвечает каждый тег:og:title - заглавие страницы, он же тайтл. Можете скопировать из тега title.og:site_name - название сайта.og:url - ссылка страницы, где вы добавляете этот код. Если это однастраничник, то это просто ссылка на главную сайта. Если сайт на CMS или самописный и у него много страниц, то вам придется для каждой указать свой тег, со своей ссылкой.og:description - описание страницы. Можете скопировать из тега description для страницы, на которую добавляете теги.og:image - ссылка на картинку, что характеризует страницу. Можете указать ссылку на лого сайта, или нарисовать конкретную картинку для этих целей.

Худший ответ:
Opengraph разметка
P.S. Открыли бы код, посмотрели, далее по совпадениями берем код и лезем в гугл.