Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Зачем нужны абстрактные классы и интерфейсы в php?

Лучший ответ:
Интерфейс - это контракт, который реализовывает класс, а пользователи класса знают как этот класс использовать. Это альтернатива множественному наследованию. Например у вас есть два типа коллекции: бинарное дерево и граф. Это довольно отличающиеся структуры данных. Но каждая из коллекций может реализовать интерфейс Iterator и в этом случае интерпретатор будет знать как перебрать коллекцию в цикле foreach.
Абстрактные классы в основном используются в том случае, если какую-то часть кода можно описать в родительском классе, но для того чтоб эта часть приобрела смысл, нужна конкретика: дополнить общую картину подробностями в виде методов или полей. Если вы присмотритесь к абстрактным классам в современных фреймворках, то увидите что сам по себе абстрактный класс не имеет смысла. Например, если создать объект такого класса оператором new, то этому объекту всё равно будет чего-то не хватать и именно это что-то и добавляют дочерние классы.

Худший ответ:
Как это зачем? Какой сахар? Базовый абстрактный класс задает интерфейс. И потом несколько разных дочерних классов задают разную реализацию для разных типов объектов. Но благодаря базовому абстрактному классу вы сможете например эти разные объекты создавать одной фабрикой или использовать их в других паттернах и классы этих паттернов могут работать с этими объектами через интерфейс в принципе ничего не зная об этих объектах (об их реализации).
Вы сделав первый шаг, не поленитесь сделайте и второй. Почитайте о SOLID и GRASP про шаблоны проектирования. Когда вы выйдите на новый уровень абстрактного мышления. В голове произойдет (просветление) понимание ООП (а не вот эта вот примитивная мантра из трех слагаемых - инкапсуляция, наследование, полиморфизм). Большие коммерческие проекты все сплошь на абстракциях сделаны. Там все очень абстрактно.
Вопрос: Как поменять Имя которое отображается в AD через PowerShell?

Лучший ответ:
Rename-ADObject меняет атрибут CN - то есть то, что отображается в списке
Соответственно и DistinguishedName
а DisplayName (Выводимое имя) ставится Set-ADUser -DisplayName
Если же нужно просто Имя, то это GivenName

DistinguishedName : CN=Чебуракин Геннадий Шапоклякович,OU=SOME_OU,DC=forma,DC=com
CN : Чебуракин Геннадий Шапоклякович
DisplayName : Чебуракин Геннадий Шапоклякович
Name : Чебуракин Геннадий Шапоклякович
Surname : Чебуракин
GivenName : Геннадий

Худший ответ:
прямо сейчас мне не на чем проверить, но я пока не вижу смысла в строке Rename-ADObject $distName.DistinguishedName -NewName $displayname в этом скрипте. этот командлет явно не предназначен для присвоения displayname юзеру. set-aduser должен это сделать, но я так понимаю не делает. каким именно образом не делает? ошибки?
Вопрос: Webpack 5 как настроить правильную сборку изображений?

Лучший ответ:
Правильное решение для Webpack 5
module.exports = {
   ...
   output: {
     ...
     assetModuleFilename: 'assets/images/[name][ext]'
   },
   module: {
     rules: [
      {
        test: /\.(png|svg|jpg|jpeg|gif)$/i,
        type: 'asset/resource',
      },
     ],
   },
 };

Худший ответ:
Обратился к разработчику сборки. Получил следующий ответ:
Изображения, которые используются в скрипте, должны храниться в src/images. В public хранятся файлы, которые используются в template.html напрямую. В разметке вместо "../public" следует указывать "./assets", например:
<div id="root">
  <!-- на самом деле изображение хранится в ../public/images -->
  <img src="./assets/images/example.jpg" />
</div>
Еще один момент: в webpack.common.js и webpack.prod.js значение publicPath в output надо изменить на "./" (поставить точку в начале).
Вопрос: Какой проект вы бы посоветовали сделать начинающему бекенду программисту на PHP?

