Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как ведут себя логические операторы в сложных ситуациях?

Лучший ответ:
Это не совсем логические операторы.
Это побитовые операторы, и операции они проводят над битами.
Например (в двоичной системе)
100 | 001 = 101
100 & 111 = 100
110 ^ 011 = 101

А про то, почему именно такой результат при работе с отрицательными числами - это тебе дз

Худший ответ:
Console.WriteLine(-2 & -3);         // -4
Это всё булева логика, представь числа в двоичном представлении, примени операцию для каждого бита и всё станет понятней.
Но |= , &= - что они делают?
Если ты понимаешь, что происходит с +=, то почему возникает вопрос с этими, меняется ведь только операция?
Вопрос: Почему не работает код в задаче гостевая книга на php?

Лучший ответ:
По порядку: 
Браузер выдает следующую ошибку:Во первых не браузер, а сервер, а браузер ее только отображает. Во вторых это уведомление и предупреждение, а не ошибка. 
Далее, если ваш $view->assign('persons', $data); работает верно - значит в индексе ДО этого места в дата ничего нет. Что легко проверить с помощью вар_дамп. И если там не пусто - что-то в вашем вью работает криво, или не так как вы предполагаете, читайте документацию к данному методу.

Худший ответ:
Метод render() в классе View работает не так, как вы этого ожидаете.

Когда вы подключаете шаблон, то в данном случае там доступен только $this, а $this - это сам объект View.
Поэтому получить массив персон вы можете только через $this->data['persons'] и никакой $persons там естественно нет.
т.е. в шаблоне работать будет только так
//...
foreach ($this->data['persons'] as $person) {
  echo $person['lastName'];
//  ...
}
Понимаете?

Для того, что был доступ в шаблоне именно к переменной $persons, вам надо импортировать её в методе render() с помощью функции extract() или через присваивание переменной переменной
public function render(string $template) 
{
  ob_start();
  // функция импорта
  extract($this->data, EXTR_OVERWRITE);
  include $template;
  $content = ob_get_contents();
  ob_end_clean();

  return $content;
}
Либо через переменные переменных

public function render(string $template) 
{
  ob_start();
  // Импорт
  foreach($this->data as $key => $value) {
   // Переменные переменных $$
    $$key = $value;
  }
  include $template;
  $content = ob_get_contents();
  ob_end_clean();

  return $content;
}
В том и другом случае результат одинаковый.

И тогда в шаблоне вы уже сможете работать непосредственно с $persons
Вопрос: Почему тут TypeError у map?

Лучший ответ:
А зачем там str и что вы имели ввиду, написав это?
Просто уберите.

function camelize(str) {
    return str
        .split('-')
        .map(function(word, index) {
            if (index == 0) {
                return word;
            } else {
                return word[0].toUpperCase() + word.slice(1);
            }
        })
        .join('')
}

let str = prompt('Введите текст через дефис');
alert(camelize(str));

Можно и покороче

function camelize(str) {
    return str
        .split('-')
        .map((word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1))
        .join('')
}

let str = prompt('Введите текст через дефис');
alert(camelize(str));

const upper = (word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1);
function camelize(str) {
    return str
        .split('-')
        .map(upper)
        .join('')
}

let str = prompt('Введите текст через дефис');
alert(camelize(str));

const upper = (word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1);
const camelize = str => str.split('-').map(upper).join('');

let str = prompt('Введите текст через дефис');
alert(camelize(str));

Худший ответ:
alert(camelize(str));
надо же передать аргумент в функцию..

и зачем тут .str в .str.join('') – уберите, оставьте только .join('')
Вопрос: Возможно ли установить контейнер как сервер?

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

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

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

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

Так как данные грузятся раз в 3-4 дня, наверное не очень критично, что загрузка будет выполнять не мгновенно. Тут наверное проще в несколько этапов сделать: на первом проходе построить список идентификатор датчиков по которым значение не поменялось, затем по этому списку проапдейтить дату окончания интервала на дату текущей загрузки, затем по датчикам которые не попали в список перелить строки в архивную таблицу и наконец поменять для изменённый датчиков в оперативной таблице значение счётчика и даты начала и окончания интервала. 
Всё шаги можно делать массово.

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

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

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

