pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Алгоритм выборки топ 10 фотографий?

Лучший ответ: Посмотрите алгоритмы сортировки. Например, методом пузырька придётся до 10 раз пройти по всему массиву,  итого 199+198+197+...+189 = 2123 сравнений.
Но т.к. интересует только верхушка, можно оптимизировать. Разбить фотогрфии на пары, сравнить попарно, отбросить проигравших. Так уменьшается вдвое число кандидатов. 200 -> 100 -> 50 -> 25 -> 13 за 100+50+12=162 сравнения. Оставшиеся 13 надо уже пузырьковым методом отсортировать до отбора топ-10: 12+11+10+...+3 = 75
Итого всего 237 сравнений, если не ошибаюсь.
В фильме «Социальная сеть» (2010) есть эпизод, где молодой Цукерберг якобы использовал алгоритм начисления шахматного рейтинга ELO в своём первом приложении FaseMash для сравнения, какая из девушек привлекательнее. Там тоже посетители выбирают одну из двух фотографий. Может ли это сократить число необходимых сравнений, вопрос открытый.

Худший ответ: Как понимаю это лабораторная работа по языку.
Есть оценки А Лучше б.
Топ 10 фото с максимальным колвом отмеченных лучше чем другое.
Select idea from tcomare group by idea sort by count(*) desc limit 10
А вот дальше уже извращения друг фото на з ей позиции чаще оценивают лучше чем первое . и т.д и т.п
Вопрос: Зачем списывают 1 рубль при привязке карты на маркетплейсах?

Лучший ответ: 1 руб списываются для валидации карты и проверки процессинга. Потом возвращают.

Худший ответ: начните со Сбера, там много чего надо правильно делать
Вопрос: LINQ или foreach?

Лучший ответ: 1. Такая ситуация складывается от того что бизнесу обычно нужно чтобы было готово ещё вчера, и плевать ему какие костыли при этом будут в коде, в худшем случае он не подумает даже о сложности поддержки всего этого.
2. Программист, как мне кажется, это прежде всего инженер, а инженерный подход предусматривает создание оптимального, с точки зрения экономики, решения.
Вы предусматриваете создание оптимального с точки зрения разработки, поддержки и производительности решения. Оптимальным с экономической точки зрения для бизнеса чаще оказывается сделанный из костылей за неделю продукт, чем качественный за месяц.
Все эти "модные" фишки что вы описываете, как раз и существуют для увеличения скорости разработки. Да и деньги то нужны, внезапно, не только на железо.
https://habr.com/company/badoo/blog/430722/ - хорошая статья от badoo, с выводами на счёт целесообразности оптимизировать код / добавлять сервера

Худший ответ: Естественный процесс, увы, никуда от этого не денешься....  
Так не только в программировании, так во всем. Вам же не нужно знать весь курс физики и электротехники что бы вкрутить лампочку... Вам не надо знать как работает  карбюратор/инжектор чтобы ездить на машине...
И опять же даже среди электриков есть те кто способен посчитать нагрузку на сеть, что-то там еще (ничего в этом не понимаю), а есть те которые могут провода в стенку "заштробить" и  розетки с автоматами поставить.  Но если бы таких не было, то вызов электрика "с образованием" обходился бы нам в круглую копейку.
Экономика блин.... ненавистное слово для перфекциониста :)
Не переживайте так! Удачи!
Вопрос: Стоит ли одобрять удаление «ненужных» пакетов?

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

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

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

Худший ответ: Неверно в корне.
1.напряжение 5В откуда-то взялось. Т.е. есть некий стабилизатор у которого есть КПД. Если у тебя импульсный стабилизатор типа LM2576T то у него КПД 95%, а если 7805 или подобный (как скорее всего и есть) то все зависит от входного напряжения, то же касается и 3,3В. В результате имеем (2,5+20+19)= 42.5мА. В случае если исходное напряжение 9В то потребляемая мощность 382,5мА
2. Выводы Arduino, ничего не потребляют (совсем ничего). Потребляет нагрузка которая к этим выводам подключена. 40мА это предельно допустимый ток, т.е. если ты подключишь маленький светодиод с потребляемым током 10-20мА то все будет нормально, но моторы, светодиодные ленты и пр. к выводам нужно подключать через транзисторы. В твоем случае информационные выходы датчика и дисплея потребляют микроамперы, т.е этим током можно пренебречь.
3.Частота опроса от тока не зависит ни как. Потребляемый ток зависит от тактовой частоты контроллера, согласно даташит на Atmega 328 при частоте 16МГц (как в ардуино) потребляемый ток 19мА, а при частоте 1МГц от внутреннего генератора 5мА. при совсем низкой частоте (например от часового кварца) ток меньше 1мА. Т.е. ты если тебе спешить некуда, но нужно сэкономить пару мА ты  можешь программно поменять частоту на внутренний генератор (заменить кварц сложновато будет). Правда в такой ситуации ты не сможешь прошивать плату по USB, нужен будет программатор для непосредственного программирования МК по SPI
Вопрос: Как менять содержимое сайта в зависимости от пола и возраста посетителя?

