Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Сертификация RHCSA или LPIC?

Лучший ответ:
Больше котируется опыт. На ютубе есть отличный курс от Кирилла Симаева

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

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

Худший ответ:
Зависит от сложности задачи. Если калькулятор не требует обращения к каким-то общим данным, запоминания действий, а просто вход - формула - выход, то все можно реализовать в браузере без бекенда. 
Бэкенд будет нужен когда 
1. требуется передать информацию из браузера Васи в браузер Пети;
2 есть тяжелая задача, для вычисления которой нужна быстрая библиотека на С++, например, тогда надо отправить данные серверу, и сервер запустит расчеты уже у себя.
Вопрос: Зачем прописывать border-radius для всех браузеров?

Лучший ответ:
Странный вопрос. Если вам не нужна поддержка старых браузеров то префиксы и не нужны. 
А если нужна то caniuse.com/#feat=border-radius

Худший ответ:
Например в Chrome нужно использовать префикс -webkit- у правила border-radius если версия вашего браузера 4.0, в Firefox использовать префикс -moz- если версия вашего браузера 3.0.  w3c
Для браузеров старше этих версии указание префикса можно опустить. Иными словами использовать префиксы нужно в случаи если правило не получило статус рекомендуемого, но уже поддерживается браузером.
Чтобы меньше об этом думать, используйте таск-ранеры типо gulp или grunt, с их помощью можно указать версии браузеров которые вам нужно поддерживать и не беспокоиться за правильно прописанные префиксы.
Вопрос: Бывает ли что-то аналогичное nib для sass?

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

Худший ответ:
В bootstrap/mixins есть большое число функций и миксинов на многие случаи
Вопрос: Чем опытнее разработчик, тем меньше соблюдается принцип KISS?

Лучший ответ:
Принцип KISS не означает что надо использовать самые примитивные инструменты.
Он означает, что не надо переусложнять систему без нужды.
Если так рассуждать, так и высшее образование не нужно: "Дед отличные бани строил, хотя вовсе был неграмотный. Я и без сопромата небоскреб построю!" 
Если вы пока ещё не понимаете назначение всех этих "лееров, провайдеров и репозиториев", это не значит, что они вообще никому не нужны. 
Для того, чтобы упростить управление системой, её надо усложнить.
Этот принцип относится к любой области человеческой деятельности, от постройки ракет до управления государствами. 
Чем сложнее система, тем больше накладные расходы на ее управление. Хоумпейдж с котиками можно и нужно делать примитивными средствами. В большом проекте надо сразу закладываться на будущую расширяемость.  То есть, заранее делить ответственность между "леерами". 
И кстати. Код, в котором "всё друг на друге завязано" - это очень плохой код. Собственно, предназначение всех этих "лееров, провайдеров и репозиториев" как раз в том, чтобы компоненты были как можно более независимы друг от друга.

Худший ответ:
Я понимаю, что сеньоры это умеют, знают много паттернов, но зачем всё усложнять?
Самая нелепая отмазка, чтобы не учить паттерны :)
Вопрос: Оформление ИП и ведение документации: какие самые главные источники информации?

Лучший ответ:
https://e-kontur.ru/Регистрируем: пошаговая инструкцияРегистрация ИП - подготовка документовhttps://e-kontur.ru/bloghttps://e-kontur.ru/enquiryhttps://delo.modulbank.ru/

Худший ответ:
Бухгалтер + юрист
очевидный же вариант
или к существующему ИП-шнику
Вопрос: ReactJS performance: разумно ли передавать большой объем данных через props?

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

Худший ответ:
Я бы использовал вариант 2, но передавал бы данные через контекст. Это намного удобнее.
Вопрос: Что значит незащищенность кода на платформе win32?

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

Худший ответ:
Ответов на этот вопрос очень много) Потому что вопрос сильно обобщенный.
Например можно ответить так: в вин32 дескриптор памяти написан плохо. В вин64 уже лучше.
Но для вин64 нужен 64-битный процессор. Отсюда все и лезет.
Если есть 64-битный процессор, то он имеет "в железе" например nx-бит. И 64-битный дескриптор написан как бы под него, если сильно притягивать заушы. Суммарно получается так, что код и данные разделены. И железо следит за этим. Т.е. нельзя запустить код из данных.
А на 32-битных системах это можно было сделать запросто, через ошибку переполнения. Т.е. вставляете исполняемый код в картинку, картинку в программку, и программкой запускаете код из картинки. Ранее во времена 32-бит на этом строились защиты массово, и ровно так же распространялись эксплойты массово.
В общем смысле 32-битные системы не имеют контроля исполнения кода. 64-битные уже имеют. Но под это дело нужна еще и вменяемая организация памяти. В современных версиях например win-64 это есть. Впрочем оно же есть во всех 64-битных системах насколько я помню. Реализация прикручена уже везде.
Вопрос: На какую специальность учиться в универе, чтобы ремонтировать телефоны,пк,телевизоры?

