Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: В каких случаях при верстке лучше использовать id а в каких class?

Лучший ответ:
Да, на данный момент везде используются классы за исключением 2 случаев:
1. Если с элементом взаимодействует JS (так легче получать доступ).
2. Если это единственный такой элемент на странице (#app).

Худший ответ:
id - используется для однозначной идентификации элемента, на странице может быть только 1 элемент с определенным id. Так же у элемента может быть больше 1 id.
class - используется для задания стиля многим элементам, и на странице может быть много элементов с одинаковым class. Так же у элемента может быть больше 1 класса.
В большинстве случаев можно использовать то и/или то, и это будет правильно. Но есть определенные случаи где использовать можно только id или наоборот.дурной тон - такого понятия нет в html. Есть объективные причины для использования id или class.
Если у Вас есть блок top-menu, его надо стилизовать и он один на странице и эти стили не применимы к другим блокам - оправдано использовать id, но и использование class не является ошибкой. Однако если таких блоков 2 - id использовать нельзя. Классы более удобны для стилизации, так как их можно иметь несколько для 1 элемента. Поэтому использовать id для стилизации кнопки - не лучший вариант, хоть и не ошибка.
вот пара цитат из авторитетных источников:The id attribute specifies a unique id for an HTML element (the value must be unique within the HTML document).
The id attribute is most used to point to a style in a style sheet, and by JavaScript (via the HTML DOM) to manipulate the element with the specific id.
www.w3schools.com/TAGS/att_global_id.aspThe id global attribute defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).
https://developer.mozilla.org/en-US/docs/Web/HTML/...
А вот из спецификации html5.2:When specified on HTML elements, the id attribute value must be unique amongst all the IDs in the element’s tree and must contain at least one character. The value must not contain any space characters.
w3c.github.io/html/dom.html#element-attrdef-global-id
Вопрос: Разработка сервера под игру, с чего начать?

Лучший ответ:
 Есть к примеру игра GTA SA я так понимаю сторонние разработчики сделали клиент
Не совсем так. Любая многопользовательская игра состоит из двух частей - клиентской и серверной, и они не работают друг без друга (бывают бессерверные игры, но и в таких случаях обычно один из клиентов становится сервером, так работает и в Doom/Quake/UT). В GTA и клиент, и сервер сделали Rockstar Games, а не отдельные разработчики. И даже - больше, Rockstar Games постарались сделать так, чтобы спрятать протокол взаимодействия - чтобы хакеры и крякеры не взламывали игру, получая игровые преимущества неигровыми способами. "Сделать сервер GTA", с которым заработает клиент GTA, не получится, по крайней мере, цена такой разработки будет сопоставима с ценой работы над GTA (которая стоила десятки миллионов долларов).
То, что может сторонний разработчик, это сделать моды для готового сервера, используя те инструменты, которые разработчик предложил, либо пытаясь "грабить" протокол взаимодействия. Моды бывают серверными и клиентскими, и возможны только в том случае, если у вас есть доступ к компьютеру, на котором запущен сервер и клиент (клиент у вас всегда есть, так и делают большинство модов).К примеру сделать сервер майнкрафт не состовляет проблем.
Майнкрафт заметно проще, чем GTA. Хотя бы потому, что майнкрафт сделал один человек, а GTA сделали десятки программистов. И вот для майнкрафта можно сделать свой сервер,а не мод (хотя и моды к нему тоже есть). Как пример, отличная статья.Скачал, настроил, запустил
"Скачал, настроил, запустил" - это не "разработка сервера", это взял то, что уже разработал кто-то.
P.S. Всё написанное - имхо. Я не любитель GTA и не знаю рынка неофициальных серверов GTA, только знаю, что такие есть (вроде как). Но лично я считаю, что вряд ли кто-то сможет написать сервер, если не будет либо его исходников (украсть), либо разработчики сделают инструменты для разработки модов.

Худший ответ:
Непосредственно реализацию MTA можете посмотреть на гитхабе. Там люди занимались реверсом, а потом прикрутили к этому скрипты на lua и получилось то, что получилось. Только зачем вам реверсить готовые игры, когда на той же юнити вы можете куда больше всякого сделать? samp и mta делались тогда, когда игровые движки имели колоссальный порог вхождения, сейчас же все их игровые моды реализуются чуть ли не проще "с нуля". Тоже самое и в minecraft, люди взяли, декомпилировали сервер и написали прослойку между пользовательскими плагинами и сервером, назвали bukkit.
Вопрос: Как проверить работу spamasassin?

