Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Стоит ли данные авторизации главного администратора хранить в окружении?

Лучший ответ:
Вот пример того пользователи хранятся в вордпрессе примерв целом как вариант можете загуглить rbac + ваш язык и посмотреть как реализована либа и как её используют. Еще будет полезно погуглить rbac design.
Мне пришла мысль, что можно указать логин и хэш пароля прямо в .env файлеНа самом деле немного странное решение, вполне нормально хранить эти данные в бд, если не ошибаюсь в wp так и делают.
К роуту авторизации этого пользователя можно предоставлять только с определённого пула IP-адресов, которые храним в этом же файле окружения вместе с ключами шифрования JWT.Так не стоит делать, если это нужно то лучше написать в отдельноё middleware, которое будет уметь это делать, эта задача к системе ролей никак не относится.
Раз в этом файле хранятся ключи шифрования, то полагаю место достаточно надёжное и почему бы так не поступить.Довольно неудобно менять пароль, по сути нужно перезапускать систему для этого
создать одного главного админа который будет либо единственным в своём роде, либо сможет раздавать такой же уровень правВообще это не такая и редкая ситуация когда только 1 человек знает все пароли, но стоит предусмотреть возможность чтобы была возможность того, чтобы админ мог создавать пользователей с любыми ролями и привилегиями. Я же правильно понял, что вы хотите создать систему ролей которую можно будет применить к любому проекту, то глупо ограничивать пользователя, пусть делает что ему нужно, с вашей стороны нужно обеспечить гибкую систему ролей.

Худший ответ:
Тут заметил одну проблему. Если появится потребность в изменении пула IP-адресов, или данных входа, придётся перезагружать сервак и на какое-то время ложить сервис. Может есть возможность подтягивать изменения в рантайме из файла окружения. Я только видел как меняют окружение из кода программы, а я подумал о возможности изменить .env и из терминала заставить сервер подтянуть изменения.

Сделай watcher для файла с секретами через fs.watch, тогда при изменение файла с данными сервер сможет их подхватить без перезапуска
Вопрос: Что означают просто { тут блок кода } в с++?

Лучший ответ:
Пользуются свойствами блока кода:
1. создается новая область видимости 
2. объект, созданный внутри блока кода, удалится по завершению (т.е вызовется деструктор). В сочетании с RAII иногда удобно.

// Когда не хочется придумывать новое имя другой переменной, которая точно такая же по смыслу.
// И хочется дать ей константность - ее менять я не собираюсь, в смысле изменчивости переменной.
const bool ok = foo1();
if (!ok)
    return;
{
    const bool ok = foo2();
    if (!ok)
        return;
}

// Когда надо защитить мьютексом изменение переменной, на как можно более короткое время.
...  некий код
{
    const std::lock_guard<std::mutex> lock(_mutex);
    ++i;
    // _mutex is automatically released when lock goes out of scope
}
... продолжаем код

Или замерить время выполнения части кода. Создаем объект, в конструкторе которого захватываем текущее время, в деструкторе выводим затраченное время в лог.

Худший ответ:
Означают просто блок кода. Влияет, например, на область видимости.
Хотя так еще можно вроде массивы инициализировать (не уверен), еще что то.
Вопрос: Как сложить числа c пробелами jquery?

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

Худший ответ:
Также, как и в обычном javascript, - удалением пробелов из строки.
Вопрос: Почему не считывает русскую букву в char?

Лучший ответ:
При работе с языками в консоли обычно возникают следующие вопросы.
1) Консоль. Какая кодировка по умолчанию для однобайтных символов. Смотри команду.
chcp для windows или 
$ locale для linux.
2) Какая кодировка указана для char для текущего компиллятора. Включен ли режим _UNICIDE. 
Посмотри что делают
setLocale(...);
 setCodepage(...);
