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

Лучший ответ:
Если ваша задача сделать именно интернет магазин, WP плохой выбор. Эту задачу проще и лучше решать с помощью специализированных решений. Будет и дешевле, в итоге, и лучше работать. 
Возможно, вы думаете, что "сейчас мы сделаем как получится, а потом"... Но потом не будет - вы окажетесь в заложниках принятого решения, и будете тратить время и деньги, чтобы сделать что-то похожее на нормальный магазин, т.к. повторно наполнять магазин, учить персонал работе с новой системой и.т.п. будет тоже дорого, и когда проект уже запущен кардинальные изменения всегда очень сложны, и им все стараются препятствовать.
До начала работы обязательно должно быть написано подробное техническое задание, которое будет мерилом выполнения заказа, и снимает массу проблем в процессе.
Контролировать по мере выполнения ТЗ, обычно, довольно не сложно, но надо учитывать, что т.к. у вас нет опыта разработки, то вам может казаться, что простые на ваш взгляд вещи занимают много времени и наоборот. И прогресс вам может казаться не таким как вам представляется. Имеет определённый смысл, в ТЗ разбить работу на этапы и оценить их по времени, но приготовьтесь к тому, что практически всегда реальные сроки будут дольше оценки, не относитесь к этому как к очень большой проблеме. Больше смотрите на то, как работает.
Контролировать качество кода и его безопасность, фактически у вас не получится никак. Для этого нужно быть профи самому. Так что вам придётся поверить, что у вас нет каких-то "закладок". Или провести аудит безопасности, что безусловно правильно, но уже совсем не бюджетно.
Искать лучше сначала разработчика, и с его помощью уже решать, нужен-ли дополнительно верстальщик. Специалиста по SEO тоже уже пора искать - он должен внести свою лепту в составление техзадания, чтобы небыло потом переделок лишних, и недопонимания. 
Также учтите, что большинство дешёвых SEOшников, к сожалению, знают крайне мало, и то что знают, зачастую бред, или просто калька с действий других, необходимость или применимость которых они не понимают. Найти хорошего SEOшника, не проще, чем нормального Web дизайнера.

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

Лучший ответ:
Отрицание (!) перед выражением приводит значение выражения к boolean, а затем инвертирует его. Это часто встречающаяся конструкция в JS. Это документированное и однозначное поведение.
Часто можно встретить так же двойное отрицание !! перед выражением. Двойное отрицание направлено на приведение выражения к чистому Boolean.
Отрицание (!) так же можно заменить на конструкцию типа (выражение) != true или (выражение) == false. Все эти конструкции приводят проверяемое выражение к Boolean. Такое поведение языка называется "неявное приведение".Ниже идёт небольшое исследование (провёл только что для себя из интереса) и тема для холивара.
Несмотря на очень широкое распространение, использование неявное приведение типов считается порочной практикой в мире программирования, так как требует от программистов особого внимание к особенностям языка, затрудняет свободное чтение кода и в целом склоняет программиста к ошибкам.
Но "хорошо" или "плохо" ли использовать отрицание перед выражение - это непростой вопрос, на который не существует однозначного ответа. Есть "эталонная" книга по лучшим практикам в JS: Javascript: The Good Parts Дугласа Крокфорда.  Несмотря на многие спорные утверждения в ней, на эту книгу принято ссылаться как на истину в последней инстанции. Так вот, Крокфорд однозначно требует использование строгого равенства (операторы "===" и "!==") в пользу нестрого (операторы "==" и "!="). И многие компании с удовольствием его поддерживают и даже вводят ограничение на использование нестрогого равенства на уровне линтера. Но, к сожалению, Крокфорд ничего не сказал про оператор отрицания, который, по сути, тоже является нестрогим неравенством, явно запрещенным лучшими практиками. Раз ни Крокфорд, ни какой-либо другой влиятельный гуру ничего не сказали про отрицание, его продолжают использовать, радоваться простоте и страдать от неявных ошибок.
Лично для себя выбрал такую тактику: использую отрицание там где явно имею дело с логическими выражениями (пример привести не могу) и строгое равенство когда имею дело с функциями. В вашем случае, скорее всего, запись имела бы вид return  /^[ \\t]*$/s.test(r) === false; . Почему так? Потому что функции регулярных выражений имеют свойство возвращать чёрт знает что и хочется пожалеть девелопера, который почти наверняка споткнётся читая return ! /^[ \\t]*$/s.test(r); и полезет в документацию выяснять что именно возвращает функция test.
Такие дела.