Лучший ответ: счетчики берут из Яндекса и Гугла
а посетителя спрашивайте что значит слово kodak

Худший ответ: Привет!Разумеется, сам пользователь ничего указывать не должен.Никак.Есть идея выдавать индивидуальный текст на сайте под каждую возрастную группу и пол. Есть ли технологии для реализации подобного?  Например на pornHUB это вообще круто реализовано. Он просит твой профиль в вк и получает от туду твой возраст. Можно пойти по таким стопам. То есть если человеку нет 18,то показывать определенный контент, если есть 18, показывать все прелести взрослой жизни.
Можно сделать прелоадер и перед его началом сделать форму, типо тест. 
Или вообще и то, и другое. 
Но 100% способа нет
Вопрос: Как вы делаете jwt аутентификацию в server-side react приложении?

Лучший ответ: Поделюсь своим решением. Хотя у меня на сервере стоят рельсы, а реакт только на морде. Но тем не менее, вдруг будет полезно.
При авторизации сервер генерит:
- access token
- cookie
- refresh token
которые затем гоняются между клиентом и сервером.
Refresh token может отсутствовать. Вообще говоря он нужен только для обновления access token, и клиент добавляет его в запрос только когда истекает срок действия access token. В этом случае сервер генерит новый access и refresh token.
Cookie отдается с пометкой HTTP only, то есть клиент их прочитать никак не может. Cookie нужны только для проверки валидности access token, то есть никаких сессий по ним нет (вообще приложение полностью stateless).
Оба токена (access и refresh) клиент хранит в local storage, откуда извлекает их для каждого запроса на сервер.
Любой запрос от клиента, содержащий валидный access token, считается авторизованным, только если в нем есть соответствующие токену куки (не совпадающие, а соответствующие, то есть закодированные по какому-то алгоритму с access token в качестве базы). Ну и если есть refresh token, то также смотрим, подходит ли он к нашему access token.
Такая схема, в совокупности с HTTPS, неплохо защищает от XSS или от CSRF уязвимостей (оговорка: но не от обеих сразу).
Немного теории, почему это работает, можно прочитать здесь: www.redotheweb.com/2015/11/09/api-security.html

Худший ответ: От MitM вас защитят только SSL сертификаты и иконки на сервере. 
Где хранить? Ну вообще это не так важно, но я бы хранил в LocalStorage. Хз почему, просто левая пятка говорит.
Хотя если у вас не совсем REST, то можно хранить токен в кукисах и отправлять "по классике" (в заголовках).
Вопрос: Почему netBeans требует что бы я преобразовал цепочку операторов if в оператор switch?

Лучший ответ: IDE не требует, а лишь рекомедует использовать switch case.
Так как у вас в данном случае задается правило для одной переменной char, то вы можете упростить читабельность вашего кода при помощи switch case.

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

Лучший ответ: \common\config\bootstrap.php
добавить:Yii::setAlias('@folder', dirname(dirname(__DIR__)) . '/folder');
мне этого оказалось достаточно для добавления папки в корень проекта

Худший ответ: перекопировал туда содержимое папки frontend
этого мало, пройдитесь по конфигу и проверьте все настройки, там наверняка еще куча "хвостов" от frondend. Кроме этого добавьте алиас, как Вам посоветовал latteo. Ну и все namespace надо сменить. В контролерах, в Assets и т.д. Советую поиском по папке пройтись и найти все упоминания.
Вопрос: Что лучше выбрать для сайта на Joomla 3.6+: PostgreSQL или MySQL?

Лучший ответ: Убер перешел потому что может написать поверх мускула свой движек
Ты можешь нанять офис программеров для такого рода вещей?
Нет
Ну значит используй пока что постгрес
mysqli != mysql

