Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как делать шардинг такой базы данных?

Лучший ответ:
Надо тег сделать, "влажные эротические фантазии".

Сайта у нас ещё нет.
Базы данных нет.
Статей нет.
Известной личности нет.
Офигиллиарда лайков нет.

Но зато полные штаны беспокойства, А ВДРУГ БАЗА НЕ СПРАВИЦА!!!

В порядке конструктива. 
Купи себе пару хороших книжек, а лучше пойди на нормальные курсы, которые от Авито, не помню, как они называются. Потом пойди поработать в нормальную контору, где можно на практике разобраться, что такое база данных и с какого конца к ней подходят. Не в смысле нагрузки, а чтобы и мысли не возникало про дичь типа таблиц вида likes_for_userid_847192. 
И годков через 5 можешь начинать задумываться о вопросе, "что будет если в базе будет 1 000 000 000 0000 00000 000000!!!111адинадин записей".

Худший ответ:


тут и на то, что ты еще не спросил
Вопрос: Wordpress, как продавать не создавая товар?

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

Худший ответ:
Если у вас только одна единица товара, то лучше использовать платежную форму.

У Яндекса она вот такая: https://money.yandex.ru/quickpay/

У PayPal не помню, где искать, но тоже имеется форма для приема платежа.

А у всяких агрегаторов должен быть свой API, с помощью которого можно всё вот это обрабатывать.
Вопрос: Как предсказать погоду на следующие 24 часа?

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

Худший ответ:
Посмотрите доклады Яндекса, они довольно много про это рассказывали
Вопрос: Умерла ли профессия верстальщика?

Лучший ответ:
Умерла ли профессия верстальщика?
Нет

Просто если вы хотите быть им и не развиваться, много не заработаете.

Худший ответ:
верстаки в 99% ни кому не нужны 
но если этот верстак владеет ещё какими то знаниями типа js/vue/react то уже шансов больше
Вопрос: Можно ли хранить SQL запрос в переменной сессии PHP?

Лучший ответ:
Это совершенно бессмысленно. 
Вообще, есть простое правило: не следует усложнять код на пустом месте.
Любой код должен всегда решать кокретную, существующую проблему. "Я тут подумал" - это не проблема. Поэтому решать её не надо.

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

Лучший ответ:
Hetzner Cloud позволяет к любому тарифу подключить отдельно дисковые тома.

Худший ответ:
soyoustart.com смотрели?
Вопрос: Будет ли чист с юридической точки зрения сайт, позволяющий загружать «пиратские» материалы, но дающий скачивать только список загруженного?

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

Худший ответ:
Никогда!
Такой сайт однозначно будет нарушать закон!

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

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

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

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

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

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

Лучший ответ:
возможно, modx

Худший ответ:
Эх, кончился октябрь. Зима пришла нежданно... :'(
Вопрос: Как стать специалистом по информационной безопасности?

Лучший ответ:
Начать с ответа на вопрос - зачем я иду в ИБ. Не, я не троллю (в данный момент). ИБ - огромная, чрезвычайно многогранная и не всегда приятная область работы, в которой черт знает сколько различных направлений, поднаправлений и подподнаправлений :D

Кем Вы себя видите в ИБ:
- кодером, взламывающим вирусы и восстанавливающим файлы, поеденные криптором?
- сетевиком, настраивающим средства сетевой защиты, сканеры, системы раннего предупреждения?
- админом СМП, мониторящим работу сотрудников? (да, это тоже часть работы ИБ - и не дай Бог Вам ею заниматься!)
- разработчиком документации, положений, инструкций?
- админом PKI, отвечающим за корпоративные сертификаты?

Худший ответ:
Пойти работать по специальности, понять что 50-70% универа надо забыть, учиться по этой специфике далее на работе
Вопрос: Как сверстать радиусы внутри блока?

Лучший ответ:
Это просто фон. 
Фон с помощью множественных радиальных градиентов. 
У одного блока, а не трех.
Типа того https://jsfiddle.net/ertscfdw/
Разными способами написала градиент для разных случаев, сами сделаете как нужно, в зависимости от желаемого поведения при адаптации.
Статья

Худший ответ:
Дима Турков, согласен. Лучше нарисовать фон в svg и вставить как картинку.
Вопрос: Как правильно сделать привязку к this в react?

Лучший ответ:
потому что стрелочные функции не содержат собственный контекст this

Худший ответ:
Переходи на функции, меньше кода, удобно. Тем более сейчас есть хуки.
Вопрос: Есть ли разницы в производительности веб-сервера под CentOS 7 и CentOS 8?

