Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Что нужно изучить, чтобы знать «Основы программирования»?

Лучший ответ:
Основы программирования это книга Д. Кнута "Искусство программирования".
Но тот кто осилит эту книгу хотя бы на половину ни в каких курсах не нуждается.
PS Запомни раз и навсегда: курсы это один из множества способов "честного отъема денег у населения" и не более

Худший ответ:
Здесь есть задачи, решая которые вы можете приблизительно судить о ваших навыках
Вопрос: Почему необходимо использовать англоязычный интерфейс в программах?

Лучший ответ:
Потому что не перевелись еще надмозги на Руси

Худший ответ:
Вовсе не необходимо, достаточно хоть немножко владеть языком, и вы сможете по английским мануалам работать с русским интерфейсом, даже не замечая этого.
Вопрос: Для чего нужны спецификаторы доступа в C#/Java и др. подобных языках?

Лучший ответ:
Модификаторы помогают организовать работу с кодом. Избавить от потенциальных проблем неправильного использования кода, особенно малоопытными программистами. Иногда работаю с PHP, модификаторов типа internal очень сильно не хватает, приходится извращаться, чтобы другим работать с кодом было удобно; чтобы не было возможность залезть туда, куда не нужно и нарушить логику работы; чтобы на поверхности все выглядело проще, чем есть на самом деле.
Чем сложнее проект, чем больше людей работают с кодом, тем сильнее потребность в порядке, изоляции отдельных участков проекта.
В тоже время, если неправильно использовать модификаторы и излишне ограничить доступ, то это может стать проблемой. Нужно хорошенько продумывать архитектуру, чтобы минимизировать возникновение подобных ситуаций.

Худший ответ:
class KvadrUr
{
    public double a, b, c, D, x1, x2;
    public void CalcD()
    {
        D = b*b - 4*a*c;
    }
    public void Calc()
    {
        double d  = Math.Sqrt(D);
        x1 = (-b + d)/(2*a);
        x2 = (-b - d)/(2*a);
    }
}
KvadrUr ur = new KvadrUr();
ur.a = 1;
ur.b = 2;
ur.c = -3;
ur.CalcD();
ur.Calc();
Console.WriteLine(ur.x1 + " " + ur.x2); // правильный ответ
ur.c = -4;
Console.WriteLine(ur.x1 + " " + ur.x2); // неправильный ответ - теперь дискриминант неверный!
Если сделать переменную D приватной (и вызывать CalcD внутри Calc), то это эта ошибка возникнуть не может.
То есть, ограничение доступа к членам класса помогает уменьшать вероятность ошибки.
Вопрос: Как отключить определённый js или его часть на сайте?

Лучший ответ:
× Устанавливаете плагин
× Заходите на https://www.doska.ru
× Открываете меню плагина и выбираете New user script...
× В открывшеемся диалоговом окне вводите:
× Открывается окно с редактором, туда вставляете document.body.removeEventListener('copy', add_link_to_selection, false); после «сохранить», затем закрываете окно.
× Перезапустите браузер

Худший ответ:
document.body.addEventListener( "copy", add_link_to_selection ); по идее можно удалить этот листенер, можно сделать такое расширение в хроме, чтобы киллыл этот эвент
Вопрос: Как правильно установить и удалить setInterval?

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

Худший ответ:
простой тест в jsfiddlewindow.onfocus = () => console.log('focus');
window.onblur = () => console.log('blur');
сворачиваем/разворачиваем - ничего не присходит.
Вопрос: Записывая данные на USB флешку Windows гарантирует их целостность?

Лучший ответ:
Если будет невозможно записать в какой-то сектор, Windows выдаст ошибку.  То же самое будет, если на накопителе просто не хватит места. 
Целостность (соответствие исходным) данных, которые формально удалось записать (то есть драйвер диска не выдал никаких ошибок системе), не проверяется. Существует способ форсировать проверку, например, при работе в командной строке, когда выполняется xcopy /V. Однако, если для данного диска включено кэширование, эта проверка, фактически, ничего не делает, так как сравниваются исходные файлы и их содержимое в кэше, находящемся в оперативной памяти.