Худший ответ:
мне кажется, тут и без регулярки норм можно обойтисьlist_rows.filter(e => e.trim())
причем исключает, как табуляцию, так и символы типа &nbsр;
Вопрос: Для чего тинькофф банк ведет блог?

Лучший ответ:
Типа "лицом к клиенту".
Хотя фактически та же жопа, но более автоматизированная, с более модным дизайном.

Худший ответ:
Все что вы перечислили он генерирует, блог ведут все примерно по этим причинам
Вопрос: Как инжектировать объект $app в контроллер в Silex?

Лучший ответ:
Я немного автоматизировал этот процесс через kernel events$app->on(KernelEvents::CONTROLLER, function (FilterControllerEvent $event) use ($app) {
    $c = $event->getController();
    /** @var BaseController $controller */
    $controller = $c[0];
    if ($controller instanceof BaseController) {
        $controller->injectApp($app);
    }
});

abstract class BaseController
{
    protected $app;

    public function injectApp(Application $app)
    {
        $this->app = $app;
        return $this;
    }
}

Худший ответ:
Собственно сам и нашел ответ. Нужно немного расширить класс контроллера и можно использовать $app где пожелаешь:use Silex\Application;

class UserController
{
    private $app;

    public function index ( Application $app )
    {
        $this -> app = $app;

        return $this -> app['twig']->render('user.twig', array(
            'user' => 1
        ));
    }
}
Вопрос: Как вычислить бонус большой покупки?

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

Худший ответ:
Возможные значения правой у.е. имеют разрывы в шагах, где растёт бонусный процент.
Т.е. есть невозможные значения. (Хотя в плохом варианте одну сумму можно получить более, чем одним способом – зависит от конкретных порогов и бонусов)
Вам надо составить список этих «дырок» – их краёв. 
Решая обратную задачу смотрите, в диапазон какого бонусного процента попадает правая у.е. Вычитайте этот %. По курсу конвертируйте назад в левую у.е.
Вопрос: Как запустить 2 приложения на одном порту для nginx?

Лучший ответ:
Сервер отдает сайт по имени.
Порт обычно стандартный 80, хотя можно использовать любой другой.
Допустим у вас работает веб сервер с IP адресом x.x.x.x и портом 80 - вы можете разместить на нем хоть миллион сайтов, главное чтобы имена разные были.
А порт это просто указатель веб серверу где слушать запросы к сайтам которые он раздает.Вот у меня есть 2 проекта на ноде.В каждом из проектов свой веб сервер. И разумеется у него должен быть свой порт, чтобы понимать что запрос адресован ему.
А если сервер один - то и порт нужен один.

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

Лучший ответ:
Лучше всего использовать для этого следующий метод:$file = new SplFileObject('events/kp1/dungeon1.txt');
$file->seek(1); // переходим ко второй строке (нумерация с нуля)
echo $file->current();

Худший ответ:
$secondStr= file('events/kp1/dungeon1.txt')[1];
Работает на РНР 7+
А вообще, лучше сохранять весь файл в переменную и использовать любую строку по необходимости:$file= file('events/kp1/dungeon1.txt');
$secondStr= $file[1];
Вопрос: Тестирование React Redux?

Лучший ответ:
1 - да стоит тестировать каждый action, reducer (юнит-тесты) и какие-то моменты из компонентов (так как для всего компонента можно сделать снапшот + точечно покрыть желаемые места юнит тестами). Все функции, которые у вас в utils/helpers (вспомогательные) - тоже нужно покрывать юнит-тестами.
2 - По туториалам для unit-тестирования:
a) тестирование логики (экшены/редьюсеры)
б) тестирование компонентов (включая снапшоты)
3) Jest, enzyme. Пробовал (и тоже неплохо) - mocha, chai. Для e2e использовали puppetter, интересным выглядит cypress. Для тестирования саг юнит тестами - либо по доке, либо с помощью redux-saga-test-plan