Лучший ответ:
(я склоняюсь сейчас в сторону сайта по изучению английского языка с личным кабинетом
C него и начинайте. Там как раз будут основные компоненты.

Худший ответ:
интернет - магазин. Там много чего интересного есть: 
каталог (фильтры, пагинация, скидки, оптимизация запросов), страница товара, чекаут,  лк пользователя, авторизация, регистрация, просмотр заказов, загрузка/выгрузка товаров, кабинет менеджера, статистика продаж, оптимизация нагрузки, разбиение заказа на склады и можно еще много чего интересного придумать
Вопрос: Как вызывать AWS API используя временные credentials?

Лучший ответ:
https://docs.aws.amazon.com/en_us/cli/latest/userg...
Вы получаете креды.
Вам нужно положить их в соответствующие переменные окружения.
Далее следующая команда AWS CLI будет использовать их.

Худший ответ:
А вот и скриптик ))
#!/bin/bash
#12-digit number after iam:: is an account ID of the child organization account
full_session_data=$(aws sts assume-role --role-arn arn:aws:iam::123456789012:role/OrganizationAccountAccessRole --duration-seconds 900 --role-session-name mini-admin --query "Credentials" --output json | tr -d '{' | tr -d '}' | sed 's/ //g' | tr -d '\n')
AccessKeyId=$(echo $full_session_data | cut -d, -f1 | awk -F'":"' '{print $2}' | tr -d '"')
SecretAccessKey=$(echo $full_session_data | cut -d, -f2 | awk -F'":"' '{print $2}' | tr -d '"')
SessionToken=$(echo $full_session_data | cut -d, -f3 | awk -F'":"' '{print $2}' | tr -d '"')
echo $AccessKeyId
echo $SecretAccessKey
echo $SessionToken
export AWS_ACCESS_KEY_ID=$AccessKeyId
export AWS_SECRET_ACCESS_KEY=$SecretAccessKey
export AWS_SESSION_TOKEN=$SessionToken
#get all the regions to check each one for aws resources
regions=`aws ec2 describe-regions | grep RegionName | grep -o "[[:alnum:]]*\-[[:alnum:]]*\-[[:alnum:]]*" | tr '\n' ',' | sed 's/.$//'`
echo $regions
for eachregion in $(echo $regions | sed "s/,/ /g")
do
  echo "for the region of ""$eachregion"" we have the following VPCs:"
  aws ec2 describe-vpcs --region $eachregion | grep "VpcId"
done # end of instances cycle / for all regions
Вопрос: Можно ли инициализация yandex-карты только когда ее видно?

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

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

Лучший ответ:
Температура "железа" зашкаливает явно.
Проверяйте: или она, или БП.

Худший ответ:
Может и от жёсткого. Тестировать нужно. Но Софт просто так не будет ругаться на жёсткий, так что скорее всего он на грани.
Вопрос: Как отменить действия пользователя?

Лучший ответ:
гостевая учётка, например.

Худший ответ:
Ка уже говорил выше irishmann  вам нужна программа Shadow Defender, но она проприетарная. Зачем изобретать велосипед, у майков есть свое решение -  Windows SteadyState. И бесплатное.Windows SteadyState - это прекращенный бесплатный инструмент, разработанный Microsoft, который предоставляет администраторам расширенные возможности для настройки общих компьютеров, такие как защита жесткого диска и расширенное управление пользователями.
Вопрос: Какую операционную систему выбрать для ноутбука?

Лучший ответ:
Та которая нравится ту и выбирайте, мы то чем помочь тут можем?
Как говорится "на вкус все фломастеры разные", но если уж сильно интересует мнение то CentOS :)

Худший ответ:
Предыдущий комментатор  огромным стажем рекомендует не ставить. Знаете, мы всегда найдем мужа с огромным стажем, который будет отговаривать вас жениться.
я же, во-первых, напомню о существовании ноутов с предустановленным Linux (DELL, например) на которых все сразу работает.
во-вторых, я могу только приветствовать установку Linux программистом. Это и многочисленные среды для разработки, контейнеры, гибкость, безопасность, надежность. 
Недавно приятель рассказал историю. Два года писал игру, писал в Ubuntu, тестировал на W10. Начал перепиливать на java для смартфонов. С очередным обновлением W10 уничтожила раздел с Linux и всем последним кодом. 
Моя рекомендация Majaro и никакого KDE Neon или Wayland на Gnome. Не стабильны.
Вопрос: Есть ли какой-то критерий, по которому можно отличить дизайнера ui/ux? Junior/Middle/Senior?