Худший ответ:
Записывая данные на USB флешку Windows гарантирует их целостность?Нет.  Если во время записи возникли ошибки - операция копирования прервется. Если ошибок не возникло - все пройдет без проблем, но не факт, что вам потом удастся их прочитать.1. Windows так же как и с SSD отправляет мертвые сектора в конец ?Нет. Никто в конец сектора не отправляет. Просто проблемный участок помечается, и не используется. Переместить его никуда нельзя, да и такого понятия как начало и конец тоже нет.сообщит ли виндовс, что операция не удалась, так как последние файлы в теории не могли быть размещены на флешку по причине битых секторов Если запись не удастся по любой причине - то сообщит.
Но тот факт что запись прошла удачно никак не гарантирует того, что вы сможете их прочитать.
Вопрос: Безопасность данных в Google Photos?

Лучший ответ:
Привет. Выдержка из одного кинца: "Ни одна система не безопасна." - достаточно пафосно, но это правда.
Если не хотите чтобы ваши фото когда-нибудь попали в чужие руки - держите их на физическом носителе в бункере :D
Но а если говорить по факту - гугл интернациональная контора, в которой работают отличные специалисты высочайшей квалификации.
Помимо этого у них действует программа багбаунти, за которую отваливают неплохие для ИБ специалистов деньги. Людям выгоднее работать по ней, нежели пытаться продать кому-то ваши личные фото.
Подытожу - можете не бояться за свои фото.

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

Лучший ответ:
Потому что у вас в массиве зарезервировано всего 44 места (0...43), а вы используете 45 (0...44)

Худший ответ:
Вероятно,  заменить:for (int i = 0; i <= 44; ++i) {
на:for (int i = 0; i <= 44; i++) {
И увеличить размер массива.
Вопрос: Как правильно выполнить pip install если подключение к internet только через proxy?

Лучший ответ:
pip install --proxy http://юзер:пароль@прокси:порт <пакет>
То есть, два дефиса перед именем опции и задать протокол

Худший ответ:
Если у Вас Windows, то: 
1) установите (и настройте) cntlm (cntlm.sourceforge.net) как локальный прокси 
2) в каталоге AppData\Roaming\pip создайте файл pip.ini c содержимым[global]
proxy = 127.0.0.1:3128
Вопрос: Существуют ли самоклеящиеся небольшие коврики для ноутбука?

Лучший ответ:
Встречал такие на ali, но такой коврик будет потенциально опасен
Либо крышка не будет закрываться до конца, либо толстый коврик продавит экран при закрытой крышке

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

Лучший ответ:
мне нужно общее решение
Введите выражение у = [*ожидание ввода выражения]
Введите x = [*ввод x]
Значение Выражения в точке X = [значение выражение в точке]Получить выражениеПроверить корректность выраженияПолучить дополнительные данныеПроверить корректность введенных данныхРаспарсить выражениеРаспарсить введенные данныеПроизвести вычисления выражения с учетом введенных ранее данныхПоказать результат вычисления

Худший ответ:
double y1 = 34*Math.Pow(x, 2)+2*x+7;
//и т.д.
Ну или калькулятор написать.
Вопрос: Какой фреймворк выбрать для отображения выборки из MySQL на сайте?

Лучший ответ:
Посмотрите DataTables

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

Лучший ответ:
В head:<meta name="theme-color" content="#4ab3dd">
Оно?
ЗЫ: Тем, у кого нет андроида под рукой ваша ссылка бесполезна. Вставляйте скриншоты для таких случаев.

Худший ответ:
Нашел решение<meta name="theme-color" content="#db5945">
Вопрос: Как по нажатию на кнопку перейти на другую страницу в React?

Лучший ответ:
Друзья, наконец то прояснение наступило. Ниже пример реализации:
Импортируйте в основной компонент App свои страницы, у этом случае это FirstPageComponent и SecondPageComponentimport React, { Component } from "react";
import FirstPageComponent from "./FirstPageComponent.js";
import SecondPageComponent from"./SecondPageComponent";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
Дальше делайте привязку этих страниц в App с помощью   react-router следующим образомfunction App (){
  return(
    <Router>
      <div className="App">
        <Route path="/" exact exact component={FirstPageComponent}
        }/>
        <Route path="/second" exact component={SecondPageComponent}/>
     </div>
     </Router>
  )
}
export default App;
Дальше, желательно в отдельных файлах сделать привязку к соответствующим кнопкам на ваших страницах следующим образом  import React from "react";
import ReactDOM from "react-dom";

 class OnSecondPageButton extends React.Component {
    onclick () {
      window.location.assign('http://localhost:3000/second/');
    }

    render() {
      return (<a onClick={(e) => this.onclick(e)}><i className="fas fa-chart-bar"></i></a>);
    }
  }