3) Какой размер символа sizeof(char).
4) В какой кодировке написан исходник. Это можно проверить если посмотреть hex редактором. Там где русская буква может быть например 0xC0 для однобайтной и двух байтной для Unicode.
5) Установлены ли шрифты? Операционка может быть англо-язычной и в этом случае она не обязата что-то специфичное отображать.

Худший ответ:
Если программа выполняется под виндой, то:
1. В консоли винды по умолчанию кодировка cp866 (да же не cp1251 и тем более не unicode). Кодировка консоли в винде может быть легко изменена с помощью команды консоли chcp, так что полагаться на то, что в консоли будет всегда одна и та же кодировка не стоит. Когда вы читаете символ с консоли, то он появляется в программе в кодировке консоли.
2. Еще у вас есть кодировка файла исходного кода. Компилятор сам ничего не перекодирует. В какой кодировке написаны ваши константы в исходниках в той они и будут в программе. Когда вы выполняете операцию сравнения, то символ в кодировке файла исходного кода сравнивается с символом в кодировке консоли. Если обе кодировки не совпадают - сравнение будет не удачным, даже если символ один и тот же.
3. Простой вариант - писать исходники в cp866 и не менять кодировку консоли в тестах. Может не работать, если, например, запускаете программу из MSVC - IDE может сама менять кодировку своей отладочной консоли. Лучше тесты запускать вручную в отдельном консольном окне.
4. Правильный вариант - исходники писать в UTF8, символьные и строковые константы писать как wide char (wchar_t, в винде это UTF-16) перед вводом узнать кодировку консоли, перекодировать введенные символы в UTF-16, сравнивать символы в UTF-16. С выводом в консоль - та же история. В WinAPI есть функции перекодировки из многобайтных (cp866/1251, ...) в широкие символы и обратно.

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

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

Вроде как в вашем кейсе ничего страшного нет, но вот этот "порог вывода" очень уже пованивает буксами и казиношками.

И да, программа лояльности не предполагает для конечного пользователя заработка. И даже какой-нибудь Steam, хоть и позволяет заработать, вывод денег не предусматривает.

Короче, правильный ответ: нет.

Худший ответ:
Привет.  Чем закончился ваш вопрос? Реализовали вы проект?
Удалось ли обсудить с юристами? Напишите пожалуйста.

У нас подобная тема. Но ответ не можем получить.

Заранее брагодарен, если не пройдете мимо
Вопрос: Выбрать специальность в IT как дополнительную?

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

Во первых в DS идут со знанием питона, и берут туда как правило питонистов мидлов, или pre-мидлов. Не слышал что бы с улицы брали людей без опыта. Хотя 44 года(всё таки опыт и статусность + английский вполне могут сыграть здесь вам на руку).

По поводу свободного времени - что бы нормально качнуться до адекватного джуна в любой средней по сложности сфере - нужен год 4-6 часов ежедневного вкалывания и поглощения тонны информации. Далее еще года 2-3 нужно до уверенного мидла.

Самый лучший и адекватный вариант - через 3-4 месяца искать стажировку в какой нибудь крупной компании, давить английским и пет проектами, т.к джуном в любой сфере протолкнуться сложно. На IT школы забить - есть куча бесплатных ресурсов с материалами, от бесплатных youtube\коурсхантер, до udemy + книги + форумы + сообщества.

Самым лучшим вариантов из всех - найти работающего сотрудника из крупной компании(промониторить хабр карьеру например, поискать сеньоров которые готовы будут за 20-30 т.р в месяц сделать из вас за 2-3-4 месяца вменяемого новичка), попросить у него менторинг, и он же вас потом тянет к себе в компанию. Друг в Москве провернул так с джавой, 38 лет - полет отличный.

Худший ответ:
Дополнительно освойте:
git
linux (shell)
sql 

эти 3 пункта нужны во всех специальностях в it

DS на всех курсах показывается легче, чем оно есть. Если нет отличный базы в матанализе+статистике+теории вероятности, туда порог входа в начале карьеры, на мой взгляд выше, чем в тестирование/веб разработку
Вопрос: О чего могут быть критические фризы?