Худший ответ: Посмотрите мой ответ и комментарии к нему Какую книгу по базам данных выбрать? там написано об ответе на эту статью Убера.
А по существу. Если у вас будут десятки миллионов записей то там вряд ли есть место Джумле, а если нет то там вряд ли есть место PostgreSQL. Делайте на MySQL и не парьтесь. Вы просто не заметите никакой разницы, кроме необходимости большей первоначальной настройки с помощью pgtune или типа того и некоторой разницы в полях по дефолту. 
P.S. PostgreSQL - база, MySQL - база, MySQLi - модуль модуль MySQL (MySQL Improved) скорее всего имеет место опечатка
Вопрос: Есть ли способ смонтировать облако mail.ru под linux?

Лучший ответ: https://yandex.ru/search/?lr=11&text=j%2Ckfrj%20%D...
А что, поиск не помогает разве? Там 100500 решений.
WebDav в официальной документации https://help.mail.ru/cloud_web/app/webdav
Неофициальный WebDav клиент https://github.com/ramondeklein/nwebdav

Худший ответ: https://github.com/yar229/WebDavMailRuCloud
Некоторое время работало на линукс-сервере под моно.
Но вебдавфс2 ужастно неудобный, поэтому просто надоело и выключил
Вопрос: Как включить режим UDMA-6?

Лучший ответ: UDMA-6 это 133 Мбит/c
SATA-1 1.5 Гбит/с
SATA-3 6 Гбит/с
Вы точно уверены что вам нужен UDMA-6 ?

Худший ответ: Как включить режим UDMA-6?Он сам должен включиться.
Вы вероятно неправильным кабелем диск подключили, нужен такой -
Вопрос: Как создать простое приложение на react, nodejs и mongodb?

Лучший ответ: Сам задавался таким вопросом когда учился, уже не вспомню что-нашел
Но вот мой один из первых проектов на реакт, нодой и монго https://github.com/Jeerjmin/weather-app
Если что пиши в телеграм, отвечу на пару вопросов по проекту

Худший ответ:  react + nodejs + mongodb
Это уже можно считать сложным приложения, потому что 3 простых приложения взаимодействуют друг с другом.
Если упрощено: frontend (в виде react.js, но может быть любой), общается с backed (node.js, но может быть любой - тот же php или ruby), который вносит изменение в базу данных (mongodb, но может быть любая, тот же mySql).
Простой пример на основе Vue.js, можно глянуть тут: https://github.com/DarkScorpion/vue2-express-blank. Смотреть логику создание и сборки и запуска лучше с package.json раздел scripts.
Вопрос: Как подменить картинку nginx?

Лучший ответ: как-то так:if ($http_accept ~* "image/webp") { 
      rewrite ^/(.*)\.jpg$ /$1.webp;
}

Худший ответ: Удобная конвертация и подмена на нужный формат есть в pagespeed модуле от гугла.
https://github.com/pagespeed/ngx_pagespeed
Вопрос: Авто создание поддомена с сайтом?