export default Statistics_button;

import React from "react";
import ReactDOM from "react-dom";

 class Back_button extends React.Component {
    onclick () {
      window.location.assign('http://localhost:3000/');
    }

    render() {
      return (<button  onClick={(e) => this.onclick(e)}>Back </button>);
    }
  }
export default Back_button;
Потом не забываем импортировать свои кнопочки и вызвать в нужных местах Ваших страничек.
Как то так. Спасибо за поддержку. Успехов Вам)

Худший ответ:
вы не можете перейти на js- файл. 
как это делать правильно - посмотрите https://reacttraining.com/react-router/
Вопрос: Как должна производиться авторизация пользователя на сервере?

Лучший ответ:
почему бы не воспользоваться готовыми алгоритмами? например, oauth2.

Худший ответ:
https://jwt.io
современный подход, кратко: храните у пользователя токен, и ключ, который доказывает серверу что токен не поддельный.
Прикол в том, что вы таким образом можете хранить у пользователя сессионные данные, это хорошо для масштабирования проекта ( не нужно думать на какой ноде лежит пользовательская сессия, а можно кидать его на любую). Т.е. можно хранить например: {userId: 123, userRole : 'admin' }
Проблемы с JWT это с обновлением токена. Делают либо бессрочный доступ, либо например на месяц, через месяц пользователь будет вынуждень заново залогинится. Не удобно, но решаемо, на стековерфлоу были  примеры обхода этого ограничения при помощи рефреш токена.
Вопрос: Какие вы знаете книги по сложности (абстрактно)?

Лучший ответ:
Дональд Кнут Искусство программирования

Худший ответ:
"The Principles of Mathematics" Рассела и Уайтхэда. Очень полезна будет бэкэндщикам!
Вопрос: Как правильно задать background-image?

Лучший ответ:
Что-то вроде такого?
https://jsfiddle.net/9tov22xs/

Худший ответ:
Приведите свой код
Вопрос: Как реализовать последовательную загрузку форм?

Лучший ответ:
Сохранять промежуточные данные на сервере не слишком удобно, так что оптимально сделать ОДНУ форму и просто показывать разные ее вкладки)
Как ?
1) Можно  просто использовать форму с табами. Скрывать или показывать нужные из них по клику
https://getbootstrap.com/docs/4.3/components/navs/...
2) есть и плагины типа - www.jquery-steps.com/Examples#basic .
Но мне кажется первого способа достаточно.

Худший ответ:
Немного расширю ответ Василий своим опытом. (Считаю, что ответ на вопрос присуждается ему).
UX это иллюзия, которую мы предоставляем юзерам для взаимодействия с интерфейсом. Поэтому все так.
Для того, чтобы не потерять данные я обычно создаю <input type="hidden" value="">, и в его value вписываю все данные с удобными разделителями (чтоб потом парсить удобно было), а отправляю по финальному submit.
Если разбираетесь, посмотрите сурсы вот этого проекта.
Вопрос: Верно ли я понимаю суть webpack, таск-раннеров, requirejs и модулей?

Лучший ответ:
Иными словами, похожего результата я добьюсь варварским методом, склеивая файлы без всяких модулей через gulp (инкапсулируя содержимое при помощи объектов). Верно?
В каком-то смысле да.Чтобы использовать модульный подход на клиенте, например, при помощи RequireJS, нужно его подключить, позволить ему отработать и засунуть в код страницы на лету нужные файлы.
Не обязательно, тот же вебпак создаёт самостоятельный бандл. Всё необходимое будет внутри.
Сравнения со стеком C/C++:
- модули это единицы компиляции (compilation unit). Настоящих модулей в C++ мы никак не дождёмся, так что это пока лучшая аналогия :); модули, написанные на языке, отличном от целевого JS (например на TypeScript или ES2015) подлежат компиляции; JS, являющийся результатом компиляции похож на объектный файл;
- вебпак похож на линковщик, с той разницей, что плюсовый линкер собирает в бинарник только то, что ему дают, а вебпак наоборот, может запрашивать компиляцию модулей (для чего существует концепция загрузчиков - loaders). Представьте, если бы линковщик просил компилятор С++ скомпилить нужный файл. Так ведёт себя вебпак;
- выходные большие файлы - бандлы - это вроде готовых lib файлов или бинарников. В них напихано много скомпилированных модулей, и их можно либо слинковать с чем-то еще (если это библиотека), либо запустить (если это бандл для загрузки на HTML-страницу);
- как линковщик (пусть и с возможностью запроса нужного модуля) не заменяет make, так и вебпак не заменяет таск-раннеров.