Худший ответ:
подрубайте ещё и redux-saga, саги легче тестировать
Вопрос: Как собрать схему с микроконтроллером?

Лучший ответ:
Arduino лучше всего, если Uno то подключение к USB вообще "из коробки", а если Mini/Nano, которые дешевле, то докупить переходник USB to TTL.

Худший ответ:
Как уже писали самый простой вариант это Arduino. На большинстве плат уже есть выход USB. Но ... в реале это не полноценный USB, а виртуальный COM порт подключенный к UART МК. На дешевых платах UNO/Nano UART только один по этому придется либо создавать программный UART для связи двух МК либо для связи использовать шины SPI или I2С
Можно использовать дорогие Arduino где есть несколько аппаратных UART или аппаратный USB. Такой вариант более простой, но в то же время существенно более дорогостоящий.
Вопрос: Как записать индексы i из цикла в 1 массив?

Лучший ответ:
Лол, надо замкнуть arr жеlet arr = [];
getCurrentSlide() {
        for (let i = 0; i < this._slides.length; i++) {
            arr.push(i);
            console.log(arr);
        }

Худший ответ:
Ваша ошибка заключается в том, что вы в каждой итерации создавали новый массив.
Можно еще так:const arr = this._slides.map((_, i) => i) //Если _slides массив.
console.log(arr)
// -------------
const arr = Array.prototype.map.call(this._slides, (_, i) => i)
console.log(arr)
Вопрос: Identifier has already been declared как исправить?

Лучший ответ:
Точка с запятой должна быть, а у вас только запятая, точку забыли, забыли точку, вот здесь:let money,
    price,
Ну пожалуйста, добавьте точку, не хватает точки, добавьте-добавьте-добавьте, чтобы стало так:let money,
    price;

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

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

Худший ответ:
Для создания MD5  хэша используй функцию md5()://выведет md5 хэш.
echo md5('password');
Но, не рекомендуется использовать эту функцию для сохранения паролей.
Вопрос: Как клонировать самописный шаблон на WP?

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

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

Лучший ответ:
Дополню ответы по поводу соответствия макетам. Иногда бывает, что макеты есть, но только часть из них вычищена и доведена до совершенства - одинаковые отступы, размеры шрифтом, междустрочные интервалы и тд. А на некоторых страницах или элементах/блоках могут встречаться неточности (чуть больше паддинг с одной стороны и тд). Так вот в таких случаях pixel perfect имеет более широкое значение. Я так говорю - это когда из дизайна пиксель-в-пиксель делается стайлгайд, где все элементы одинаковы. И дальше этот стайлгайд уже используется при сборке. Потому что если у нас у кнопки паддинги 10/20, то они у всех кнопок этого типа должны быть такие, по всему сайту. Даже если дизайнер на какой-то из страниц был неаккуратен и допустил 10/19 пикселей. В подобных случаях надо делать по стайлгайду и просить передать дизайнеру, что он неряха. Говорю об этом, потому что на практике встречал верстальщиков, которые таки пилили фанатично пиксель-в-пиксель, и все погрешности дизайнера в результате превращались в кучу magic numbers в CSS.

Худший ответ:
Ну если нет поддержки значит и не надо, ну наверно как минимум ie11 надо.
Про пиксел перфект, это, что бы Ваша верстка была такая же как и на макете.
Для этого скачайте https://chrome.google.com/webstore/detail/perfectp...
Вопрос: Автонастройка windows как?

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

Худший ответ:
Инструкция для любого случая:
1. Делаете образ установленной системы вместе с программами через www.drivesnapshot.de/en/index.htm
2. Делаете миграцию пользователя: https://www.forensit.com/downloads.html
3. Profit!
Вопрос: Какой посоветуете пример реализации сайта на laravel?

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

Худший ответ:
Кратко: в опен-сорсе таких нету, да и в целом такие попадаются редко.
Вопрос: Как оптимизировать картинки и css, js файлы?

Лучший ответ:
Там внизу ссылочка, где можно скачать уже оптимизированное. 
puu.sh/xLGdB/f8c4482d3f.png

Худший ответ:
База.
1. Стили в шапку (в <style></style>)
2. Скрипты в подвал
За PS замечено, что если скорость отклика от сервера низкая, он начинает ругаться на все подряд, в т. ч. будет бесконечно требовать жать картинки, пока от них мыло не останется.
Алсо, помогает прятанье картинок в background.
Вопрос: Куда переходить с Ubuntu 14.04?

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

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

Лучший ответ:
потому что относительные пути не просто так называются "относительными": они вычисляются относительно текущей директории.
решается это просто:$fp = fopen(__DIR__ . DIRECTORY_SEPARATOR . "result.txt", "a+");
php.net/manual/ru/language.constants.predefined.php
php.net/manual/ru/dir.constants.php

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

Лучший ответ:
Если нужно только получить$str = "@1@ @2@";
preg_match_all("/@(\d+)@/", $str, $matches);
var_dump($matches[1]); // Массив ID
Если нужно изменить на что-то другое (скажем, ссылку)$str = "@1@ @2@";
echo preg_replace_callback("/@(\d+)@/", function($arr) {
    return "<a href='cards/" . $arr[1] . "'>@" . $arr[1] . "@</a>"; // В $arr[1] ID
}, $str);

Худший ответ:
Если нужно только получить$str = "@1@ @2@";
preg_match_all("/@(\d+)@/", $str, $matches);
var_dump($matches[1]); // Массив ID
Если нужно изменить на что-то другое (скажем, ссылку)$str = "@1@ @2@";
echo preg_replace_callback("/@(\d+)@/", function($arr) {
    return "<a href='cards/" . $arr[1] . "'>@" . $arr[1] . "@</a>"; // В $arr[1] ID
}, $str);
Вопрос: Какие вы знаете сборники образов ОС?

Лучший ответ:
А что Вам мешает сделать мультизагрузочную флешку самостоятельно?

Худший ответ:
Вот тут какие то сборки валяются, но скорее всего безнадежно устаревшие. Лучше создайте свою флешку по инструкциям с того же сайта. Там все рассосано до мелочей.
Вопрос: Провайдер подсовывает свой SSL сертификат, законно ли это?

Лучший ответ:
Это незаконно. Любая попытка прослушивания является нарушением прав человека. 
Конституция РФ. Глава 2. Статья 23. www.constitution.ru/10003000/10003000-4.htm

Худший ответ:
Скорее всего это используется для блокировки HTTPS ресурсов по url. И да, формально это не означает прослушку, тайна связи не нарушается. Вот если появится информация, что вы переписываетесь на киски.ру или торчите на рунетках, а источником этой инфы будет оператор, тогда да.
Вопрос: Почему не срабатывает вызов $router.push( )?

Лучший ответ:
Экземпляр компонента не пересоздаётся при смене страницы, так что хук created не вызывается, метод loadCustomers соответственно, тоже.

Надо установить слежение за изменениями страницы, например так:

watch: {
  '$route.query.page'() {
    this.loadCustomers();
  },
},
Или так (в этом случае вызывать в created метод loadCustomers не надо):

watch: {
  '$route.query.page': {
    immediate: true,
    handler: 'loadCustomers',
  },
},

Худший ответ:
Может быть так?:
.push({path:'/customers?page=' + number});
Вопрос: На windows XP установлен PHP и Apache, как проверить работает ли PHP в системе?

Лучший ответ:
> работает ли PHP в системе?
Меню "Пуск" -> "Выполнить" -> cmd.exe
Написать php -v

Худший ответ:
Создайте в корне домена localhost файлик phpinfo.php
В нём напишите<?
phpinfo();
?>
Вызовите в браузере адрес localhost/phpinfo.php
Вопрос: Каким образом operator>> попадает в глобальное прогстранство имён?

Лучший ответ:
Тебе стоит ознакомиться с понятием ADL.Because of argument-dependent lookup, non-member functions and non-member operators defined in the same namespace as a class are considered part of the public interface of that class (if they are found through ADL)
Т.е. любая внешняя перегрузка оператора для некоторого типа, определенная в пространстве имен этого типа, является частью интерфейса этого типа и доступна через ADL.
Также через ADL доступны и дружественные функции, определенные по месту объявления дружественности и не имеющие предшествующего объявления.
В итоге, operator>> никакими магическими силами не переносится в глобальное пространство имен. Он просто находится по ADL, т.к. правильно реализован и является частью интерфейса соответствующего типа.

Худший ответ:
// Как? Ведь std::operator>> определён в std, а мы его не импортировали
    std::cin >> size;
Он определён не в std, а в виде inline метода класса basic_istream (файл istream):
basic_istream& __CLR_OR_THIS_CALL operator>>(int& _Val);
Получается, сперва ищется внешняя функция, если не нашлось, то используется метод класса.
Вопрос: Как отправлять из сайта нотификации пользователю Телеграм?

Лучший ответ:
1) вначале нужно создать бота Например
2) Получить $token
3) Получить $chat_id -(сообщения будут приходить от бота тебе поэтому ты знать ид своего чата
4) ну а дальше можешь использовать пример выше