Лучший ответ: Когда я впервые познакомился с сервером, который создаёт поддомены третьего уровня, а также умеет "парковать" домены второго уровня, я прежде всего представил себе, что там автоматически создаются директории для пользовательских скриптов, конфиг для апача и какой-то рутовый демон делает sudo service apache reload
Но на деле оказалось не так.
1. В DNS стоит правило (см https://toster.ru/q/7456) - все поддомены ***.myservice.ru отправляются на один IP* IN A 192.168.1.1
Замени 192.168.1.1 на IP твоего сервера
2. В апаче/nginx не стоит привязка виртуального хоста к имени домена (myservice.ru или иной), все запросы отправляются на обработку на один скрипт (PHP?)
nginx{
    listen 80;
    # server_name не указывать
}
3. В коде приложения (PHP) вычисляется домен в запросе HTTP и исходя из этого строится ответ
У пользователя в таблице user прописано имя домена, то есть пользователь Вася - это домен vasya.myservice.ru$domainName = $_SERVER['HTTP_HOST']; // vasya.myservice.ru
$userDomain = $db->findUserByDomain($domainName);
echo 'Владелец этой страницы: ', $userDomain->fullName; // Владелец этой страницы: Вася
// ...
Это если речь про веб-интерфейс. А если у тебя реально разные приложения (бинарники?) ставятся из архива, то тебе нужно запускать разные команды из PHP, например
1. Создать директорию, сгенерировать конфиги htaccess или host для Apache
2. Распаковать архив /или слинковать какую-то общую часть через symlink
3. Заставить Apache сделать reload конфигов
Для этих команд тебе пригодится php.net/manual/en/function.system.php php.net/manual/en/function.exec.php или php.net/manual/en/function.shell-exec.php
Последний пункт самый небезопасный, потому нужно пользователю апач дать права на выполнение команды от рута. Лучше делать это по крону или от имени специального сервиса-демона, а не из PHP.

Худший ответ: system()upd: А вообще такие вещи через htaccess разруливаются.
Вопрос: Почему тип ответа передается в метод как переменная?

Лучший ответ: Чтобы ты не копипастил везде конструктор ответа, передаётся болванка. И да, не "в большинстве", а в асинхронных/неблокирующих, потому что в синхронных классы ответов примитивные и используются только после завершения ответа.

Худший ответ: Это объект, который ты должен заполнить. В функциональных языках это вполне могло бы быть возвращаемое значение, но его сложно передать в иную асинхронную функцию. Синтетический пример:asyncSetHeaders(resp)
Из менее синтетических примеров - необходимость сделать асинхронный запрос, чтобы в итоге сформировать response
Вопрос: Что такое верстка и посадочные страницы?

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

Худший ответ: всплывающее окно можно отнести к верстке 
ну да, само окно нужно верстать, но что бы оно в нужный момент всплывало это уже прогhttps://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BC%D...
Вопрос: Как правильно использовать CASE WHEN в ActiveRecord в YII2?

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

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

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

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

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

Худший ответ: Интересно было бы посмотреть на сайт, который не просит подтверждения :)
Но вообще, ответ очевиден. Подтверждение нужно, чтобы уменьшить количество автоматических регистраций от ботов
Вопрос: Что будет если настроить пересылку писем друг другу?

Лучший ответ: Не надо нас дудосить

Худший ответ: нет, пересланные не перешлются
Вопрос: Доменная почта Yandex вместо своего почтового сервера?

Лучший ответ: Я за Яндекс, это будет быстрее в настройке и удобнее для пользователей. Постоянное слежение за почтовыми сервисами на своем сервере, то еще удовольствие.. Давно перевели почту и ДНС на PDD и не жалеем.
P.S. Единственный минус, это во время регистрации ящика надо указывать данные владельца (ФИО и т.д.). Не всегда удобно, когда надо завести какие-либо сервисные ящики.. Но, мы решили это появлением сказочных персонажей, типа Платона Щукина

Худший ответ: В pdd.yandex.ru / biz.mail.ru  предназначен для других целей, когда у вас имеются настоящие пользователи почты, которые работают с почтовым ящиком.  Для ваших целей он подойдет разве что на первый порах, т.к. там есть лимиты на отправку писем.
MTA на почтовом сервере вам потребуется в любом случае, даже при отправке через внешний сервис, т.е. pdd/biz могут заменить вам IMAP/Web интерфейсы к почте, но не отправку писем от вашего сервиса.
Лучше отправлять транзакционные письма напрямую с сервера, а получать письма для своего домена на одну из внешних служб для доменов.
Вопрос: На mikrotik можно ограничить число попыток входа по ssh?

Лучший ответ: Можно, например вот так:/ip firewall filter
add action=drop chain=input comment="ssh blacklist drop" connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_blacklist
add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=4w2d chain=input comment="ssh stage3 to black list" connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input comment="ssh stage2 to stage 3" connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input comment="ssh stage1 to stage 2" connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input comment="ssh new to stage1" connection-state=new dst-port=22 protocol=tcp
Добавляем ip из каждого нового подключения в список stage1 на одну минуту, если в течении этой минуты будет еще попытка, то переводим его в stage2, далее в stage3, а от туда уже в blacklist на 30 дней, который, соответственно, дропаем первым правилом.

Худший ответ: Ilya Demyanov , ваше решение абсолютно неверное и в бан на 30 дней уходит аккаунт сразу же. То есть, если владелец случайно введет неверно пароль, то сразу блок. Это не верная логика. 
Не понятно зачем выкладывать правила абсолютно не проверив их.
Вопрос: Как установить Ubuntu?

Лучший ответ: Привет,
Сначала ставят Windows, оставляя необходимое место для последующей установки Linux, так как Windows при установке затирает Grub и ставит свой загрузчик.

Худший ответ: Под списком значки +- вам в помощь.
Вопрос: Что значит сайт должен быть адаптивным и кросс-браузерным?