Лучший ответ:
Учиться в университете на ремонтника - это оверкилл.
Курсы, технарь.
Ну а вообще у нас в ТРТУ была специальность "Бытовая радиоэлектронная аппаратура", мы их ремонтниками называли

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

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

Худший ответ:
Можно проанализировать часто возникающие вопросы и составить FAQ для пользователей. И опубликовать его на корпоративном портале.
Вопрос: Получится ли настройка Voip-телефонов?

Лучший ответ:
По опыту общения с Cisco:
Порт на коммутаторе включаете в  тегированный режим, ограничиваете передаваемый трафик только VLANом телефона.
Для нетегированного трафика задаете навешивание тега VLANа персоналки.
На телефоне настраиваете нужный тег. Готово.
Можно поступить полностью наоборот - настроить VLAN на персоналке (вроде как последняя венда уже в состоянии сама это делать, без плясок с бубном), а трафик телефона пусть идет до коммутатора без тегов.

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

Лучший ответ:
Если весь сайт еще НЕ под Гитом:
добавьте папку в гит, сделайте коммит  и запушьте в репозиторийЕсли под Гитом
https://habrahabr.ru/post/326132/

Худший ответ:
Добавьте в .gitignore всё кроме этой папки.
Вопрос: В конце проверки hdd падает скорость. Кто сталкивался?

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

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

Лучший ответ:
$datetime1 = new DateTime();
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a дней');
Подробнее php.net/manual/ru/datetime.diff.php

Худший ответ:
$date1 = 'now';
$date2 = '2019-03-30 00:00:00'; //в вашем случае $post->period

$diff_s = ( strtotime($date2) - strtotime($date1) ); //разница в секундах
$diff_d = $diff_s / 86400; //разница в днях
Вопрос: Video Background с видеo в 1,5 минуты и весом в 250мб. Как реализовать правильно и без глюков?

Лучший ответ:
4. Убить дизайнера или послать куда подальше заказчика. Очевидно, что совершенно не всё, что хочет заказчик или дизайнер, возможно реализовать в имеющейся реальности условий.
А если серьезно - замените видео слайд-шоу с переходами (cross-fade, например). Видео на фоне (да еще длиной в полторы минуты) - это все равно что анимационные обои в ОС - когда пользователь что-то делает, у него нет ни желания, ни возможности смотреть подобную хрень.

Худший ответ:
Разрешение для заднего фона в таком большом формате нерационально, крайне необходимо его значительно уменьшить, фоновое изображение в качестве видео это дизайн а не рекламный ролик
Вопрос: Чем пользуются тестировщики — mysql command line или Workbench?

Лучший ответ:
У них разница в пользовательском интерфейсе и некоторых других возможностях, но по удобству workbench куда более приятен.
А, вообще, знать нужно не интерфейс, а то над чем он оперирует, то есть SQL.

Худший ответ:
А что, ментор не может посоветовать? Странная ситуация...
------------
По делу. Я использовал Toad. Он мне нравился и с функциональной и с эстетической стороны.
Я не рекомендую тебе учить определенную программу. Она всего лишь дает тебе  графический интерфейс (необходимость в котором может и отпасть), а также визуализирует некоторые вещи. 
Гораздо эффективнее будет разобраться с принципами работы реляционных баз данных. Качай понимание технологии,  с этим тебе помогут адекватные источники. Например вот этот: SQL Database Fundamentals.  Я когда-то проходил этот курс и остался очень доволен - работа баз данных и особенности их организации объясняются на высшем уровне.
Вопрос: Как устранить ошибку Uncaught TypeError: _this.props.change is not a function в проекте React-Redux?

Лучший ответ:
Проблема в том, что на вход в функцию ReactDOM.render вы даёте сам компонент Container, в который не передаются никакие параметры, в частности change. Параметр change появляется только после выполнения connect для этого компонента, следовательно и в ReactDOM.render нужно передавать то, что возвращает вышеупомянутый connect.