Худший ответ:
https://github.com/php-telegram-bot/core - там все подробно расписано.
Вопрос: Можно ли размещать тег nav в теге header?

Лучший ответ:
Да
З.Ы. особенно, если там главная навигация по сайту
З.Ы.Ы. и особенно, если header для шапки сайта

Худший ответ:
Если это навигация сайта, то не "можно", а нужно поместить в тег header. Если конечно, навигация сайта не внизу, не  футере)
Вопрос: Как правильно реализовать callback в java?

Лучший ответ:
Вам поможет шаблон проектирования observer - https://ru.m.wikipedia.org/wiki/Наблюдатель_(шабло...
Смотрите реализацию на java.

Худший ответ:
Callback надо реализовать в виде отдельного интерфейса и сказать, что наше активити реализует этот интерфейс. В результате мы в DoRequestInterface просто передаем ссылку на нашу активити. А в активити реализуем нужные два метода для Callback. Во избежание утечек, рекомендую callback оборачивать в мягкую ссылку. interface DoRequestInterface {
    void execute(String url, DoRequesCallback callback);
}

interface DoRequesCallback {
    void successReq(JSONObject response);
    void errorReq(VolleyError error);
}

public abstract class DoRequestClass implements DoRequestInterface {
	@Override
  public void execute(String url, DoRequesCallback callback) {
      RequestQueue queue = Volley.newRequestQueue(context);
			final WeakReference<DoRequesCallback> weakCallback = new WeakReference<DoRequesCallback>(callback);
      JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
          @Override
          public void onResponse(JSONObject response) {
							DoRequesCallback callback = weakCallback.get();
							if (callback != null) {
              	callback.successReq(response);
							}
          }
      }, new Response.ErrorListener() {
          @Override
          public void onErrorResponse(VolleyError error) {
						DoRequesCallback callback = weakCallback.get();
						if (callback != null) {
            	callback.errorReq(error);
						}
          }

      });
      queue.add(jsObjRequest);
  }
}

