Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: В чем суть конечного автомата на примере фронтенда?

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

В качестве примера можно привести Reducer.
Если есть опыт работы с Redux, то я думаю, поймешь о чем речь.
Если нет, то:
Представь, что в приложении есть некий общий объект, который хранит в себе некие данные этого приложения. Например произошёл запрос на бэкенд, получен ответ, и данные сохранились в этом объекте. К этому объекту есть доступ у всех компонентов приложения. Т.е. отпадает потребность туда сюда из компонента в компонент передавать эти данные в виде props.
Данные в этом объекте может менять определенная функция. И этой функцией является редьюсер. И этот редьюсер и должен быть конечным автоматом.
Т.е. в редьюсер передаются данные, он эти данные принимает, распознает не при помощи if else, а при помощи switch case, так как это удобнее, и меняет данные в объекте. И, в следующий раз при передаче этому редьюсеру этих же данных, он поменяет данные в объекте абсолютно точно также.
const reducer = (state, action) => {
 switch(action.type) {
  case "new value":
  return{...state, value: action.payload}
}
}

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

Лучший ответ:
Для точных расчетов используют Decimal
https://docs.python.org/3/library/decimal.html

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

Лучший ответ:
Надо правильно обработать ошибку. 
В общем случае это делается при помощи конструкции try except finally. 
Например:
try:
    result = 1 / 0
except ZeroDivisionError as error:
    print(f'Ошибка "{error}" - на ноль делить нельзя!')

Худший ответ:
try:
    # код в котором появляется ошибка
except ошибка_которую_выдает:
    pass
Вопрос: Старый ПК апгрейд. Матплата P5K WS. Нужно ли менять старую видеокарту 9600GT?

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

Худший ответ:
Я думал это троллинг, ан нет,
человек год назад задавался вопросом ставить ли Win-10 на старый ПК вместо Win XP
потом в августе начались зависоны, и вот конец ноября ситуация тоже не очень, но я думаю сейчас ещё рано, ещё поработает, а вот в следующем году уже можно и задуматься, может и пора, но не спешить, может и до лета протянет.
Вопрос: Не могу сделать брутфорс почты на Python. В чем причина?

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

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

Лучший ответ:
х64-приложение на винхп х86  не запустится. никак.
ставишь минимум винхп х64.

Худший ответ:
Вопрос закрыт. Понятно что никак.
Вопрос: Userparameter в Zabbix — неужели все в ручную?

Лучший ответ:
У zabbix агента есть два режима - активный и пассивный, но часто используется пасисвный с прокси сервером для снижения нагрузки с основного серверах zabbix.
Про UserParameter-  у вас на каждом сервере разные настройки? Устанавливайете тоже вручную? Для установки агентов на windows можно использовать групповые политики или ansible для всех ОС. Либо python скриптом по ssh, либо powershell. Либо bash скриптом. Вариантов много.  Также зависит от вашей версии.

Также конфигураций может быть несколько(см. Include) и можно с начала ставить агент с основным конфигом и общими для всех хостов параметрами, а потом раскатывать уже кастомные конфигурации что решается также как я описал выше. Потом настроить автообнаружение.
Также у zabbix есть API с помощью которого можно много чего автоматизировать. И см. youtube, там много инсттрукций что как настраивать.

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

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

Лучший ответ:
Total Commander: https://www.ghisler.ch/board/viewtopic.php?t=51571
- у автора темы по ссылке - такой же вопрос. 
Кому лень переходить по ссылке - команда cm_CompareDirsWithSubdirs - в TC.

Худший ответ:
https://www.google.ru/search?q=folder+compare+tool
Лично я таких не видел, но это не значит что их нет...
Вопрос: Как восстановить файл docx?

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

если только не включены теневые копии - свойство по файлу - предыдущие версии

Худший ответ:
Увы уже никак, если бы вы его удалили восстановить можно, но вы его заменили, а теперь R.I.P. реферат.
Вопрос: Компьютеры в офисах, везде ли они?

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

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

Лучший ответ:
на данное время крупных проектов использующие его (кроме дискорда) нет
Чеееегооо? Mozilla очень активно использет Rust, активно идут обсуждения о том, чтобы переписать ядро Linux на Rust, да огромное количество как новых, так и старых проектов используют Rust. Это один из самых быстрорастущих языков.