Лучший ответ:
Разницы, ради которой стоит переустанавливать ОС не будет. Это же не РНР 5.5 на 7.4 менять... 

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

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

Лучший ответ:
Ой да ладно не смогли...
infocod.ru/publ/kody/1_xxx/1_xxx/263-1-0-562 - второй вот тут найдете, например.
Надеюсь с первым справитесь сами.
Формат более чем международный

Худший ответ:
Убрать с конца 7 цифр и профит в гугле
Вопрос: Можно ли играть в игры без дискретной видеокарты?

Лучший ответ:
вполне.
всё зависит только от ваших хотелок.

если процессору станет плохо, он отключится до того, как вы это заметите.

Худший ответ:
вполне.
всё зависит только от ваших хотелок.

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

Лучший ответ:
Разверните, будет вам счастье. Добавите логотипов, перевод на мову, и вполне взлетит если подключить админ ресурс 
docs.identityserver.io/en/latest

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

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

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

Если есть интерактив(ввод/вывод на консоль, окна), имеет смысл сделать MVP или MVC.

Худший ответ:
У вас всего 4 действия, поэтому можно сделать классы App (в нем метод main для запуска приложения и получения строки с консоли), Parser класс чтобы «разобрать» строку на аргументы и оператор (матем.действие), и последний класс Calculator (принимает аргументы и матем. оператор), выполняет действия и выводит результат.
Вопрос: Как сделать кнопку неактивной пока не заполнены поля и не отмечены чекбоксы?

Лучший ответ:
Ну добавь все проверки в свой checkParams, и повесь на чекбоксы onchange="checkParams()"
function checkParams() {
            var name = $('#name').val();
            var email = $('#email').val();
            var phone = $('#phone').val();
            if(name.length != 0 && email.length != 0 && phone.length != 0 && $('#personaldata').prop("checked") && ($('#cakecheck').prop("checked") || $('#drinkcheck').prop("checked")))
                $('#submit').removeAttr('disabled');
             else 
                $('#submit').attr('disabled', 'disabled');
        }

Худший ответ:
Script
function checkParams() {
	var name = $.trim($('#name').val());
	var email = $.trim($('#email').val());
	var phone = $.trim($('#phone').val());
	var checkbox1 = $('#cakecheck').prop('checked');
	var checkbox2 = $('#drinkcheck').prop('checked');
	var checkbox3 = $('#personaldata').prop('checked');

	if (checkbox1 && checkbox2 && checkbox3 && name.length > 0 && email.length > 0 && phone.length > 0) {
		$('#submit').prop('disabled', false);
	} else {
		$('#submit').prop('disabled', true);
	}
}

HTML
<form method="post" action="" id="forma" name="">
	<div class="loyalty-form__checkboxes">
		<div class="loyalty-form__checkbox">
			<img class="loyalty-form__checkbox-img" src="<?php echo get_template_directory_uri() ?>/assets/images/static/checkcake.png" alt="">
			<input type="checkbox" class="loyalty-form__checkbox-style" name="cake" id="cakecheck" onchange="checkParams()" required>
			<label class="loyalty-form__checkbox-text" for="cakecheck">Хочу скидку на тортики <span class="loyalty-form__pink">*</span></label>
		</div>
		<div class="loyalty-form__checkbox">
			<img class="loyalty-form__checkbox-img" src="<?php echo get_template_directory_uri() ?>/assets/images/static/checkdrink.png" alt="">
			<input type="checkbox" class="loyalty-form__checkbox-style" name="drink" id="drinkcheck" onchange="checkParams()" required>
			<label class="loyalty-form__checkbox-text" for="drinkcheck">Очень люблю кофе, хочу скидку <span class="loyalty-form__pink">*</span</label>
		</div>
	</div>
	<input id="name" oninput="checkParams()" class="form-element" type="text" placeholder="Введите имя" autocomplete="off" required /><br>
	<input id="email" oninput="checkParams()" class="form-element" type="email" placeholder="Введите e-mail" autocomplete="off" required /><br />
	<input id="phone" oninput="checkParams()" class="form-element" type="tel" placeholder="Введите телефон" autocomplete="off" required/><br />
	<input type="button" id="submit" value="Отправить" disabled>
	<input type="checkbox" name="check" id="personaldata" onchange="checkParams()" required>
	<label for="personaldata">Согласен(а) на обработку моих персональных данных</label>
</form>
Вопрос: Как более правильно с логической и эстетической точки зрения открывать новую Activity?