Лучший ответ:
Главный критерий Junior/Middle/Senior, это когда проходишь собеседование на Junior/Middle/Senior и получаешь зарплату сопоставимую с зарплатой Junior/Middle/Senior на рынке.

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

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

Лучший ответ:
Раз у вас Tasker, то можете вот это глянуть на 4pda: GPS-трекер на основе Tasker.
Использовать как есть или сделать что-то свое по аналогии.

Худший ответ:
Никак.
Для получения gps координат, приложение должно запросить разрешение у андроида на доступ к этому API.
Вопрос: Существует ли GIT-клиент с ограниченной глубиной хранения?

Лучший ответ:
Git для такого не предназначен, увы

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

Лучший ответ:
Ваш вопрос эквивалентен вопросу: «Можно ли как-то родиться и начать жить сразу с 10 лет, а не с нуля?»

Худший ответ:
Чистый код - это форматирование
Хороший код - это архитектура.

Форматирование - зависит от привычек, от знакомства с текущими рекомендациями и принятыми в конкретном проекте правилами.

Архитектура - от опыта, причем богатого и разностороннего.

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

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

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

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

Ты задаешь уже шестой не очень умный вопрос, на который ЛЕГКО найти готовый ответ, если воспользоваться поиском. Но тебе видимо лень. Именно это и показатель, что у тебя вряд ли что-то получится. Слишком ленивый для обучения.

Худший ответ:
На примере Ghidra: сперва идёт поиск паттернов машинного кода (должны совпасть ключевые значения вроде опкодов, для этого составляется маска инструкции, затем необходимое целевое значение, полученное побитовым И с маской), затем подходящий паттерн преобразуется в две строки. Первая - заголовок, подаётся в дизассемблер, содержит мнемонику и операнды, в Ghidra используются спецификации на языке Sleigh. Но это так, для разминки, поскольку дизасм читать нереально, вот тут и было придумано промежуточное представление. Суть в том, что каждая инструкция - микрофункция, содержащая код (например, на языке Pcode, как в Ghidra). Затем он посылается в декомпилятор и поднимается до финального кода на C.
Вопрос: Безопасно ли хранить креды от базы в config.php?

Лучший ответ:
За пределами веб-корня желательно

Худший ответ:
в переменных окружения лучше всего
Вопрос: Какие посоветуете выключатели, которые управляются через Ethernet?

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

Худший ответ:
Посмотри в сторону оборудования компаний Атен и Нэтпинг  aten.ru netping.ru
Вопрос: Нужно ли указывать font-size, font-family, font-weight, color — если они такие же, как у body?

Лучший ответ:
Верно, дополнительно нужно указывать все эти свойства для input, textarea, button, select - эти элементы не наследуют значения шрифтов..

Худший ответ:
Правильно делаете, если это обычная верстка. Проблем не должно быть. Для конкретных элементов можно будет переопределить шрифт, если потребуется.
Вопрос: Переход с React на Angular, стоит ли?

Лучший ответ:
1) правда ли изучаешь один раз и применяешь везде?
да. 
У нас не принято собирать разнообразные велосипеды из набора либ. Разве что стейты vs сервисы :)
Меня всегда это вымораживало в реакте, чтобы реализовать привычные вещи приходится тащить черти что и еще выбирать самому. А чтобы выбирать нужно уже знать варианты.

2) как обстоят дела в крупных проектах?
По разному, но в целом они похожи все. Если разработчики достаточно опытны в ангуляре и ООП, чтобы писать нормально.

Архитектура приложений будет больше зависеть не от Ангуляра, а от знакомства разрабов с принципами построения архитектур, которые в целом несложны.
Сам Ангуляр ничего не навязывает, Nuxt в этом плане даже более структурирован. Однако и так все само получается примерно схоже. Отчасти поэтому nuxt/next для ангуляра не существует.
Еще популярен Nx, который помогает собрать монорепу из angular+nestjs например.

стоит ли?
Определенно стоит ознакомиться. Некоторые практики, без которых Ангуляр сложно представить, можно использовать и в react. Например di, если еще не используете.

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