Худший ответ:
Rust появился в 2006
Rust перешёл в stable только в 2015. 
До этого это были всякие прототипы и эксперименты.
на данное время крупных проектов использующие его (кроме дискорда) нет
https://www.rust-lang.org/production/users
Как мне кажется, достаточно много разных крупных и именитых продуктов.

PS: С Rust у тебя бы не возникло таких вопросов:
https://qna.habr.com/q/1155256
https://qna.habr.com/q/1147948
Вопрос: Как сделать, чтобы кнопка всегда была на одном уровне?

Лучший ответ:
Уберите align-items: center у .panel__wrap
Картинку выравнивайте отдельно. 
snippet

Худший ответ:
align-items: flex-end поможет. 
.panel__wrap {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	margin: 0 -10px;
}
А если нужно более аккуратно чтобы выглядело, то нужно .panel__image задать фиксированную высоту, а вложенному изображению добавить object-fit: cover;
https://jsfiddle.net/vfz4t52y/1/
Вопрос: Как отобразить несистемное сообщение на экране выключения?

Лучший ответ:
Нарисовать полностью своё окно похожее на системное.

Худший ответ:
Официальный отввет МС - никак
Не официальный - 
https://answers.microsoft.com/en-us/windows/forum/...

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

Лучший ответ:
Заменить на $request['content']

Вообще мне не понятно, для чего сделан объектный доступ к переменным запроса. Возможно это используется внутри, или наследие прошлого. Но использовать его в приложении - так себе идея. Есть методы get(), input(), реализован ArrayAccess.

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

phpStorm прав: свойство $content обявлено как protected (Laravel унаследовал это свойство из Symfony).
Попробуйте использовать функцию $request->getContent() вместо прямого обращения к непубличному свойству.
Вопрос: Как добавлять/удалять класс при наведении?

Лучший ответ:
Нужно сохранять в состоянии элемент при наведении на него через (onMouseEnter).

А в className проверять, совпадает ли этот элемент и тот, что в состоянии. И если совпадает, добавлять ему нужный класс, иначе null.

const [currentActive, setActive] = useState()
Внутри скобок useState указываем элемент, если нужно задать его по умолчанию активным или оставляем их пустыми.

className={currentActive === el ? "active" : null}
В элементе прописываем выбор класса в зависимости от состояния.

onMouseEnter={() => setActive(el)}
Меняем состояние при наведении.

Худший ответ:
const [obj, setObj] = useState(null);
let classRef = useRef([]);
function testfunc(index, e) {
    if (obj !== null) {
      classRef.current[obj].classList.remove("img45test");
    }
    e.currentTarget.classList.add("img45test");
    setObj(index);
  }
в общем как то так

в итерируемом элементе прописать ref={(el) => (classRef.current[index] = el)}
1. пихаем все элементы в useRef
2. далее при  первом наведении состояние = Null значит просто добавляем класс и пишем индекс
3. второе наведение с помощью рефа убираем класс у элемента с предыдущем индексом и добавляем к текущему, и опять пишем индекс
4. повторяем по кругу
честно сам не понял как к этому пришел
осталось как то по дефолту сделать сделать элемент с индексом 0 в фокусе со старта
Вопрос: Cрок регистрации домена истек, а он всё ещё зарегистрирован на меня, почему?

Лучший ответ:
Через месяц. Например:
created 2014-05-30T14:16:17Z
paid-till 2023-05-30T15:16:17Z
free-date 2023-06-30

Худший ответ:
По тому, что домен ещё не разделегирован, в зависимости от условий регистратора и зоны, где домен был делегирован. Домен будет разделегирован в течение 30 дней.
Вопрос: Из-за чего вылетает «Invalid length for a Base-64 char array or string»?

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

А то с таким же успехом можно сохранить в файл эту страничку html и сменить расширение файла на .exe, а потом удивляться, почему файл не запускается.

Худший ответ:
У Base64 есть определённые требования на длину, тк один байт кодируется несколькими символами + должно быть выравнивание в конце.
Передавай туда корректный base64 и ошибки не будет.
Вопрос: Что выгоднее — взять свой vps под vpn или просто оплатить условный премиум какого-нибудь сервиса?

Лучший ответ:
Свой vps конечно, тут даже обсуждать нечего.

Худший ответ:
Свой VPS, без вариантов)) хоть на 100 устройств, цена вопроса - 5$...
VDsina, Justhost, Hetzner итд
Вопрос: Как узнать разрешение экрана на стороне сервера при Server-Side Rendering?

Лучший ответ:
Концептуально неверный подход.