Худший ответ:
JS если что достаточно универсальный язык, который много где используется как язык скриптов для какой-то софтины, наряду с таким же lua напимер. Ну и та же нода - к фронтенду не имеет отношения вообще, хотя тоже веб стек. Равно как и наоборот - фронтенд может разрабатывать например на тайпскрипте, или вообще в каком-нибудь блэйзере...

Опять же, вакансии чаще всего пишут хээры, а для них жс и фронтенд часто по сути синонимы. Так что только уточнять в каждом конкретном случае.
Вопрос: Какие бесплатные сервисы для отправки email есть для Laravel?

Лучший ответ:
В одном проекте, для транзакционных писем использую SendPulse
Бесплатный тариф - 12к писем в месяц, но с ограничением до 50 писем в час. 
Правда, об этом ограничении на сайте ничего не написано. (Может я плохо искал) Об этом вы узнаете только в личном кабинете )))

Письма отправляются через них уже более трёх лет. Если не превышать лимит, то проблем не возникнет.

Использую не в Laravel. 
Для PHP у них есть своя библиотечка. Очень простая, всё задокументировано и есть примеры использования.

НО! На packagist можно найти библиотеки для интеграции sendPulseApi с Laravel.

Если вам это подходит, то можете попробовать.

Худший ответ:
-- Sendgrid:
https://docs.sendgrid.com/for-developers/sending-e...
https://github.com/s-ichikawa/laravel-sendgrid-driver
https://spatie.be/docs/laravel-mailcoach/v4/config...

 -- Mailjet:
https://github.com/mailjet/laravel-mailjet
https://mailjet.github.io/laravel-mailjet/
https://github.com/TheDoctor0/laravel-mailjet-driver

использовал mailgun, но теперь там нет бесплатного тарифа
Если вдруг вы на Google Cloud, то остался: https://www.mailgun.com/google/
Вопрос: Какой стек использовать для разработки SPA?

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

Смотри, тебе щас напишут вагон и маленькую тележку технологий, в основном то, чем сами пользуются, у большинства тут кругозор за %framework name% не выходил. Знаешь, как люди, которые дают советы о путешествии. но сами живут в условном Заречном, где-то под Пензой и путешествовали не дальше самой Пензы.

У тебя даже нет явного предпочтения, не знаешь Vue взять или React. Сказать почему? Потому, что ты не знаешь ни того, ни другого как технологию. Если бы знал более-менее что-то одно, у тебя бы даже вопроса не было.

Хочешь реляционую БД вроде посгреса, но что тебе мешает то? Бери! Пиши скорее код, зачем зацикливаться на выборе стека? Чтобы взять прям самый лучший и точно не прогадать? Не прогадать что? Любой стек, технология со своими плюсами, минусами и подходами (иначе бы не было конкуренции и такого изобилия в выборе). 

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

Написать хороший продукт можно на чем угодно, ключевое слово тут писать, делать, а не разговаривать и выбирать. Это просто способ самообмана: я не бездельнячаю! Я выбираю стек! 

Какие-то планы себе загадываешь с ИБ, а даже простой CRUD сделать не сможешь.

Худший ответ:
начинающему лучше всё сделать на чистых языках без ничего
без готовой СУБД, только файлы или SQLite

это импонирует и попрет непосредственно
Вопрос: Для чего маршруты 255.255.255.255/32 в таблице маршрутизации?

Лучший ответ:
Это Connected routes или маршруты к непосредственно подключённым сетям.
Пакеты не могут быть переданы без маршрута. Если маршрут, представляющий целевую сеть, отсутствует в таблице маршрутизации, то пакет будет отброшен.

PS
Кстати, если не будет коннектед маршрута, но будет дефолтный маршрут, то траффик в рамках одного L2 пространства будет проходить через роутер, а не напрямую от хоста к хосту.