Лучший ответ:
У вас несложная капча. Этапы распознавания следующие:

Находим зоны связности по цвету.
Пересекающиеся AABB ограничивающими прямоугольниками зоны объединяем в одну.
Вырезаем зоны, масштабируем к единому размеру.
Пастеризуем до монохромного.
Цифры у нас семисегментные. Нужно 7 линейных детекторов: это линейные риски (черточки), которые гарантированно перечеркнут сегмент. Метрикой детектора будем считать количество закрашенных пикселей под риской. Детекторы с метрикой меньше пороговой считаем не обнаружили сегмента.
По отдельному словарю декодируем набор включенных сегментов в цифру.


Худший ответ:
Мне кажется здесь идеально подходит библиотека opencv, преобразуем в монохром, кадрируем, оставляем только толстые линии, ищем цифры. Задача не сложная. За пару вечеров вполне можно изучить функционал либы и написать распознаватель.
Вопрос: Где делают такие окошки с кодом?

Лучший ответ:
Развлекайтесь на здоровье

Худший ответ:
Развлекайтесь на здоровье
Вопрос: Безопасность при использовании сессии?

Лучший ответ:
ищите по ключам php session injectionВот, например

Худший ответ:
Лучше всего использовать методологию JWT. - где все данные о пользователе лежат внутри cookie в BASE64.Хорошее видео про эти токены.
Есть и другие подходы и методологии токенов, но они мне явно нравятся меньше, поэтому коварно умолчу о них. Если интересно - гуглите "Методы авторизации".
Вопрос: Какие системные требования ПК нужны для программирования?

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

Худший ответ:
Посмотрел я, что за контора такая MCG Group... И немножко "выпасть в осадок" :)

Агентство маркетинговых коммуникаций.

Пардон, кто там у вас будет преподавать, если Вы, вроде как CEO (то есть не менее чем второе лицо компании) задаете такие прости-Господи-вопросы? Вам, как СEO (уж извините, что советы даю) - не мышками и софтом заниматься надо - а бизнес-планы разрабатывать и персонал нанимать. А мышки и ПО пусть нанятый Вами админ считает, который сам знает про системные требования.

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

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

Худший ответ:
Тупо загуглить
Вопрос: Безопасны ли реалтайм платформы?

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

Худший ответ:
если смогут добраться до серверного кода с приватными ключами и доступом к сервисам где будут храниться данные, то там уже пофиг на фаербейсе данные лежат или еще где  ¯\_(ツ)_/¯
Вопрос: Арбитраж, как сделать первые деньги?

Лучший ответ:
начать с телеграмов

первый деньги - напарить таких же начинающих

главное не втянуться

Худший ответ:
Успешные команды от 300000$ в месяц делают в арбитраже. Популярные вертикали Гемблинг, Нутра, Адалт. Надо уметь работать с Facebook, Google. Есть и проще источники те кто работает сам. Попсы, Пуши и т д.
Вопрос: Как собирать ip адрес посетителя сайта?

Лучший ответ:
Вам понадобятся 
1) Руки, чтоб написать код, на выбранном языке
2) БД, чтоб хранить IP адреса
3) и понимание как работает веб сервер =)

Худший ответ:
ip адреса посетителя сайта позволяет видеть система аналитики Matomo, можно воспользоваться ей: https://matomo.org/
Вопрос: Linux Manjaro KDE, как решить проблему с виджетами?

Лучший ответ:
Плазма это вообще очень глючная хрень.
Если такое произошло можно сбросить все настройки плазмы и настроить всё заново.
Выполнить в терминале:
kquitapp5 plasmashell
rm $HOME/.config/plasma-org.kde.plasma.desktop-appletsrc
plasmashell &

Худший ответ:
Такая же проблема... буду искать решение
Вопрос: Какой оптимальный JS фреймворк для мобильного SPA?

Лучший ответ:
Svelte

Желательно что бы мало весилрантайм минимален и только то, что по факту используется

мобильный браузер долго не обрабатывалкомпилируется в высокоэффективный нативный DOM api, что делает его мега быстрым

плагин хватало на стандартные функционалыНачать поиск отсюда можно