Лучший ответ:
Правильно с эстетической и логической точек зрения создать класс Router, в котором будет метод openSomeScreen(), и который будет вызываться из всех нужных мест. 
Две активити тебе, с большой вероятностью, не нужны, нужны фрагменты.
В коде активити/фрагмента должен быть необходимый минимум действий.

Худший ответ:
Второй вариант имеет запас на перспективу - если надо будет вызывать активити из разных мест, совершать какие-то дополнительные действия, то код будет лаконичнее в итоге.
P.S. По-хорошему Intent для вызова должна возвращать вызываемая активити.
Вопрос: Как удалить из TXT файла, строчки где нет символа «@» используя PHP?

Лучший ответ:
Для решения твоей задачи, тебе необходимо считать файл в переменную. Сделать это можно разными способами, но наиболее уместные тут, это: file и file_get_contents.
Далее в случае с file_get_contents тебе надо или использовать регулярные выражения, для замены строк с помощью функции preg_replace и модификатором m в регулярном выражении, тем самым выполнить первую часть твоей задачи. Либо разбить полученный текст на строки с помощью функции explode по символу перевода строки. В результате получишь массив строк.
В случае когда у тебя есть массив строк, тебе надо пройтись по нему и проанализировать строки на предмет вхождения подстроки. Заводишь новый массив, куда будешь складывать строки. Итерация делается с помощью for, foreach или while. Поиск подстрок делается с помощью функции strpos или mb_strpos. Соответственно если нет символа @, добавляешь строки в новый массив, если нет, то нет. 
Для того, чтобы убрать повторение строк, используй эту же строку в качестве ключа ассоциативного массива. Так же можно использовать функцию array_unique после того, как будет сделана первая часть задачи.
После того, как ты это сделаешь, тебе нужно будет склеить строчки обратно в текст, для этого используй функцию implode. Записать полученный текст в файл, тебе поможет функция file_put_contents

Худший ответ:
Три строчки:$source = file('/path/to/input/file');
$result = array_unique(array_filter($source, function ($str) { return strpos($str, '@')!==false; }));
file_put_contents('/path/to/output/file', implode(PHP_EOL,$result));
Для изучения: file()array_filter()strpos()array_unique()file_put_contents()implode()
Вопрос: Мобильное меню и сео. Стоит ли избегать дубля?

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

Худший ответ:
никак не влияет, если оно не слишком объемно. обоснование мнения -  как правило пункты меню все равно дублируют в футере.
Вопрос: Для чего все-таки нужны интерфейсы?

Лучший ответ:
Представь у тебя есть какой-нибудь метод, который принимает в агрументах объект, например, типа UserdoSomething(User user)
Ты можешь передавать в этот метод любой объект типа User или объекты классов, наследующих User.
Но можно сделать еще гибче, например описать некий интерфейс  UserInteface и указать в определении метода его: doSomething(UserInterface user)
Теперь ты можешь передавать в метод объект любого класса, который реализует интерфейс UserInterface.
Разумеется, изначальный класс User из этого примера тоже должен реализовывать этот интерфейс.
То есть, указывая в типе данных параметра какой-то конкретный класс, ты привязываешься к этому классу или его наследникам, а указывая интерфейс ты привязываешься к этому интерфейсу, который может реализовать любой другой класс, связность уменьшается, а это хорошо. А если ты в этих, еще не написанных классах будешь просто писать нужные методы, то не сможешь объект этих классов использовать, тип данных то будет другой, хотя методы и будут описаны.
И, как уже написали выше, один класс может реализовывать несколько интерфейсов.

Худший ответ:
На самом деле, всё довольно просто: интерфейсы нужны для декомпозиции модели и облегчения разработки ПО. По факту, интерфейс описывает набор операций, который можно совершить над объектом. Если вы пишите какую-то функциональность, то она допустим работает только с теми объектами, над которыми можно совершать определённые действия, а что это за объекты вас не волнует. Буква "I" из набора принципов SOLID про этом, почитайте.
Вот допустим я пишу модуль, который должен стучать, по всему тому, что можно постучать. Есть у меня функция "knock(IKnockable o)" ну и соответствующий интерфейс. Клиенты, кому надо воспользоваться этим модулем, реализуют этот интерфейс в своих классах и пользуются. Но мой модуль вообще ничего не знает об клиентах, он просто работает со всем, что реализует определённый протокол взаимодействия (интерфейс). Это ещё и связанность понижает.
Вопрос: Как смонтировать часть диска в точку монтирования /home?