Худший ответ:
255.255.255.255 - бродкаст сети 0.0.0.0/0. Т.е. глобальный бродкаст. 

Именно поэтому он присутствует для каждого локального адреса. При поступившем в IP-стек запросе на отправление пакета на адрес глобального бродкаста от какого-либо приложения он будет отправлен через каждый имеющийся логический интерфейс (локальный IP-адрес). Аналогично он будет принят с любого интерфейса и обработан системой.
Вопрос: Приложения закрываются сами по себе, Windows 10?

Лучший ответ:
Lokfio, попробуйте увеличить размер файла подкачки виртуальной памяти, должно помочь.
1. Правой кнопкой мыши по кнопке Пуск, заходим в Система.
2. Далее, в области справа, заходим в Дополнительные параметры системы.
3. Во вкладке Дополнительно, в разделе Быстродействие нажимаем Параметры.
4. Переходим на вкладку Дополнительно, и в области Виртуальная память нажимаем кнопку Изменить...
5. Убираем галочку с пункта "Автоматически выбирать объем файла подкачки".
6. Ниже меняем параметр "Размер по выбору системы" на параметр "Указать размер: "
7.  Исходный размер, вводим 1024;  Максимальный размер 4096
8. Нажимаем ниже справа кнопку Задать, далее ОК и перезагружаем систему.

На этом, в общем-то, все. Это должно решить вашу проблему.

Худший ответ:
Откройте Диспетчер задач и посмотрите , как изменяется активность приложений, загруженность процессора, памяти во время закрытия приложений
Вопрос: Почему crontab файл очищается после перезагрузки?

Лучший ответ:
Есть подозрение, что вы работаете в Live-режиме.

Худший ответ:
Вообще-то, в зависимости от того, от Пользователя или рут вы создаёте в планировщике задание, создаются соответствующие файлы в:
/var/spool/cron/crontabs
и файлы такие:
- если создавалось через sudo (от рут), то файл root
- если от Пользователя (без sudo), то файл user (имя_пользователя_в_системе)
Соответственно и процессы, прописываемые в заданиях должны соответствовать этой иерархии.
Вопрос: Может ли IP-телефония работать без АТС?

Лучший ответ:
Теоретически - может, но это будет очень неудачное решение, потому что на каждом телефоне придется держать адресную книгу или набирать полные адреса вида "номер@IP"

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

Не все прошивки телефонов способны на такое - многие без возможности регистрации будут зависать при запуске.

Худший ответ:
1. ТА и софтфоны должны уметь работать без гейта.
2. Звонки будут только one-to-one.
3.  Города и прочих плюшек атс у вас не будет.
Вопрос: Как форматировать флешку, если при попытке пишет: «защищено от записи»?

Лучший ответ:
Флешка дохлая, только и всего. Нужно купить новую флешку.

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

Лучший ответ:
Конечно, есть нюансы и исключения, но общее правило такое: в большенстве случаев корректной является топология из четырехугольников, иногда допустимы треугольники, если без них никак. 
В вашем случае, в примере 1, то что вы назвали "только одна грань" по сути восьмиугольнк. То что вершины (углы) расположены на одной прямой, ничего не меняет. Следовательно нужно делать как в 2, а для 3 должны быть веские причины.

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

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

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

Массивы лучше списков, если вам не надо часто добавлять в/удалять из середины.

Используйте меньшие типы данных, если можете. Обойдитесь без аллокаций, если можете.