Лучший ответ:
Отправьте себе письмо с текстом XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Худший ответ:
Спасибо! Проверил, увидел, что не работает, починил.
Вопрос: Как сделать ширину блока пропорционально высоте без JS?

Лучший ответ:
Задавать ширину в vh, например так.почитать про vh и vw

Худший ответ:
Задавать ширину в vh, например так.почитать про vh и vw
Вопрос: Как правильно верстать 3 колонки одинаковый высоты для адаптивный верстки?

Лучший ответ:
Используйте flexbox. В Bootstrap 4 уже включен.
P.S. По ссылке перевод. Если нет проблем с английским, лучше читать оригинал https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Худший ответ:
Используйте flexbox. В Bootstrap 4 уже включен.
P.S. По ссылке перевод. Если нет проблем с английским, лучше читать оригинал https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Вопрос: Как запретить прямые запросы к static файлам nginx?

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

Худший ответ:
Никак.
Всё что клиенту доступно для загрузки оно ему доступно хоть в теле страницы хоть по порямой ссылке.
Максимум что можно так это рефер проверять но смысла от этого примерно ноль.
Вопрос: Где должна быть логика работы с внешним API?

Лучший ответ:
Ни в первом ни во втором. Это отдельный сервис загрузки данных о пользователях. В MVC его впиховать не стоит. Вызывать его из контроллера - это ок.

Худший ответ:
где правильнее по MVC реализовать функции работы с АПИ - в модели или контроллере?
Работа с API - это работа с хранилищем. Точно так же как и в случае с базами данных. Потому это деталь реализации модели.
Контроллеры должны быть тонкими и содержать только то что оносится к HTTP. Модель (и все что под ней) не знают ничего о HTTP.
Вопрос: Какую схему задействовать для автообновления веб приложения?

Лучший ответ:
Сокеты. Long Polling для синхронной джанги так себе вообще. А channels отлично встраивается рядом с синхронными вьюхами.

Худший ответ:
Если нужно взаимодействие только в одну сторону (сервер->клиент), то можно возложить эту задачу на отдельный сервис на nodejs.
Вопрос: Какие библиотеки позволяют сделать подобную структуру?

Лучший ответ:
Понятие: ментальные карты, mind map, intellect map
Сервисы: xmind, coggle.it
Исходники:
codepen.io/Taxnot/pen/RNdzmY
codepen.io/sblamey/pen/nBdeo

Худший ответ:
Лол) Библиотеки xD
Это называется "Интеллект карты" 
coggle.it например.
Вопрос: Можно ли написать антивирус на python?

Лучший ответ:
1. Теоретически, антивирус написать можно. Но для более-менее вменяемого антивируса нужны производительность и доступ к более низкоуровневым вещам, чем Python позволяет из коробки.
Многие библиотеки Python -- это обёртки над библиотеками на C/C++. А в коде на C/C++ вообще могут использоваться ассемблерные вставки. В этом смысле, в Python можно прокинуть вызов любого низкоуровневого кода.
Всё, что необходимо для написания антивируса давно должно иметь свободную реализацию на C/C++ и лежать в открытом доступе. Многое уже может иметь обёртки или биндинги для Python, а что не имеет -- так со знанием C/C++ их можно сделать.
Конечная программа на Python может полностью полагаться на скомпилированный Си-шный код, так что производительность будет не намного ниже, а возможности те же.
Основные недостатки разработки настольных программ на Python:трудно скрыть исходники от любопытных;не очень удобно собирать и распространять под разные ОС;для низкоуровневых вещей и/или высокой производительности может потребоваться знание C/C++.2. Для специалиста по информационной безопасности, Python -- несущественный язык программирования.
Специалист по информационной безопасности должен знать низкоуровневые языки -- ассемблер и Си.
Помимо этого, полезно знать:архитектуру ЭВМ (особенно, как работает процессор и оперативная память -- тема пересекается со знанием ассемблера),архитектуру операционных систем (близко к архитектуре ЭВМ, но тема больше пересекается с языками программирования C/C++),технологии компьютерных сетей,алгоритмизацию,криптографию.

Худший ответ:
можно
но не сильно оправдано: нужно открывать  / сканить кучу файлов, тот же Го это сделает куда быстрее
Вопрос: В чем преимущество node.js над стандартными веб-технологиями?

Лучший ответ:
Ответ - ничем не лучше.
Почему не все серверы пишутся на Node js?

Худший ответ:
Потому, что в node.js есть cluster для запуска на нескольких ядрах (для распределения нагрузки на несколько процессов).
Вопрос: Где брать заказы на верстку PSD?