Лучший ответ:
прописываешь в /etc/fstab раздел /dev/nvme0n1p5 на монтирование в какую либо директорию к примеру /media/new_home
монтируешь его.
далее копируешь все файлы из /home (лучше воспользоваться rsync) в /media/new_home
далее в /etc/fstab переписываешь точку монтирования /dev/nvme0n1p5 из media/new_home в /home
сохраняешь /etc/fstab и уходишь в перезагрузку.
после перезагрузки проверяешь правильность монтирования и работы системы.
если все ок то перезагрузаешься в рековери, отмонтируешь /home и чистишь /home на корневом разделе (иначе твой старый хомяк тиак будет висеть мертвым грузом в корневой фс).

Худший ответ:
man mount
Если на постоянной основе, то man fstab
Вопрос: Как посмотреть историю изменения файла в Linux?

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

Худший ответ:
в среднем никак.
файловой системе совершенно неинтересно хранить историю изменений файла, потому она и ее и не хранит.
есть фс, которые "попутно" хранят историю изменений файла через CoW (btrfs zfs) или в некотором смысле vss, но это несколько другое.
как вариант спец.проги мониторинга и слежения за файлами или записи лога inotify, но это тоже не общий случай. 
вообщем опиши подробнее чего изволишь старче
Вопрос: Действительно ли reduce, filter, map и прочие работают медленнее обычного for?

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

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

Лучший ответ:
Вы всетаки решите кем вы хотите стать DBA или DevOps ?
Я думаю вам нужно сначало стоит опыт сисадмина до уровня мидла, а потом уже двигатся в сторону выбранной вами специализации, тк как обе специальности предполагают знание линукса и прочих прикладных вещей ввиде сетей, особенностей ОС и тд.
по поводу курсов - нет таких вот супер дупер, поэтому какойнибуть LPIC(для линукса) и аналоги для виндовс базовый прошли и достаточно -устраивайтесь кудато стажором - в хостинг/интегратор/телеком. Так как сисадмин это в основном не про книжные знания а про опыт экплуатации софта/железа, опыт организации сервисов/бэкапов/мониторинга.

Худший ответ:
Подскажите хороший, желательно бесплатный, курс, напоминающий институтский. Объём не важен, главное чтобы подробно и с максимальной пользой.
Эээ...Институт?
Вопрос: Как сбросить пароль на manjaro linux?

Лучший ответ:
Все достаточно просто, алгоритм:
У меня загрузчик GRUB, поэтому описываю с его точки зрения, если у вас UEFI могут быть нюансы.
1. Если система не dual-boot (например Windows + Linux), то при включении (или перезагрузке) ПК нужно зажать Esc  или Shift  до появления меню GRUB.
2. В меню GRUB напротив нужного пункта загрузки (в вашем случае "Manjaro Linux") нажать e
3. В этом текстовом файле найти строку "linux ..." (обычно почти в самом конце) и сразу переместиться в конец строки - комбинация Ctrl+e, поставить пробел и добавить single init=/bin/bash
5. Нажать Ctrl+x или F10 для продолжения загрузки.
6. Дальше все команды будут только в командной строке.
7. Если файловая система примонтирована только для чтения, перемонтировать для записи mount -n -o remount,rw /
8. Набрать в командной строке passwd имя пользователя, нажать Enter.
8.1 Если еще и логин был успешно забыт, то можно посмотреть что вообще за пользователи водятся в системе cut -d: -f1 /etc/passwd
9. Указать нужного, набрать новый пароль, нажать Enter, повторить еще раз (ввод пароля в строке не отображается).
9.1 Все прошло успешно, если увидите что-то типа password updates successfully
10. Набрать reboot -f, нажать Enter 
11. Загрузиться как обычно, и войти с вновь установленным паролем.

P.S.
Если так не получается придется идти через LiveCD и chroot.

Худший ответ:
Есть как минимум два способа. 

Пароль - это запись в файле /etc/shadow. Для его изменения нужно изменить то, что в этом файле записано, для сброса пароля (чтобы его не было совсем) нужно соответствующую запись привести к виду:
babay::18271:0:99999:7:::

где babay - имя юзера, а числа могут быть любыми. Главное - чтобы между символами :: после имени пользователя не было ничего (Текст, расположенный в этом месте - есть зашифрованный пароль)

1. LiveCD с любым дистрибом, монтируем диск с системой и стираем что там есть (потом задать нужно обязательно)
2. Emergency mode, монтируем диск и стираем (потом конечно же нужно задать)