Худший ответ:
Не уверен, что вас понял. Но попробую ответить. .Никак Потому что предварительно загружается не ваш код, а то, что откомпилированно. То есть это зависит от компайлера, как и что процессор будет исполнять. Это раз. Второе - это то, что процессор догружает не только те команды, которые исполняются, но и просто напросто участки кода, которые может быть будут исполнены, а может быть и нет. Например когда происходит ответление - если это условие = true, то исполнитель этот кусок Клода, ранее- другой. И эти оба куска догрузятся ещё до того, как исполнилось условие. Это уменьшает задержку времени, если условие исполняется  и только потом догрузиься участок кода, к которому произойдёт прыжок. Поэтому оптимирование с вашей стороны при написании програм на с, с++, с# или Java именно к этой функции процесмора не вижу большого смысла или надобности. Он за вас даже паралельность делает, если есть в нем несколько ядер  а вы эту паралельность даже и не предусматривали в своём коде. Название этой функции register renaming.
Хотя советы например выше позволят писать проще и ассемблерный код тоже будет лучше, но это больше универсальные предложения по оптимированию, чем для этой функции процессора.
Вопрос: Видеокарта 20-30 градусов продолжает крутиться один куллер пока не перезагружу ПК. В чем может быть проблема?

Лучший ответ:
Управляется только один кулер (4 провода). второй видимо работает пока есть питание (2 или 3 провода) возможно после перезагрузки питание отключается.
Совет: Не мешайте жить устройству. Там лишнего ничего нет. раз так работает значит так надо пусть крутится.

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

Лучший ответ:
Или правильно настрой на сервере IPv6 или убери из DNS запись типа AAAA

Худший ответ:
А DNS вообще правильно резолвит это имя сайта? Он же изначально ругался что DNS запись не указывается на IP....
Вопрос: Почему — то когда работаю с классом не через главный поток, переменные в классе не изменяются, почему?

Лучший ответ:
Ну второе как раз объяснимо, ты запускаешь work() для одного и того же класса.
Пока первая копия work() спит в time.sleep(1), начинает выполняться вторая, так как всё происходит в отдельных потоках. Вторая видит isworking = 1, и останавливается.

Худший ответ:
Ввиду отсутствия какой-либо синхронизации потоков, работающих с одним и тем же объектом, результат получается неопределен.
В представленном коде запускаются 2 потока подряд, без ожидания завершения каждого из них. А результат, вероятно, проверялся в главном потоке, пока оба потока ещё работали.
Вопрос: Где правильно выполнить динамическую проверку, например, для выбора метода оплаты, используя laravel контракт и инъекцию зависимостей?

Лучший ответ:
Делать в реальном проекте так точно не рекомендуется.
То что вы приводите в виде примера - это размазывание бизнес логики между всеми слоями приложения.
Все что вам нужно, это какой-то класс PaymentFactory, который будет иметь метод make(string $credit), у которого аргумент $credit и будет принимать значения credit/bank/null и на основании переданного аргумента будет возвращать правильный объект класса обработчика конкретного метода оплаты. И уже этот PaymentFactory можете вызывать через DI.
Однако эту задачу можно решить через паттерн стратегия, тоже хорошо подойдет для удобной организации кода.