Худший ответ:
Проблема в том, что на вход в функцию ReactDOM.render вы даёте сам компонент Container, в который не передаются никакие параметры, в частности change. Параметр change появляется только после выполнения connect для этого компонента, следовательно и в ReactDOM.render нужно передавать то, что возвращает вышеупомянутый connect.
Вопрос: Как установить расширения при установке браузера Chrome?

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

Худший ответ:
Домен + GPO + шаблоны ADMX + Хром Энтерпрайз.
В GPO есть пункт куда вы прописываете нужные id расширений и они автоматом будут ставиться.
Вопрос: Как добавить иконку в кнопку?

Лучший ответ:
Делаешь кнопку через тег "a" и "font awesome"<a href="">Ok let]s go <i class="fa fa-gitlab" aria-hidden="true"></i>
 </a>
стилишь ссылку

Худший ответ:
Псевдоэлементом.
https://webref.ru/css/before
https://webref.ru/css/after
Вопрос: Как перевести jquery код на чистый javascript?

Лучший ответ:
function onChange() {
  document.querySelector('селектор элемента для вывода результата проверки').innerText = [
    // здесь массив селекторов вида
    // input[имя_атрибута1="значение1"][имя_атрибута2="значение2"]:checked
  ].every(n => document.querySelector(n))
    ? 'какой-то текст'
    : 'какой-то другой текст';
}

onChange();
document.addEventListener('change', ({ target: t }) => {
  if (t.tagName === 'INPUT' && t.type === 'radio') {
    onChange();
  }
});
https://jsfiddle.net/j1s2uatm/

Худший ответ:
Ну если прям просто, то так:
$('') - document.querySelectorAll('')

.val() - .value

.html('') - innerHTML = ''

.on('change', callback) - .onchange = callback

А вообще можете открыть исходный код JQuery  и скопировать методы
Вопрос: Разъясните отличие между javascript developer и frontend developer?

Лучший ответ:
javascript !== frontend
Frontend занимается всей визуальной частью. Он может использовать JS, может typeScript или CoffeeScript, а может, увы, вообще не знать JS и юзать jQuery какую-нибудь. Кроме того, чаще всего именно он занимается вёрсткой шаблонов и стилями.
JS dev может брать на себя обязанности Frontenda, но вообще эта должность шире. Сюда входит backend - NodeJS. То есть в идеале он вообще не знает о вёрстке, его задача - быстро и в адекватной форме принять данные --> что-то с ними сделать --> отдать данные. Но если уж он ещё и front , то обычно это React/Angular в проекте.

Худший ответ:
Фронт работает с разметкой и готовыми данными, с апи.
Бэк работает с базами и данными, продумывает основную логистику. В большинстве случаев их работа очень сильно пересекается и оба разработчика должны понимать что делает каждый из них. По написанию кода (синтаксис) разницы никакой, но у бека работа более сложная и необходим определенный опыт, у ноды как выяснилось масса своих закорючек ;(
Вопрос: Как настроить пользователя в Active directory?

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

Худший ответ:
Не путайте авторизацию в домене и roaming profile (https://msdn.microsoft.com/en-us/library/windows/d... когда ваш профайл хранится на сервере, а не на локальном компе.
Вопрос: Как передать id и name button-а из html в js объект?

Лучший ответ:
1) У вас неправильное значение у id, оно не должно начинаться с цифры или других символов. Лучше допишите but1, but2 и.т.д.
2) Обращаться к элементам DOM можно по селекторам, определите общий селектор к этим элементам или к родителю, и вызовете document.querySelectorAll с данным селектором, этот метод вернет список элементов, в данном случае кнопки.
Из вопроса не очень понятно, в чем именно у вас трудности.

Худший ответ:
Так?const buttons = [...document.querySelectorAll('button')].reduce((a, c, i) =>
(a['button' + i] = {name: c.name, id: c.id}, a), {});
Вопрос: Как разрядить наелектризованный компьютер?

Лучший ответ:
Вполне возможно, что это не статика. Дело в том, что во всех комповых БП оба провода электросети соединены с корпусом через одинаковые конденсаторы небольшой ёмкости (эта цепь является одним из элементов подавления радиопомех от компьютера). Ток частотой 50 Гц через них проходит, хоть и слабо. Образуется ёмкостный делитель напряжения вдвое, и незаземлённый корпус оказывается под напряжением в половину сетевого, т.е. ~110 вольт.
Ток хотя и небольшой (закоренелый электрик, наподобие меня, его не замечает), но для чувствительного человека ощутимый. Может, в нём ваша проблема?
Чтобы её устранить, надо выпаять из БП эти два конденсатора. Правда, тогда комп будет излучать вокруг себя больше радиопомех.