Лучший ответ:
Подскажите биржи фриланса, где взять заказы на верстку сайтов? Только без всяких pro аккаунтов, если можно. 
Странный ты.
Вот прямо сейчас на fl.ru болтается заказ на верстку за 20 000 руб.
Там работы примерно на неделю.
Стоимость PRO - от 1550 в месяц.
Выхлоп за неделю 18500 рублей. 
Вторая, третья, четвертая неделя - уже не нужно покупать PRO. Следовательно выхлоп еще больше.
И тебя давит жаба с 80 000 в месяц отдавать 1500 в месяц за аккаунт?
ОК.
Ты считаешь что столько не заработаешь. 80 000 в месяц тебе не грозит.
Но стоимость PRO - 1550 рублей!
Да даже левой пяткой 10 000 в месяц уже окупают PRO.
Если ты не планируешь на этом нормально зарабатывать - то зачем тебе вообще этим заморачиваться.
Тут даже не деньги - ты банально опыта не успеешь даже набрать, если будешь работать на уровне "в час по чайной ложке".
В это нужно погружаться.

Худший ответ:
На upwork
Вопрос: Стоит ли официально оформлять доли в стартапе, когда еще нет продукта?

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

Худший ответ:
Если адекватность человека не понятнато нужно работать за деньги первые несколько проектов
До того момента пока вы не поймете, как человек себя ведет в хороших и плохих ситуациях - входить в долю не стоит
Вхождение в долю - всегда приводит к проблемам при управлении и к проблемам. 
А после краха, еще и к проблемам при дележе остатков
Вопрос: Как правильно оценить сколько ты стоишь на рынке труда(fron end || .NET)?

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

Худший ответ:
зайди на хх ру и посмотри стоимость подобных спецов
Вопрос: Почему индексация массива возвращает -1?

Лучший ответ:
выведите в консоль значение i 
и научитесь элементарным приемам отладки кода, прежде чем спрашивать такие элементарные вещи

Худший ответ:
Функция возвращает -1 когда не находит запрашиваемый результат в массиве, выведите в консоль i и узнаете в чем проблема :)
UPD querySelector возвращает DOM ноду,скорее всего в этом беда
Вопрос: PHP: можно ли обработать контент, полученный с помощью функции require?

Лучший ответ:
Ну тут либо как Camaro67 написал, либо just_hank_moody уже сказал про буфферизацию.ob_start();
require(<файл>);
$content = ob_get_contents();
ob_clean();

echo $content; //в $content лежит содержимое <файл>
А любой eval() - потенциально уязвим и использовать его очень не рекомендуется. Хотя, конечно. чисто академически вариант рабочий.

Худший ответ:
Нет, нельзя Функция require только подключает файл и не возвращает в ответ строку.
В данном случае лучше прочитать про буфферизацию в php.
Включается буферизация вывода в самом начале скрипта, в конце исполнения скрипта  считывать в строку буфер и потом обрабатывать ее своей функцией.
Или file_get_contents плюс функция eval();
Вопрос: Как узнать diff между файлами в git и измененными копиями этих файлов?

Лучший ответ:
"Скопирован" понятие растяжимое. Если вы просто физически скопировали директорию файла, то создайте в нем новый бранч "oldsite" и подключите в виде ориджина к єтому бранчу папку старого сайта. После єтго вы можете сравнить два бранча.
Если вы склонировали старый сайт командой git clone то просто сравните два бранча ну или банч и его ориджин если вы по глупости не додумались сделать новый бранч

Худший ответ:
Не знаю, поможет ли тут git, но можно в total commander сделать синхронизацию 2-х каталогов (старый и измененный) - он покажет различающиеся файлы, а так же можно посмотреть diff каждого файла.
Вопрос: CashBack как реализовать сервис?

Лучший ответ:
Занимался системой коллективной лояльности полтора года.
Тут много неясного не с точки зрения программирования, а в первую очередь с юридической.
Во первых Вам нужно определиться с правовым статусом этих бонусов - это деньги или не деньги.
Если деньги - нужно реально открывать счет на клиента в банке или НКО, платить за клиента 13% ндфл, ну и все прелести 161-ФЗ.
Если не деньги - возникает вопрос обоснования финансовых переводов между юрлицами ну и накрывается идея выплат на карту. 
Решения однозначного нет, каждая система лояльности идет по своему пути но в целом разработка схемы и юридического обоснования это месяцы.
С технической стороны - могу навскидку озвучить множество вариантов реализации, но отталкиваться нужно от потребностей партнеров:
Можно опубликовать свой шлюз наружу и надеяться что с ним будут интегрироваться.
Можно интегрироваться на уровне учетного ПО / сайта / crm  партнеров подготовив модули под основные системы.
Можно делать пост-аналитику банковской выписки партнера.
Можно запустить отдельные интерфейсы на своей стороне с минимальной интеграцией.
В одних сферах бизнеса партнеров лучше работает одно, в других - другое.
PS 
Судя по вопросу Вы только в начале этого пути.
Крайне советую до начала проекта:
а) Проработать юридическую часть.
b) Найти первых якорных партнеров. Заодно поймете как им удобней с Вами интегрироваться.
В целом советую по крайней мере на старте идти по пути максимально простой для партнера интеграции.
Простой с точки зрения бизнеса (!), а не разработчика.