Всё, что сервер может узнать о клиенте, находится в HTTP заголовках запроса, в строке User-Agent. Узнать, мобильный клиент запрашивает контент или десктопный, можно распарсив эти данные.

А вот какое разрешение экрана у устройства — вообще не дело сервера. Если я сожму окно браузера на ноутбуке до форточки размером 400х300 пикселей, я стану мобильным устройством?

Худший ответ:
Идиотский подход. Верстка должна быть всегда одинаковая, разрешение отрабатывается media queries
https://developer.mozilla.org/en-US/docs/Web/CSS/M...
Вопрос: Стоит ли идти после СПО в ВУЗ?

Лучший ответ:
Вариантов куча. Например закончить год и перевестись в вуз. 
Второе как только начнете соображать идите работать. То есть уже с 20 лет. 
Бросьте к черту шарагу и идите в бизнес как Билл Гейтс
Закончить шарагу и нырять в заочку. 
Выйти замуж наконец. 
Есть еще вариант с мемом про девушку которой надоело учится, но он кислый

Худший ответ:
Вузом отшлифуете (теоретическими) свои практические коллежские знания.
Вопрос: Менял для программы значение кнопки «.» на кнопку «Num 2» тк у меня нету нампада на клаве. Как вернуть значение клавиши?

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

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

Лучший ответ:
Путаем причину и следствие.

Следствие - при установке на сайт сертификата, полученного в российском CA, в браузере он не показывается доверенным.
Причина - производитель браузера/устройства не включил сертификат данного CA в список доверенных по своим собственным причинам.

Других причин нет.

Да, это картельный сговор. Да, это санкции-херанкции. Да, мозилла, гугл и M$ изначально не хотели добавлять российские CA в доверенные - а добавили бы - так с началом Донбасской спецоперации непременно бы выкинули.

В РФ есть CA. Просто, чтобы их сертификаты стали валидными - их корневые нужно добавлять в каждое устройство.

Худший ответ:
https://digital.gov.ru/ru/activity/govservices/cer... существует список аккредитованных удостоверяющих центров в минцифре
Вопрос: Как сократить код с подпрограмой?

Лучший ответ:
Эти три функции идентичны, с точностью до переименования локальных переменных. Вы три раза написали одно и тоже. Можно 2 функции просто удалить и использовать отсавшуюся три раза.

Ну какая разница, как у вас там переменная называется sA или sB - результат будет один и тот же.

Да, может вы путаетесь, но аргумент в функции можно тоже переменовать. Хоть там и написано int masivA(int* a), этот a - это аргумент. Он никак не привязан к массиву a в main(). Туда можно передать и a и b и любой другой массив.

Худший ответ:
Исходник стартовал с включения заголовка
#include <iostream>
Тоесть поднят флаг С++. А дальше идет типичный С-код. Зачем так? 
По идее надо затаскивать vector и лямбды для суммирования.
Это было бы идеологически правильно.
Вопрос: Как изучать информатику самостоятельно, чтобы добиться профильного уровня?

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

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

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

3. этот вопрос можно погуглить, вот один из известных ресурсов - https://teachyourselfcs.com/ 

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

исходя из моего опыта, наиболее важное для программиста в повседневной работе это
- базы данных (SQL, noSQL...)
- приницпы ЯП (ООП, ФП, типизация...)
- параллельное и распределённое программирование
- как работают ОС, CPU, трансляторы, DBMS...

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

Лучший ответ:
Такое возможно только при использовании систем виртуализации типа virtualbox/kvm/qemu/vmware (у openvz/lxc/.. кстати миграция поддерживается но требований к железу будет больше), ценой потери примерно 10%+- производительности CPU (в некоторых случаях работа с диском на виртуальной машине будет заметно быстрее), т.е. когда за симулированную прослойку с оборудованием будет отвечать виртуальная машина. При использовании аппаратной виртуализации, смена архитектуры процессора может помешать, с другой стороны, при использовании полной эмуляции процессора, потери производительности будут уже 10-кратными.

Читай документацию к системам виртуализации по live migration.

В теории, если обе машины имеют идентичный конфиг, то при большой доле везения должно все сработать, речь идет о материнской плате, процессоре и периферии типа видеокарты. Любая извлекаемая периферия типа мышек, sata дисков и прочего, в теории, не помешает (возможно размещение своп-файла и hibernate на диске, который поменялся, будет фатальным для ос).