Худший ответ:
Новые корпуса только что из коробки тоже любят статикой бить. Обычно отверткой всех стенок касаюсь, спасает.
Вопрос: Как сократить бэкап (90% — файлы дистрибутива)?

Лучший ответ:
Дедупликация в системе хранения архивов, или система архивации с дедупликацией. У меня например пара десятков VHD  тестовых windows виртуалок лежит на небольшом SSD. И работают шустро ибо  SSD и умещаются на диск который значительно меньше суммы размеров этих VHD.Но интересует именно решение на уровне архивовПример архиватора - zpaq Кроме собственно банального сжатия - дедупликация, поддержка удаленных архивов.Если этот хеш встречается много раз - просто удаляем этот файл из архива (помечая, что в том месте был файл с таким-то хешем).То что вы описали называется файловая дедупликация. Вещь известная давно, но малоэффективная и никому не нужная.
Сейчас используется блочная дедупликация - дедуплицируются чанки небольшого размера, не зависимо от принадлежности к файлу.

Худший ответ:
Дифференциальный бэкап.
Вопрос: Зачем нужно анонимную функцию оборачивать в скобки?

Лучший ответ:
Потому что ты написал неправильно
Анонимная функция вызывает сама себя 
Так правильно:;(function (argument) {
  // some code
})()

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

Лучший ответ:
Это называется image comparison slider. Работает судя по названию только с картинками. Вот пример.

Худший ответ:
JQUERY BEFORE/AFTER PLUGIN по описанию на это похоже
Вопрос: Как позиционировать блочный элемент по центру вертикально внутри другого?

Лучший ответ:
если у родительского элемента display table-cell, то у него vertical-align:middle нормально работает

Худший ответ:
Flex, например.
Есть ещё фокус с position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
width: {value};
height: {height};
Работает только если задать фиксированный размер блоку.
Вопрос: На сколько необходимы внешние ключи в базах данных?

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

Худший ответ:
1. Только если пихать бизнес логику в СУБД
2. Неконсистентностью данных, если её не обеспечивает уровень бизнес-логики
3. Например приложение поддерживает несколько СУБД, не все из которых умеют внешние ключи.
Вопрос: На какой CMS лучше всего развернуть сеть сайтов?

Лучший ответ:
Wagtail (CMS для Django). На ней точно можно сделать такое. Например, можно создать свой тип страницы-лендинга, сделать общий шаблон, а в модели страницы добавить изменяемые поля для картинки. После этого, любой пользователь сможет создавать и редактировать свою версию лендинга в админке Wagtail.
Отдельные домены Django и Wagtail поддерживают из коробки, правда я никогда не пользовался этой возможностью.

Худший ответ:
Нормальный лендинг со всеми хотелками можно сделать только индивидуально. 
Тиражные решения будут или неудобны или ограничены функционально. И скорее всего на выходе будет каша.
Нельзя качественный сайт накликать мышкой. Привет WP с конструкторами.
Вопрос: Как подобрать Power Bank к ноутбуку?

Лучший ответ:
Все примерно так, как описал SyavaSyava, только даже еще хуже. 
Мощность(энергия) этого повербанка будет меньше, емкость 20000 это емкость самих элементов, т.е умножать надо на напряжение 3,6 вольта, 72 вата в час. Все он их не выдаст, потому как там стоит повышающий преобразователь до 5 вольт, кпд которого не 100%. Потом потребуется повышающий преобразователь до 19 вольт, на ток 3,5 ампера, если сделать его максимально качественным, то это будет довольно громоздкая штука и все равно процентов 5-10 энергии потеряем на нем. Плюс потери в цепи зарядки самого ноута(5-10%). К тому же повербанк не сможет отдать всю свою энергию, когда напряжение на банках опустится ниже порогового, то он отключится. 
Поэтому с учетом потерь, мы сможем забрать максимум 50 ватт энергии. А самое главное это то, что помимо зарядки аккумулятора, повербанк будет питать и ноут, если зарядку делать во время работы.  А ток потребления ноута будет примерно 1.5 ампера, в зависимости он нагружености процессора, яркости экрана и тд.  Получаем что работающий ноут съест примерно 1.5*19 =28.5 ват энергии в час. Цепь зарядки в ноуте настроена оптимально для зарядки литий ионных акб, заряжает их током в половины емкости, средние время зарядки 2 часа. 28.5*2=57  ватт энергии съест работающий ноут за 2 часа (за время зарядки), плюс нам надо 37.5 ватт энергии на зарядку аккумулятора. 
Получаем 94.5 ватт нам надо чтоб зарядить акб на работающем ноуте, а имеем всего 50. Вообщем не хватит этого повербанка даже на одну полную зарядку во время работы, его хватит примерно на час работы, плюс за это время он зарядит примерно наполовину аккумулятор в ноуте.
Дешевле и проще для этой цели купить второй аккумулятор для ноута.
UPD: Забыл, написать.  Именно этот Xiaomi PowerBank 20000 не получится приспособить без переделок, ток максимальный плата внутри выдает 2 ампера, если к нему подключить преобразователь повышающий то, заряжать сможет только в выключенном состоянии. А если включим ноут, то будет перегрузка по току, сработает защита.  Придется его разбирать и переделывать, а места внутри врятле там хватит, чтоб поставить более мощный преобразователь.