Худший ответ:
Примерно да. Только с третьим пунктом я не согласен:Возможно, именно поэтому именитые проекты, использующие все эти новомодные фичи, так яростно лагают в сравнении с обычными сайтами
Какие именитые проекты лагают? twitter? gmail? гугл- и яндекс-карты? Гугл-документы? Ведь нет же, хотя там богатая и сложная функциональность. Лагает dirty и facebook, потому что обвешаны кривой рекламой по самое не могу. Вот всякие баннерные сети с кривыми картинками, видео и JS-ом, написанным в 1997 году и тормозят.
Вопрос: Как достать следующий элемент массива?

Лучший ответ:
Можно попробовать так: https://codepen.io/glebez/pen/mMPqbW

Худший ответ:
Сделать key глобальной переменной и братьkey = (key+1) % colors.length
Вопрос: Fillable laravel?

Лучший ответ:
Эти фишки Ларавеля нужны только для очень простых rest проектов. В реальной жизни они не то что не нужны, а даже мешают, так-как create часто вызывается из разных мест и с разными параметрами. Лучше создать BaseModel, поставить $guarded = false и не париться на счет $fillable и $guarded. Так что тут либо использовать validor + $request->only, либо чуть модифицированный Request, и от него уже все остальные наследовать. А в нем метод по типу "$request->neededFields()" который отдает только нужные поля, основываясь на array_keys($validationArray)
Надеюсь понятно. В двух словах: не используй эту хренотень.

Худший ответ:
Если вы получили данные с формы, то можете одним махом их закинуть в модель $user->fill($input). Но хакер может заменить имена переменных формы и вы присвоите не те поля, если все fillable. 
you should still never pass  any raw array of user controlled input into a save or update method, as any column that is not guarded may be updated.
Вопрос: Ограничить ввод слов?

Лучший ответ:
Между Имя и Фамилия должен быть пробелХа-ха-ха-ха!Заблуждения программистов об именах
Также рекомендую к прочтению "заблуждения программистов о времени" и "о адресах".
Функцию getDateNow можно сократить до пары строчек используя toLocaleDateString, toLocaleTimeString() или Intl.DateTimeFormat
Вопрос из заголовка не раскрыт, потому что совершенно не ясно, что именно вы собрались ограничивать.

Худший ответ:
спасибо вам за ссылки))
Вопрос: Как добавить свои табы к товару в 1С-Битрикс: Управление сайтом 17.0.5?

Лучший ответ:
Блок:<?php if(!empty($arResult['PROPERTIES']['ALL_VIDEO']['VALUE'])):?>
     <li class="product-item-detail-tab" data-entity="tab" data-value="video">
           <a href="javascript:void(0);" class="product-item-detail-tab-link">
                  <span>Видео</span>
           </a>
     </li>
<?php endif; ?>
нужно еще раз продублировать ниже. Чуть ниже по коду смотрите. Ориентируйтесь на коммент в коде: <!--Top tabs-->
Там аналогичная конструкция. Продублируете там и должно заработать.

Худший ответ:
Да спасибо bx-coder! я забыл что данных менюшек на сайте 2 одна при пролистывании.
Вопрос: Почему неправильно считает JQuery, где ошибка?