public class MainActivity extends AppCompatActivity implements DoRequesCallback {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		sendButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
          	DoRequestClass doRequestClass = new DoRequestClass();
	          doRequestClass.execute("http://myserver.local", this);
		      }
		  });
	}

	@Override
	public void successReq(JSONObject response){
	    txtDisplay.setText("Response => "+response.toString());
	}

	@Override
	public void errorReq(VolleyError error){
	    txtDisplay.setText("Error => "+error.toString());
	}
}
Вопрос: Для чего используется растровая графика в 2д игр, а для чего векторная? И почему?

Лучший ответ:
вместо тысячи слов:
https://yandex.ru/search/?text=векторный%20редактор
https://yandex.ru/search/?text=растровый%20редактор
https://yandex.ru/search/?text=векторная%20и%20рас...

Худший ответ:
Для чего используется растровая графика в 2д игр, а для чего векторная?Для отрисовки всего, что вы видите на экране. Локации, персонажи, спецэффекты, вот это все.
Есть игры построенные целиком на растре, и есть игры целиком векторные.И почему?Потому что если никакую не использовать, то игра будет не графическая. (такие тож есть)
Программы для создания графики легко гуглятся. Можно начать даже с paintbrush.
Если вам кажется, что ответ в стиле КО, то спасибо, я старался.
Попробуйте чуть подробнее описать, что именно вас интересует.