Худший ответ:
Другой бы спорил - я не буду! Для твоего ноута повербанк не найти, на собственном опыте скажу, есть очень мало ноутов на которые подойдут повербанки. Я для своего макбука 12 купил на авито новый повербанк от сяоми, его хватает на 1 полную зарядку, но если при этом сидеть в нем, то он разряжается.
Вопрос: Разные цветовые шаблоны сайта?

Лучший ответ:
Видео урок, который может тебе помочь - https://www.youtube.com/watch?v=H4cG4tbc-xQ&t=1390s
Статья, которая может тебе помочь - https://webdesign-master.ru/blog/tools/2016-06-04-...
Документация на русском - https://sass-scss.ru

Худший ответ:
Помогла статься prgssr.ru/development/temizaciya-s-sass-beskonechn...
Выбрал 1й подход.
Вопрос: Какие существуют архивы интернета?

Лучший ответ:
Архивы интернета:
web.archive.org
archive.is
webcitation.org
peeep.us
Узкоспециализированные:
docplayer.ru
С ограничениями использования:
perma.cc
freezepage.com
Сами добавляют:
web-arhive.ru
sitedrop.info (Архив брошенных сайтов)
Разное:
megalodon.jp (Веб-гётаку)
archiveteam.org

Худший ответ:
Пожалуй оставлю здесь ссылку на каталог нетсталкеров
Возможно подписавшиеся на этот вопрос найдут для себя что-нибудь интересное )
Вопрос: REST API Best Practice?

Лучший ответ:
Best Practice как раз в том, чтобы проектировать слабосвязанные системы, а не навешивать на один эндпоинт кучу функций.

Худший ответ:
У нас используется следующий подход:
Есть основной ресурс, например /cats/1 в вашем случае. Есть дополнительные атрибуты: /cats/1/friends , /cats/1/wc. Если нужно получить множество атрибутов за раз, то используется GET параметр with: /cats/1?with=friends,wc. При этом если такой атрибут не может понадобиться отдельно от основного ресурса, то для него вообще не создается отдельный url, и он просто получается с помощью параметра with.
Это чем то похоже на GraphQL, но проще в реализации. Хотя если у вас множество типов с данных со сложными связями, возможно именно GraphQL подойдет вам лучше.
Вопрос: Как получить заказы по web scraping и какие навыки улучшить?

Лучший ответ:
Я бы не доверился человеку со ставкой 8$/час, попробуйте хотя бы 15

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

Лучший ответ:
inline int getRandomNumber(int start, int end) {
	return start + rand() % (end - start);
}
допустим для getRandomNumber(10, 20); 
rand() генерит числом до RAND_MAX, 
% (end - start) "обрезает"(остаток от деления) до 10, т.е. 555 % 10 = 5
start + сдвигает на 10
Но лучше не использовать rand, а использовать современные решения https://stackoverflow.com/a/7560564/7458932
Если вы не в курсе, то у rand очень плохой псевдорандом и для серьёзных целей есть целый отдельный хедер с кучей других генераторов
и для double https://stackoverflow.com/a/9324796/7458932

Худший ответ:
double random(int a, int b)										
{
  return (double) a + (double)rand() / RAND_MAX * (b-a) ; 
}
Да в принципе, как у вас. Только в параметры функции добавились числа a и b. Длина диапазона вычисляется как разность конца и начала.
Пример использования:cout << random(50, 100); // число в диапазоне [50, 100]
P.S. при необходимости a,b можно сделать double
Вопрос: Какая литература по крекингу?

Лучший ответ:
Загуглите ресурс "exelab", вам туда.

Худший ответ:
Гуглите на тему penetration testing