Лучший ответ:
Профайлить и дебажить в таком случае.

И кстати полное зависание - может быть банально из за ошибки в логике - где то бесконечный цикл или рекурсия без выхода

Худший ответ:
Так как на одних устройствах все работает хорошо, а на других замечены провисания могу предположить что дело в графических API. И провисание идет из-за Device.pressent или Semaphore.WaitForSignal. 

Edit > Project Settings > Player 
Посмотри стоит ли галка на Auto Graphics API 
Если не стоит поставь
Вопрос: Воркеры php-fpm неожиданно начинают потреблять значительно больше CPU?

Лучший ответ:
Ещё вариант: заполняется OPcache. Чтобы проверить, вместо FPM restart попробуете выполнить его сброс.

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

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

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

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

Худший ответ:
Просто ищите работу
Вопрос: В чем суть развода?

Лучший ответ:
Владимир Коротенко, I'm myself a senior software engineer from China - ага...
Думаю, - это новая разновидность афганского вируса.
Здравствуйте, я афганского вирус. По причине ужасной бедности моего создателя и низкого уровня развития технологий в нашей стране я не способен причинить какой-либо вред Вашему компьютеру. Поэтому очень прошу Вас, пожалуйста, сами сотрите какой-нибудь важный для Вас файл, а потом разошлите меня по почте другим адресатам. Заранее благодарю за понимание и сотрудничество.

Худший ответ:
Эта тема уже поднималась тут неоднократно. Таких предложений полно. Если готов вскоре получить пожизненный бан без возможности когда-либо работать на Upwork, то можешь откликнуться.
Вопрос: Гигабитный линк на коммутаторе.. а скорость 55?

Лучший ответ:
Пропускную способность канала лучше всего изменять от своего сервера до своего клиента. Для этого есть клиент-сервер приложение iperf3
https://iperf.fr/iperf-download.php

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

Лучший ответ:
Я не знаю, кто у Вас там с кем воюет, но технология всегда одна - в нужной стране арендуете VPS, разворачиваете там VPN-сервер, подключаетесь к нему и выходите куда надо через него. 
Наверное, есть в РК свои дата-центры, предлагающие такую услугу. IP будет всегда один и тот же. Насчет стабильности соединения - зависит скорее от Вашего провайдера, хостер VPS - обычно достаточно крупный и обеспечивает себе стабильное соединение.

Худший ответ:
1. Нужно арендовать VPS сервер. Искать, например, здесь https://poiskvps.ru/index.php?search_country%5B%5D... При аренде сервера выдадут статический IP адрес.  
2. На сервере установить и настроить VPN сервер.
3. На своем компьютере установить VPN клиент. Перед запуском игры обязательно включать VPN.
Только можно ли пользоваться VPN при игре? Раньше не все румы разрешали играть с VPN. Заранее узнайте в поддержки. Если нельзя VPN, то на VPS установите прокси, например Shadowsocks
Вопрос: Стоит ли использовать разные DTO для Response и Creation объекта?

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

Худший ответ:
На этот вопрос нет однозначного ответа. 
Очень сильно зависит от того, что у вас за сервис. 
Если это CRUD, то модели должны быть полными и достаточно одной. 
Если это с той или иной степени RPC, то ИМХО модели должны быть разными, а модели для UPDATE вообще быть не должно, как и самой операции.
Вопрос: Как выровнять подпись с помощью css?

Лучший ответ:
У тебя селекторы неправильно написаны. Такого класса .auto-category нет в разметке.

Худший ответ:
.auto-category__item добавьте этому классу text-align: center;
Вопрос: Как отправлять произвольные данные через сетевую карту?

Лучший ответ:
Универсальное, но не самое гибкое и быстрое решение: raw socket. Работает во всех популярных ОС.

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

Лучший ответ:
Не понимаю как сделать так что ячейка не занимала всю высоту, а только свою
Не туда смотрите. Кроме колонок существуют еще и строки.
Добавьте для первого элемента
.activity__item.grid {
	grid-column: 1/3; /*сокращенный вариант вашего кода*/
	grid-row: 1/3; 
}