Худший ответ:
Совершает покупку через партнерскую ссылку как отследить тут?
Покупка у Вас или на другом сайте?
если у Вас, то передавать в url парамерт с id партнера
если где-то там, то либо тот сайт должен кидать запрос к Вашему api либо как-то грузить их сайт в iframe, но тут много подводных камней
Вопрос: Как правильно пересчитывать результат вычислений?

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

Худший ответ:
Пересчитывай всё с нуля по новым входящим данным, тогда не нужно ничего запоминать.
Вопрос: Как грамотно переназначить view для login в Laravel 5.7?

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

Худший ответ:
Читайте ответ Константин Б..
А вообще, если вам нужны темы, то делайте свою имплементацию ВьюКомпоузера поверх существующей, что бы она автоматически включала в путь нужную вам тему. Само по себе переопределения методы для единоразовой смены вьюшки - отлично, но если вам во всем приложении нужны темы - это уже дичь.
Вопрос: Синхронный ajax запрос — react?

Лучший ответ:
сначала сделать запрос <...> после чего отрисовать страницу
Нет, это делается не так. Страница отрисовывается сразу. Пока данных нет - демонстрируется индикатор загрузки; после выполнения запроса индикатор скрывается, данные показываются (см. условный рендеринг). Например.

Худший ответ:
fetch('./api/some.json').then( function(resp){drawResp(resp)})
function drawResp(resp){
   БраузерНарисуйМнеКрасиво()
}
Вопрос: Как сделать модульность в приложении Vue.js?

Лучший ответ:
Так напрашивается разбить прям на три компонента -- профиль, юзеры и сообщения.
Ну и vuex посмотрите.

Худший ответ:
Как уже сказали, можно использовать vuex, он будет хранить все данные и взаимодействовать с бэкендом. Ваши компоненты будут брать/передавать данные оттуда.
Если не хотите с ним заморачиваться, вы можете например в корневом компоненте осуществлять взаимодействие с сервером, и далее данные распихивать по компонентам - профиль, пользователи, сообщения, что-то еще. В вашем варианте однозначно нужно разбивать, даже потому что, если вы сделаете все в одном это будет очень большой файл, с которым будет тяжело работать и всякое изменение будет доставлять боль и страдание)
Вопрос: Что думаете о перспективах .NET и С#?

Лучший ответ:
А чего тут думать.
Веб платформа есть, геймдев ветка есть, десктоп тоже есть, Xamarin под мобильные платформы есть. Кроссплатформенный фреймворк (Net.Core) пилят. Чего еще надо для счастья то.

Худший ответ:
Ну до кучи ещё есть nanoFramework для микроконтроллеров.
Вопрос: Замена умирающего диска RAID1 на массиве с системой?

Лучший ответ:
1. Бэкап всего
2. Вытащить диск 
2.1 Если возможно сделать вручную программную деградацию массива на битом диске 
3. Поставить новый аналогичный
4. Запустить ребилд
5. Молиться что бы не накрылся второй диск
6. Аналогично заменить второй диск (даже если он ОК)

Худший ответ:
Краткий отчет по результатам.
Что сделал:
1. Выключил сервер;
2. Заменил сбойный диск на новый ( SAS 2.0 на SAS 3.0).
3. Запустил сервер, запустил ребилд (1 час).
4. Выключил сервер и повторил п. 2, 3, перезагрузил сервер.
Итог:
Массив в норме, но есть подозрительная особенность - ранее в утилите  MegaRaid ( у старых дисков) отображался параметр "Drive Speed = 6.0 Gbps", сейчас же "Drive Speed = UNKNOWN".
Вопрос: Почему в Telegram Desktop нет секретных чатов?