Худший ответ:
А разница то для мобильного?
Будет у вас 2 мб бандл. И что?
Дело в общем то в данных от сервера и некоторых других вопросах
Вопрос: Как взять последние 5 строк у которых category равен 1 в Mysql?

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

Худший ответ:
Выбираем все из результатов подзапроса с условием по категории, где сортируем по ID в обратном порядке, при выводе результатов сортируем в обычном порядке по ID 
SELECT id, title FROM (
    SELECT * FROM tableName WHERE category = 1 ORDER BY id DESC LIMIT 5
) sub
ORDER BY id ASC
Вопрос: Почему может возникать фриз на 10-20 секунд на новом WD Blue hdd?

Лучший ответ:
Вполне возможна ситуация с парковкой HDD.
Система на ssd, поэтому hdd практически не используется, и может запарковаться, и при внезапном обращении к нему - например для подгрузки новой локации, он долго будет отвечать.

Рекомендую проверить время отключения диска в параметрах электропитания.

Худший ответ:
Проблема не понятна и для сдачи обратно в магазин оснований не достаточно, но я обратил внимание, что у вас счётчик парковки головок больше, чем счётчик включений.
У вас может происходить парковка головок и повторное их позиционирование.
Погуглите WDIdle3 программу, может она поможет с вопросом парковки головок.
Вопрос: Как сделать, чтобы при записи в csv файл числа были числовыми, а не датами?

Лучший ответ:
Вы самое главное упустили. В виде дат эти строки выглядят в экселе, а CSV тут ни при чем. Это простой текстовый формат и в нем нельзя указать тип данных ячейки.
Вам в соседнем ответе уже порекомендовали настроить тип данных ячеек в экселе. Это именно его, экселевская, проблема. Слишком "умный".

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

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

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

Лучший ответ:
Как это не странно НО
https://ru.vuejs.org/index.html

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

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

Худший ответ:
В центре блок питания,   к нему последовательно подключены шесть  ламп (шесть полосок). 
1. Проверить напряжение вы  выходе БП,  тут аккуратно, возможно  будет 6х12 = 72v
2. Если БП жив,  надо искать какой элемент из шести  не исправен. 
Тут  можно попробовать запитать каждый элемент от другого источника DC,   начать   скажем от 5в.
Если дохлый БП,  чинить, или проще найти похожий по параметрам.  Или  померить сопротивление каждой полоски, если одна будет отличаться - она и бита. 
4. Заменить  полоску или LED в ней....   

Вообще  полоски похожи на обычнее LED ленты  которые  модно купить нарезать на кусочки.....

PS есть  еще запрещенный прием определить  - расскажу если ничего не получится
Вопрос: Как организовать переключение между ОС Linux (debian) и Win 10 на ноутбуке без перезагрузки?

Лучший ответ:
Работать в Linux и иметь виртуальную машину с Windows.
Работать в Windows и иметь виртуальную машину в Linux.
Работать в Windows и использовать WSL, если задачи позволяют.

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

А так качайте wsl или bash. В другом случае qemu, virtualbox,vmware
Вопрос: Как вывести текст из одной строки в формате «артист — песня» с помощью JS без багов?

Лучший ответ:
Можно вместо split("-") сделать split(" - "), но, вообще, лучше использовать JSON, чтобы название трека и артист были в отдельных полях. Это будет надёжнее работать, потому что входные данные могут быть непредсказуемыми. Например, название артиста будет содержать «–» с пробелами, и всё опять сломается.

Худший ответ:
Если на сервере можно получить нужные поля отдельно, то отправляйте с сервера нормальный объект в JSON и не извращайтесь с резкой строк.
Вопрос: Увеличение каких параметров сервера ускорит сайты?

Лучший ответ:
Ускорят хорошие соединённые сетевые интерфейсы и грамотно подкрученное ядро.
SSD ставить стоит на какие-то супернагруженные сайты.

Худший ответ:
Скорее всего увеличение мощности не поможет.
Оптимизируйте сайт.
Перейдите на php 7.3.
Используйте кеширование.
Я считаю, Вам хватит 2 ядра и 1гиг оперативки. SSD в приоритете, но не существенно, если сайт и так будет в памяти. SSD поможет, при обращении к диску, если у Вас много тяжелого контента, например видео. Иначе не сильно повлияет.