Худший ответ:
с виртуалками скорее всего отработает

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

Лучший ответ:
digitalWrite(tm_dio, data & 1 ? HIGH : LOW) означает что мы берём пин tm_dio, берём младший бит переменной data (формально мы проводим операцию and между битовым представлением data и числом 1, которая оставит исходное значение только в младшем бите, ведь x&1=x, и обнулит остальные биты, поскольку x&0=0) и если в младшем бите 1, то в функцию digitalWrite отправится HIGH, а если 0 - LOW.
А потом мы в data сделаем сдвиг данных вправо на 1 бит
Таким образом за 8 итераций из младшего бита переменной data считается вся переменная и каждый ее бит будет отправлен в виде LOW или HIGH в функцию digitalWrite.

Худший ответ:
Это тернарный оператор. По простому - если истинно выражение до "?", то выполнится то, что  до ":", иначе - после.if(data)
digitalWrite(tm_dio, HIGH);
else
digitalWrite(tm_dio, LOW);
Вопрос: Какие курсы по full stack на javascript посоветуете на Украине?

Лучший ответ:
Не надо лезть в фуллстек, пока ты не дошел ХОТЯ БЫ до уровня джуниора ХОТЯ бы где-то.
Любые курсы будет погрызть по кусочкам всего, и не научиться ничему до уровня самостоятельности.
Изучи что-то одно. Потом подумай надо ли тебе еще и другое, или углубиться в то, что изучил.

Фуллстек разработчик это не тот, кто учит и фронт и бэк и базы данных. Это в первую очередь человек, который может в одиночку выполнить целый заказ. То есть это уже не джуниор по определению.

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

Худший ответ:
Интересует свежее мнение об курсах
Возможно есть другие качественные курсы?
Давай я перефразирую.
Интересует свежее мнение - на каких помойках стоит затариваться свежими продуктами
Возможно есть другие помойки с качественными продуктами?
Ответ такой - не стоит рассчитывать на свежую еду на помойках, и на знания на курсах.
Вопрос: Имеет ли смысл переносить google chrome с ssd на другой диск?

Лучший ответ:
1) И пусть нагружает! Железки покупают для того, чтобы они работали. Если Вы и замените когда-то Ваш ssd, то не из-за износа - станет мал для Ваших задач, захотите новую ещё более быструю модель, продадите вместе с компом и т.п.
2) Любой кеш - это система для ускорения работы. Никакого смысла переносить его на медленное устройство нет.

Худший ответ:
Посмотрите в диспетчере задач загруженность диска и решайте, имеет ли перенос смысл, так как возможно, что сильно он диск не загружает
Вопрос: Как превратить строку в массив в C#?

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

Худший ответ:
регулярками
String re = ("\"(.+?)\"");
  MatchCollection match = Regex.Matches(text, @re);
  string[] IDs = new string[match.Count];
  for (int i = 0; i < match.Length; i++) {
    IDs[i] = match[i].Groups[1].Value; 
  }
Вопрос: Как проложить путь в devops?

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

Девопс инженер - обычно опытный админ, поэтому конечно, было бы лучше сперва поадминить. Но опять таки, зависит от проекта. Где-то может быть куча "джуниорской" работы, которую нужно разгребать. В этих случая я бы посоветовал искать крупные компании, где девопс это целый отдел, а не 1-2 человека, тогда больше вероятность увидеть там джуниор-девопс вакансии.

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

Худший ответ:
Если хочется и админить и кодировать - то не надо в девопсы. Девопс - это скорее "админ-тестер", человек, который обеспечивает работоспособность сред развертывания и тестирования. Да, если это прикалывает - можно этим заняться. Если прикалывает чистое админство - надо идти в админы, тем более, что админ - это обычно выросший эникей.
Вопрос: Можно ли сделать sysprep на Windows server 2016?

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

Худший ответ:
Если в вашем домене это единственный контроллер, я бы сделал так:
Делаете systemstate backup на виртуальном сервере средствами wbadmin (компонент Windows Server Backup должен быть установлен) и тушите его
На физическом сервере поднимаете такую же винду вплоть до версии
Ставите AD, но не настраиваете ничего + устанавливаете компонент Windows Server Backup
Грузитесь в режиме ad repair (msconfig — в настройках загрузки ставите соответствующую галочку)
В режиме ad repair восстанавливаетесь из свежесозданного бэкапа.
Если всё живёт, виртуальный сервер можно убивать.