Худший ответ:
Лучше всего делать это так, чтобы быстро найти хвосты когда будешь дорабатывать это дело через пол года. Ну и придерживаться этого подхода по всему проекту. В общем случае явное лучше неявного (что предполагает принятие решения в контроллере и явное создание объекта с нужным интерфейсом (ну или байндинг класса) в месте обработки запроса
Вопрос: Как переименовать файлы с определенным условием в Linux?

Лучший ответ:
В Linux есть замечательная утилита rename. Ну, точнее, их две: одна входит в пакет util-linux, другая - скрипт на базе perl-модуля File::Rename. В deb-дистрибутивах нужный нам скрипт устанавливается в составе пакета rename и также имеет имя второе file-rename (а версия из util-linux имеет имя rename.ul). В других дистрибутивах может быть иначе, поэтому смотрим внимательнее параметры запуска (можно запустить rename без параметров и убедиться, что это нужный вариант).

Синтаксис предельно простой: rename регулярное_выражение_замены_perl имена_файлов

Синтаксис rename.ul для сравнения: rename что_заменить на_что_заменить имена_файлов

Вот что можно сделать для решения задачи (в предположении, что других точек, кроме как перед расширением, в имени файла нет):

rename 's/-\w+\././' *

Этот скрипт намного удобнее многоэтажных однострочников, да и пригодится в жизни ещё не раз.

Худший ответ:
https://regex101.com/r/NeoDkO/1
find + regexp 
вот так ищешь файлы. - далее можно или через exec
или xargs
или просто через print 0
и sedom поменять  до сохранения.
Вопрос: Возможно появились новые удобные способы работы на нескольких местах?

Лучший ответ:
У вас вероятно очень специфические задачи если производительности ноутбука за "цена вопроса не имеет значения" вас не устраивает.
Ноут лучшее решение.
Альтернативы:
Переносной накопитель. Ниже производительность, нужны современные интерфейсы, ниже надёжность, выше риск утраты включая возможность компрометации информации.
Любая форма rdp или удаленного ПО. Зависимость от сети.
Скриптованное окружение. Высокая сложность, издержки поддержки скриптов.

Ноут лучшее решение, в стационарных условиях к нему подключается внешний монитор или два.

Худший ответ:
Ноут ультрабук 13 и по дополнительному монитору 24-32 дюйма 2-4к в местах присутствия полностью решают мои проблемы. Да, дополнительно ношу блютуз мышку.
Был макбук, задушил жаба, купил асус зенбук на треть дешевле - работаю в линуксе с юбунту и bspwm (тайловый менеджер окон). Удобнее макбука оказалось!
Вопрос: Как лучше формировать уникальный номер в БД, помимо автоинкрементного ключа?

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

Худший ответ:
Сделайте контракт отдельной сущностью и храните в отдельной таблице. В один прекрасный день у вас неизбежно появятся студенты с несколькими контрактами.

Для выбора уникального номера зафиксируйте полный префикс и ищите максимальный номер с этим префиксом
contract_number like '111090621%'
Вопрос: Как проверить кроссбраузерность верстки?

Лучший ответ:
Важна ли версия браузера при проверки кроссбраузерности верстки в разных браузерах?

Обычно принимают какое-нибудь соглашение, какая минимальная версия каждого браузера будет поддерживаться, и дальше уже идёт вёрстка исходя из этих соглашений. (Ну и соответственно тестирование на этих версиях)
Необходимо ли с заказчиком обговорить с какой версии браузера необходима (будет сделана) рабочая верстка в конкретном браузере?
Обязательно. Ведь вы можете решить, что последние несколько версий наиболее популярных в мире браузеров - это ок (тк это покрывает 99%), а потом окажется, что половина аудитории заказчика сидит на IE или safari, и тогда придётся всё переделывать, тк используемые вами фичи не поддерживаются в них.

Худший ответ:
Важна ли версия браузера при проверки кроссбраузерности верстки в разных браузерах?

Обычно принимают какое-нибудь соглашение, какая минимальная версия каждого браузера будет поддерживаться, и дальше уже идёт вёрстка исходя из этих соглашений. (Ну и соответственно тестирование на этих версиях)
Необходимо ли с заказчиком обговорить с какой версии браузера необходима (будет сделана) рабочая верстка в конкретном браузере?
Обязательно. Ведь вы можете решить, что последние несколько версий наиболее популярных в мире браузеров - это ок (тк это покрывает 99%), а потом окажется, что половина аудитории заказчика сидит на IE или safari, и тогда придётся всё переделывать, тк используемые вами фичи не поддерживаются в них.
Вопрос: Проблемы с кодировкой, как исправить?

Лучший ответ:
В python3 строки - юникодные, ord(c) возвращает unicode код символа, который только для ASCII символов будет в диапазоне 0-255 (0-127, точнее, 128-255 - расширенная латиница). Для кириллицы код занимает 2 байта.

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

Худший ответ:
Записывайте. Даю удочку. Рассказываю, как дебажить:

Смотрите каждое промежуточное и думайте, корректное оно или нет. 

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

Например, подайте на вход прямой функции текст "D(k¢B"...

А вообще, да. bin(ord(русска_буква)) будет больше чем 8 символов.