Лучший ответ:
потому что ключ хранится на устройстве. и злоумышленник имея доступ к вашему ПК легко прочитает переписку.
так же и с телефонами, если Android рутованый, то как говорит официальный ответ:Если представить, что у атакующего есть корневой доступ, в этом случае ни одно приложение не может быть безопасным. Например, чтобы показать что-то на экране, нужно отправить это в память устройства. Хакер с корневым доступом может просто читать эту память, так что манипуляции с файлами баз данных становятся необязательными.
Ни одно приложение Android не может заявить о защищённости от пользователя с корневым доступом. Системные уязвимости, которые дают корневой доступ, могут быть исправлены только производителем ОС. Поэтому все указанные вопросы следует адресовать Google.
iOS закрытая система. Android без корневого доступа - тоже.
Вообще почитайте: https://tjournal.ru/p/telegram-android-vulnerability

Худший ответ:
Мне секретный чат на десктопе был бы полезен, что он будет отдельно только на компе (например рабочий). 
Он бы не грузился в мобильный и web. Конечно есть вкладки, но это немного про другое.
Как таковая "секретность" на десктопе не нужна, а вот отдельный end-to-end чат - удобен.
Вопрос: Как сделать вывод цикла в оба блока?

Лучший ответ:
На сколько понял проблему: 
У вас получается так, что все глобальные переменные перезаписываются каждый раз, поэтому и выводит одинаковое.var wrapper, block Лучше делать в bg_count;
При наведении мышки из-за глобалтных получается что тоже берётся последняя присвоенная.function mouseOver(event){
    event.target.style.backgroundPosition = "top";
    event.target.children[0].style.display = "none";
}

Худший ответ:
На сколько понял проблему: 
У вас получается так, что все глобальные переменные перезаписываются каждый раз, поэтому и выводит одинаковое.var wrapper, block Лучше делать в bg_count;
При наведении мышки из-за глобалтных получается что тоже берётся последняя присвоенная.function mouseOver(event){
    event.target.style.backgroundPosition = "top";
    event.target.children[0].style.display = "none";
}
Вопрос: Как удобно управлять содержимым сайта?

Лучший ответ:
Если не хотите заморачиваться с CMS, установите Textolite, дает возможность редактировать статичные сайты. Но функционал ограничен, хотите все возможности -- придется платить.

Худший ответ:
Для упращения управления контентом поставьте CMS, как по мне лучший вариант для новичка - это WordPress. А на него уже можете ставить свой шаблон. При том в WP имеется множество приложений по работе с контентом и дизайном. Большой выбор шрифтов, а так же возможность с легкостью оптимизировать сайт. Новичку с ним разобраться будет легко и в сети много полезной информации по нему имеется.
Вопрос: Почему люди проявляют агрессию на программистов?

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

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

Лучший ответ:
distnode_modulessrcgulpfile.jspackage.json
src - папка со всеми исходниками верстки (html, css, js, less, coffeescript и т.д.),
dist - папка рабочего проекта скомпилированного из исходников папки src, по команде gulp,
gulpfile.js - скрипт компиляции рабочего проекта,
package.json - мета данные проекта и список необходимых npm библиотек для работы gulpfile.js,
node_modules - сторонние npm библиотеки установленные для компиляции проекта.
Пример gulpfile.js:var gulp = require('gulp');
var less = require('gulp-less');
var cleanCSS = require('gulp-clean-css');

gulp.task('default', function() {
    gulp.src('./src/css/**/*.less')
        .pipe(less())
        .pipe(cleanCSS())
        .pipe(gulp.dest('./dist/css/'))
    ;
});
Для такого проекта должны быть установлены 3 npm библиотеки gulp, gulp-less, gulp-clean-css.
Это общепринятый скелетон для любого gulp-проекта. А структура папки src это по вашему желанию. Каждый делает по своему.

Худший ответ:
У каждого проекта своя структура. Какая кажется наиболее удобной, понятной, простой для проекта - та и правильная. Для каждого конкретного проекта
Вопрос: Какую выбрать легкую, но безопасную CMS?

Лучший ответ:
Wordpress - дырявая, если не обновлять, и ставить все плагины без разбора.
Простенький сайт - лучше написать самому на каком-либо фреймворке. Можете взять что-то вроде OctoberCMS (выбрал по запросу CMS based on framework). Они обычно идут с самым минимальным функционалом.
Защитить админку можно разными путями, вплоть от создания .htaccess файла с запретом доступа по IP, и до более продвинутых методов. 
В вашем случае WP не плохой вариант.

Худший ответ:
www.kan-studio.ru  вот эта , нормальная не лучше wp и не хуже , но MaxSite cms ваще атас