Худший ответ:
Можно сделать их как два больших блока(в одном одна большая картинка, во втором 4 маленьких)
Вопрос: Писать типы вначале или рассчитывать на вывод типов компилятором?

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

Если вы НЕ указываете тип, и рассчитываете на автовывод, то значит вам нужен не какой-то конкретный тип, а ТАКОЙ ЖЕ, КАК И... где-то ещё. Например, такой-же-как тип константы или такой-же-как тип возвращаемого значения функции. Иными словами, если я пишу:
const id = findIdByName("abc");
то мне не так важно, какой конкретно тип будет иметь id, мне важно чтобы это был тип возвращаемого значения функции "findIdByName". Для меня это приоритетно. Более того, если в какой-то момент тип возвращаемого значения у этой функции поменяется, то этот код продолжить компилироваться и, вероятно, даже РАБОТАТЬ (это зависит уже от того, что мы потом собираемся делать с id).

Совершенно противоположная ситуация - интерфейсы. В широком смысле. Интерфейсы функций, интерфейсы классов, интерфейсы в смысле типов данных, создаваемых с помощью "interface". Особенно если эту функцию/класс/интерфейс использует много кто ещё. Тогда наоборот, вам НЕЛЬЗЯ допустить, чтобы типы параметров или тип возвращаемого значения просто так поменялись. Это вдвойне важно, если вы пишите библиотеку и речь идёт о её публичном интерфейсе - любое изменение интерфейса тогда должно подкрепляться версионированием (например, семантическим). Вы не можете просто так, тем более по недосмотру, вместо числа начать возвращать из функции строку - вы сломаете ваших клиентов, причём даже не знаете как и где.

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

Часто по привычке из других языков описание структуры данных, задаваемых тут же, начинают с типа, но это абсолютно излишне в TypesScript, т.к. можно наоборот получить тип из готовой структуры, что сокращает кучу лишнего кода.

Ну и есть религиозное течение "types first" но это, на мой вкус, мазахизм чистой воды. И совершенно не стоит мнимых выгод.
Вопрос: Сохраняет ли navigator.clipboard.write стиль текста?

Лучший ответ:
el.innerHTML использовать

UPD. Да это у меня чувство юмора дебильное ))
Вот так попробуйте: https://nemecek.be/blog/156/how-to-copy-html-to-cl...

Худший ответ:
Спасибо Алексей Ярков, это работает для меня:
function setClipboard(text) {
    const type = "text/html";
    const blob = new Blob([text], { type });
    const data = [new ClipboardItem({ [type]: blob })];
    navigator.clipboard.write(data).then(
        function () {
            console.log('/* success */');
        },
        function (err) {
            console.log(err);
        }
    );
}
Вопрос: Что выбрать для самописной системы управления складом, PHP или Python?

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

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

Лучший ответ:
На винде запускать - это бред.
Если на VPS планируете держать только бота, то лучше оформить его в виде пакета. Настройте CI\CD и он сам будет развёртываться на вашем сервере прикаждом релизе в системе контроля версий.
Лично я разворачиваю бота в докере, потому что боту обычно нужна БД, какие-то приложения рядом... Всё установть и настроить - это отдельная история и спустя пару лет бесперебойной работы вам или вашему заказчику, возможно, придётся переехать на другой хостинг или переустановить и настроить все заново, а из памяти всё уже выветрилось. Спасает описание всей конфигурации в виде docker-compose. 
Тогда переезд на ноый сервер вообще тривиален. Также легко поднять тестовый клон бота на локальной машине для отладки и работать он будет в той же среде и с той же конфигурацией, что и на сервере. 
Особенно это удобно, если приходится приментяь какие-то конвертеры графики или звука.

Если надо поднять дв абота на разных фреймворках или с разными зависимостями, то докеризация тоже спасает от необходимости возиться с venv.  А зависимости бывают еще и у сторонних внешних утлит.