Лучший ответ:
1. Оптимизируйте селекторы. #valmovaya #area-h1 - вот это плохой селектор, потому что он ищет по идентификатору внутри элемента с идентификатором, но вторая часть уже лишена особого смысла, поскольку первый идентификатор по определению и так уникален. Оставьте просто #area-h1. А еще лучше вообще уберите из идентификатора указатель на название тега, это архидурной тон.
2. val возвращает строковое значение. Работать со строками как с числами - очень плохая затея, даже в языках с динамической типизацией. Либо пользуйтесь parseInt(vaml_h1), либо вообще кастом в духе +valm_h1.
3. jQuery не считает, арифметические расчеты это зона контроля JavaScript.
Любой из этих трех вариантов вам подойдет, в принципе.var valm_w1 = +$("#area-w1").val();
var valm_w3 = parseInt($("#area-w3").val());
var valm_h1 = parseFloat($("#area-h1").val());

Худший ответ:
Логика в том, что в javascript "+" служит для конкатенации строк (а значение поля - это как раз таки строка). Оберните ваши  переменные в parseFloat().
Вопрос: Как организовать полноценную систему авторизации с разделением прав в laravel5?

Лучший ответ:
https://packagist.org/packages/zizaco/entrust
очень хорошая основа, жаль что автор положил болт.
есть форки с некоторыми фиксами, но особо живых не видел.
В целом юзабельно.

Худший ответ:
Laratrust - один из форков zizako, который актуален:
https://github.com/santigarcor/laratrust
laratrust.readthedocs.io - документация
Вопрос: Как запомнить классы, функции и методы в программировании и сэкономить время?

Лучший ответ:
Запоминать всё не надо. Нужно пользоваться документацией, иметь под рукой удобные справочники (лучше online c возможностью поиска). Многие используют cheat sheet вроде этого. То, что будете часто использовать, само собой запомнится.

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

Лучший ответ:
Если $dynamic_url найден в массиве $ignore_pages то true иначе false
Но это бредовая идея, т.к. in_array и так вернет true или false$ignore =in_array($dynamic_url,$ignore_pages);

Худший ответ:
? - это тернарный оператор аналог if else$ignore = (in_array($dynamic_url,$ignore_pages))?true:false;
//Эти два выражения эквивалентны
if(in_array($dynamic_url,$ignore_pages)){
    $ignore = true;
}
else{
    $ignore = false;
}
Вопрос: Как быстро перенести 100ГБ изображений на внешний usb?

Лучший ответ:
Все очень просто - делаете из файлов большой архив.Причем архив делаете сразу на внешнем накопителе.
Места на компьютере вообще не нужно будет.

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

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

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

Лучший ответ:
Доки читали?

Худший ответ:
В прошлом ответе я давал ссылки. Почитайте внимательнее.
Представим структуру book:
id|name|author_id
и представим структуру author:
id|name
Напишем два класса:<?php
class Author extends ActiveRecord
{
    public static function tableName()
    {
       return 'author';
    }

    pubic static function primaryKey()
    {
        return ['id'];
    }
}

class Book extends ActiveRecord
{
    public static function tableName()
    {
       return 'book';
    }

    public static function primaryKey()
    {
        return ['id'];
    }

    public function getAuthor()
    {
        return $this->hasOne(Author::className(), ['id' => 'author_id']);
    }
}

// Использование:
$books = Book::find()->all();
foreach ($books as $book) {
   echo $book->author->name; // сработает метод getAuthor() из Book
}
Если вы сейчас не поймете ничего, то я не знаю, чем вам помочь)) В методе getAuthor() мы использовали связь hasOne.
Почитайте внимательно вот эту страницу:
https://github.com/yiisoft/yii2/blob/master/docs/g...
Вопрос: Альтернативный синтаксис без echo?

Лучший ответ:
Такой синтаксис, чтобы было короче:<?= $var ?> == <?php echo $var ?>

Худший ответ:
echo имеет также краткую форму, представляющую собой знак равенства, следующий непосредственно за открывающим тегом.
php.net/manual/ru/function.echo.php
Вопрос: Что брать amd vs intel?

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

Худший ответ:
Давно известно, что если хочешь платить за бренд - бери Intel. По производительности все продукты будут +- одинаковые. Да, по бенчам то один лидирует, то другой, но как правило эта разница не так критична. Особенно если это среднеценовой сегмент.
PS
И это все не актуально для мобильной техники. Не знаю почему, но ноуты на AMD в большинстве случаев редкостное говно. Хотя мне кажется тут не сам AMD виноват, а произврдители самих ноутов. Начинаешь экономить на проце - ставишь и остальную комплектуху дешман.