Лучший ответ: Кроссбразерный это значит что в каком бы браузере Opera,Mozila, Safari.... я бы не открыл твой сайт, он везде должен отображаться одинаково корректно без съежания и т.п.
Адаптивный это значит что на любом устройстве, с любым разрешением  я мог открыть твой сайт и он подстаивался под разрешение моего устройства, типа скрывались огромные меню, допустим колонок статей на моем планшеты было 2, а не 4 как на моем фулл хд мониторе, шрифты подгонялись под размер и были читабельными. Крч гуглом учись пользоваться

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

Лучший ответ: > какая на данный момент самая востребованная и актуальная платформа виртуализации?
Нет самой востребованной и актуальной, выбирайте ту, которая больше всего подходит для решения ваших задач.
Есть два типа виртуализации: на базе гипервизора (самые известные это KVM, VMware, Xen, Parallels Desktop, VirtualBox) и контейнерная (самые известные это OpenVZ, LXC, Docker, Rkt). Контейнеры еще делят на те, котороые внутри содержат полноценную ОС (то есть там все утилиты что и в обычном Linux: bash, top, rm etc) (это LXC и OpenVZ) и контейнеры, для запуска одного приложения (Docker/Rkt).
Основное ограничение контейнеров в том, что запускать можно только ту ОС, которая установлена на сервере.
То есть в LXC и OpenVZ можно получить только контейнеры с Linux. В решениях для гипервизорной виртуализации можно запускать разные ОС (Windows/Linux/BSD). Контейнеры обычно имеют бОльшую плотность размещения по сравнению с гипервизорами, поэтому например OpenVZ очень любят хостеры.
Посмотрите сравнение LXC vs OpenVZ vs Xen, чтобы понять чем они отличаются в деталях.

Худший ответ: ИМХО KVM,Hyper-V,WMware.
Вопрос: Область использования языка GO?

Лучший ответ: Рассматривайте Go как что-т осрденее между явой и плюсами. Соответственно, всё сделать можно, особенно учитывая, что Go может работать с С кодом. А писать GUI на нём так же, как на C++, только либ ещё меньше.  Есть биндинги Qt.

Худший ответ: 2) Парсер xml-файлов с возможностью каталогизации и конвертации данных из xml в другие форматы.
6) простые ГУИ (кнопка, кнопка и оконце). 
Проще забить и взять C# если Windows, а если нет, то Java, Python, C++.5) web-сервисы
Смотря какие.интересует golang - подобные задачи можно ли решать и если да, насколько быстро(скорость разработки)?
Он не для скорости, скорость разработки и Google несовместимы, он для высокой нагруженности.
Вопрос: Почему оно не видит анимацию @keyframes?

Лучший ответ: вместо to попробуй задай процентное значение в анимации. то есть 100%; А вообще код скинь куда-нибудь в кодпен. И попробуй убрать инлайн стили у блока, а именно изменяемое значение ширины.

Худший ответ: вместо to попробуй задай процентное значение в анимации. то есть 100%; А вообще код скинь куда-нибудь в кодпен. И попробуй убрать инлайн стили у блока, а именно изменяемое значение ширины.
Вопрос: Почему среднее значение разное?

Лучший ответ: Второй параметр в range - это количество элементов, а не конечное значение (как вам, по-видимому, показалось).
То есть, в первом случае последовательность такая: 1, 2, 3, 4, 5. А во втором такая: 0, 1, 2, 3, 4. Соответственно, 15 / 5 = 3, 10 / 5 = 2, всё правильно.

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

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

npm отказывался запускаться (после установки create-react-app), выдавая ошибку:
Error: ENOSPC: System limit for number of file watchers reached, watch '/home/user/reai-comp/public'
Чистка кэша не помогала. У некоторых помогает перезагрузка, но не в моём случае.
Решила проблему единственная команда:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Худший ответ: может /tmp забит?
https://stackoverflow.com/questions/22475849/node-...
Вопрос: Как не попасть под аффилированность сайтов в Яндексе city.site.ru и site.ru?

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

Худший ответ: Делаю в DNS
город.сайт.ру. CNAME сайт.ру.
отображается сайт.ру, в адресной строке город.сайт.ру - все как надо, но подтягивается сертификат от сайт.ру и не подходит к город.сайт.ру
Если сделаю через htaccess редирект, то в адресной строке уже будет домен сайт.ру
Вопрос: Почему Ubuntu ворует мои мегабайты при разметке диска?

Лучший ответ: ubuntu ворует место чтобы передавать ваши личные данные инопланетянам

Худший ответ: Выравнивание разделов + округление при выводе