Худший ответ:
запускать лучше на linux сервере)) надежнее
оберните бота в systemd, запустите как сервис
надо GUI - установите lxde к примеру и подключайтесь по vnc ))

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

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

Вот визуализация сортировки:snippet

Худший ответ:
Потому что второй код неправильный.
Если хочешь разобраться почему - дебаггер тебе в руки и вперёд!

P.S. почему 10/2 делится нормально, а 10/0 возникает ошибка? Надо запилить вопрос на тостере
Вопрос: Не запускается windows 7, что делать?

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

Поэтому я его никогда его не использовал.

Главный вопрос - что делал перед тем как это произошло, ответ на этот вопрос в 90% случаев даст ответ что делать дальше, фраза 'я ничего не делал оно само' в 99.(9)% случаев на поверку оказывается что на самом деле там происходил эпический пиздец, к примеру помыл ноутбук, с мылом, под краном.... поэтому нужно подойти со всей ответственностью к ответу на него, даже если тебе кажется что было незначительное действие.

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

Если после успешной автоматической проверки ничего не исправилось, почти наверняка по простому не решить, нужно понять что было причиной. Попытаться войти в консоль, выполнить команды sfc /scannow, эта команда попытается найти повреждения всех системных и не только файлов и заменит их с компакт диска установочного (придется потом искать дистрибутивы больших сложных приложений, так как они пожелают так же починиться), само собой установочный диск windows так же понадобится (можно скормить флешку с копией диска из образа) после этого почти наверняка будут установлены последовательно все обновления, т.е. если все запустится, компьютер будет занят собой еще долго.

Правильный подход - восстановить систему из бакапа, но его у тебя скорее всего нет?

Ну и если есть время - полная переустановка.

Худший ответ:
1) Безопасный режим работает?
2) sfc /scannow
3) вы операцию восстановления то дождались?
Вопрос: Google PageSpeed не видит мой скрипт замены картинок на webp. Что делать?

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

Худший ответ:
Вот мой скрипт, который берёт все тэги img и image из html и меняет им источник картинки на картинку webp, если браузер поддерживает.Откройте для себя тег picture! И да - iBird Rose абсолютно прав, вы только хуже наколхозили.
Вопрос: Чат-бот без программирования?

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

Худший ответ:
Да. Такое возможно. К сожалению когда конструктор уже создан и опубликован - этот сегмент обычно заполнен. И вы запрыгиваете в последний вагон. Кроме того конструктор предлагает ограниченный сет возможностей. Ну... меньше чем в языке программирования. И если заказчик попросит вас улучшить что-то или добавить фичу - вы оказываетесь полностью в заложниках от API конструктора.
Вопрос: Как найти ip адреса по маске в iptables linux?

Лучший ответ:
Взять и прочитать правила :) Прямого списка там может и не быть. Более того, я бы не стал там его держать, например. Есть такая штука - ipset, предназначен для хранения списков адресов, портов etc. И он очень часто работает в паре с iptables. Если используется ipset в самом правиле iptables никакого списка адресов не будет.

Вот например, как я блокирую RFC1918-адреса на входе с внешнего интерфейса (то есть там, где их теоретически быть не должно):
/etc/sysconfig/ipset
# RFC1918 networks
create rfc1918 hash:net family inet hashsize 1024 maxelem 65536 
add rfc1918 10.0.0.0/8
add rfc1918 172.16.0.0/12
add rfc1918 192.168.0.0/16

/etc/sysconfig/iptables
*mangle
# Mark packets, which BEFORE NAT have RFC1918-compliant addresses
-A PREROUTING -i eth1 -m set --match-set rfc1918 src -j MARK --set-mark 1
*filter
# Drop packets, which marked to drop in mangle table
-A FORWARD -m mark --mark 1 -j DROP

Худший ответ:
2.
iptables -L -n -v

Покажет вообще всё включая все забаненные IP