Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как отличить полиморфизм в языках программирования?

Лучший ответ:
Вам нужно хорошую книжку. Это одно из базовых понятий и вряд ли вы изучите этот вопрос на Тостере.
Начнём с того, что основная идея полиморфизма — одинаково работать со множеством типов. 
Типов полиморфизма много, начиная с самого простого — параметрического полиморфизма, aka перегрузка функций. В Питоне, например, можно написать print x, и получить этот икс на экране. Причём получим разный результат в зависимости от конкретного типа x. В С++ можно писать cout << x, можно писать abs(x), и выполнятся будут разные действия в зависимости от x. В С, к примеру, пришлось бы самому выбирать какую функцию вызвать: abd, fabs, labs... так как в С нет перегрузки функций.
Динамический полиморфизм работает похожим образом: представьте себе алгоритм, который должен рассчитать общую сумму задолженности. У человека могут быть займы займы разных видов, которые считаются по-разному. Вместо того, чтобы прописывать явный алгоритм действий для каждого типа займов, алгоритм работает с абстрактным типом займов, для которого определена функция Займ.ПосчитатьДолгНаДату(Дата). Конкретный алгоритм расчёта зашит в конкретный тип-потомок Займа, алгоритм лишь спрашивает какая задолженность будет на конкретную дату, и его не колышет какой на самом деле это займ.

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

Лучший ответ:
function ValidPhone() {
    var re = /^\d[\d\(\)\ -]{4,14}\d$/;
    var myPhone = document.getElementById('phone').value;
    var valid = re.test(myPhone);
    if (valid) output = 'Номер телефона введен правильно!';
    else output = 'Номер телефона введен неправильно!';
    document.getElementById('message').innerHTML = document.getElementById('message').innerHTML+'<br />'+output;
    return valid;
}

Худший ответ:
$("form#myForm").submit(function(event) {
        event.preventDefault();
        var phone_input = $(this).find("input[type=tel]");
        var phone_number = phone_input.val().replace(/[^0-9]/g,"");

        if (phone_number.length === 0 ) {
            phone_input.notify("Введите номер телефона", {position:"bottom" , className: 'error'})
        }

        if (phone_number.length < 12 && phone_number.length >= 4) {
            phone_input.notify("Номер введён не полностью", {position:"bottom" , className: 'warn', gap: 0, autoHideDelay: 3000});
        }
        if (phone_number.length === 12) {
            var data = $(this).serializeArray();
            data.push ({name: 'href', value: href}); //-можешь добавить дополнительные переменные, например адрес страницы, referer
            data.push ({name: 'ref', value: ref});
            var thisForm = $(this);
            var thisBtn = thisForm.find("button");
            $.ajax({
                url: 'php/mail.php',
                type: 'POST',
                data: data,
                beforeSend: function(data) {
                    thisBtn.notify("Отправка заявки", {position:"bottom center", className: 'info'});
                },
                success: function(data){
                    console.log(data);
                    thisBtn.notify("Заявка принята", {position:"bottom center", className: 'success'});
                    thisForm.trigger("reset");
                },
                error: function(data) {
                    thisBtn.notify("Ошибка на сервере", {position:"bottom center", className: 'error'} );
                    thisForm.trigger("reset");
                }
            });
            return false;
        }
    });

    var href          = window.location.href;
    var ref = document.referrer;

//-notify - красивые уведомления, скачать библиотеку можешь з<a href="https://notifyjs.jpillora.com/"></a>десь, если не нужно просто убери
<img src="https://habrastorage.org/webt/5c/a3/0d/5ca30d6fd6f1f287377378.png" alt="image"/>
Вопрос: Как решать парсинг строк кода вида «public function integer», «event type string f_function»?

Лучший ответ:
Что мы можем обобщить:
1. существует порядок. Элементы в последовательности не обязательны, но порядок строгий
Например, protected может и не быть. Но точно не может быть function protected 
2. Часть элементов имеет только ограниченный набор значений (scope, type)
Я вижу, примерно, такую логику (ее нужно рисовать, как диаграмму):
1. определяем набор допустимых значений для scope (protected/public/private)
2. берем первое слово строки. смотрим, совпадает ли с одним из вариантов
3. если нет, то scope ставим по умолчанию (public например). А первое слово проверяем на совпадение с множестовм допустимых значений type (function/class/enum/interface). 
4. если нет - ошибка парсинга
5. если ошибок не было и значение type еще не определено, значит до этого определялся scope. Поэтому, берем второе слово и проверяем его на множестово допустимых значений type
6. если type уже был определен, проверяем на множество для returnType
7. когда определим все три первых элемента (type, scope, returnType), берем 4й - это имя функции
8. берем значение в (скобках) и делим по делиметру "," - получим массив аргументов

Худший ответ:
1) Написать грамматику языка, например в форме Бэкуса-Наура.
2) По грамматике построить синтаксический анализатор. Самое простое, что я знаю - метод рекурсивного спуска.
По 2 - можно воспользоваться генераторами парсеров, чем-то типа bison, yacc.
Вопрос: Не запускается компьютер, что делать?

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

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

Лучший ответ:
PHP, Python, Javascript, Java или C#

Худший ответ:
Начать работать на фрилансе совершенно не озанчает ити на фриланс стажером/джуниором.
Фриланс предполагает человека, который самостоятельно может справляться с задачами.
Если вы не видите на фрилансе С++ задач уровня джуниор вообще, значит С++ джуниоры не востребованы на фрилансе.
Совершенно не сложно просто посмотреть какие есть задачи самостоятельно и понять, чего хотят.
P.S. На самом деле, про фриланс говорят многие, а работают единицы. Моя задача по С++ висит уже скоро месяц, никто не берется даже оценить.
Вопрос: От каких атак защищен процессор Эльбрус?

Лучший ответ:
Он защищен от закладок.
Если вы покупаете процессор на стороне вы не знаете что там внутри, и какие закладки производитель поставил.
Если вы сами делаете процессор вы точно знаете там внутри, и что там никаких закладок нет.
Вот и все.

Худший ответ:
Вообще Архитектура Эльбруса, отличается от Intel\AMD и базируется на архитектуре SPARC. Для возможности работы с существующим ПО в нем реализован транслятор x86-кода в собственный.
Была на Хабре статья, по истории создания процессоров (к сожалению быстро найти не получилось), там рассказывалось о советских разработках, существующих технологиях и их перспективах. Так вот Эльбрус это попытка на базе имеющихся советских наработок, с учетом достижений науки создать процессор, без использования патентов Intel, AMD, ARM и пр. Соответственно на данном этапе он пригоден только для военных и академических целей.
Можно еще посмотреть статью.
Вопрос: Веб сервер аномайзер который генерирует веб страниц в зависимости от такого по какому домену к нему обращаются. Реально?

Лучший ответ:
Ставите nginx  и самое простое что мне пришлов голову делаете для каждого домена свой конфиг файл  видаserver{
listen 80;
server_name domain1.ru;
location / {
  proxy_pass http://domain1.ru;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $phost;
}
}
проверить к сожалению сейчас не могу,  но  по идее работать должно

Худший ответ:
Nginx и apache умеют. lmgtfy.com/?q=%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB...
Вопрос: Как благополучно закрыть проект с невыносимым заказчиком?

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

Худший ответ:
Разумно нужно мыслить, а если ваш оппонент "на эмоциях", то особенно, "клиент всегда прав" - это бред, а вот в рамках бюджета проблемы клиента надо учитывать, стараться понять его, и решать их, для этого привыкайте видеть задачу, цель, и стремиться к ней, а "поехавшим" людям не давать сойти с пути к цели, и самому не бредить, у вашего заказчика тоже есть руководитель или клиенты, это и есть ваша с ним задача, все его требования должны быть необходимыми для решения задачи, иначе объясняйте, "это нам с вами не надо, давайте не будем это делать, вы хотите, чтобы я то-то сделал к понедельнику, но ведь сроки от вашего руководства - среда, то есть время есть и  торопиться нет никакого смысла, между тем спешка всегда вредит качеству, да и бюджет наш с вами ограничен, а срочность всегда стоит денег, сами понимаете".Я прифигел от подобной наглости мадам, пошел выпил стаканчик воды и вроде отпустило
Вы о себе думаете, а человеку плохо, требовалось спокойное, разумное обсуждение проблемы, и психологическая поддержка, тренируйтесь, это всегда "плюс" для работника, а пока у вас нет ничего "ангельского".Так и сказала, что сайт теперь, дескать, моя забота.
В таком случае FTP и все работы с сайтом должны делаться через вас, "давайте доверим это мне как профессионалу, ответственному за сайт".меня насторожило, это была женщина. Абсолютно ничего не имею против, просто был горький опыт работы в прошлом)
А у меня опыт в точности противоположный.
Вопрос: Как реализована прозрачность в теме Настроение на Яндексе?

Лучший ответ:
Две картинки
Без размытия - https://yastatic.net/www-skins/_/UBOZSYh5Ea-ZGg4kQ...
и с размытием - https://yastatic.net/www-skins/_/nwpWSk0EIqn8I8S94...
Нужно уметь ставить фон блокам.
Еще есть css-фильтры - https://developer.mozilla.org/ru/docs/Web/CSS/filter
Важно помнить, что действуют они именно на элемент, а не на то, что под ним.
UPD. Пример мутной панельки
https://jsfiddle.net/Tenebrius/pus9e7vg/2/

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

Лучший ответ:
dairyculture.ru/upload/render-img/moloko/moloko0000.png
Стопицот картинок стакана молока, урлы меняются в зависимости от положения скролла. Можно вручную поменять последнюю цифру и посмотреть что получится.

Худший ответ:
Где вы там 3D увидели?
Обычный 2D параллакс.
Например стакан, помещается в руку, а на самом деле - между двух картинок: dairyculture.ru/local/images/sliding-page4/hand-ba... и dairyculture.ru/local/images/sliding-page4/hand-fi...
Вопрос: Как смотреть видео с канала на YouTube по порядку?

Лучший ответ:
Это не тривиально, но возможно прямо в YouTube и без смс)
Если коротоко, то надо запихнуть все видео в ваш собственный плейлист, а со своим плейлистом можно делать больше вещей, в том числе менять порядок.
Подробнее, как я делал:
1. Находим плейлист с неправильным порядком, например:https://www.youtube.com/playlist?list=PLMCQ-Jm6EpSR-beV1AFifYR7C6Td2tiCG
2. Открываем в старой оболочке—добавляем в адрес "&disable_polymer=true"https://www.youtube.com/playlist?list=PLMCQ-Jm6EpSR-beV1AFifYR7C6Td2tiCG&disable_polymer=true
3. Перекидываем все видео в собственный плейлист —выбираем в меню справа наверху "три точки" -> "Добавить все в ..." -> "Создать новый плейлист"
4. Заходим в свой плейлист, нажимаем кнопку "ИЗМЕНИТЬ"
5. Выбираем сортировку "по дате публикации (сначала старые)". 
Готово! Приятного просмотра в хронологическом порядке =)
6. Посмотреть и удалить ненужный плейлист))PS. YouTube, блин, стыдно должно быть так издеваться над пользователями!

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

Лучший ответ:
Уже 2 недели безуспешно пытаюсь найти работу Front-end разработчиком. 
Это нормально.
Продолжайте.

Худший ответ:
Думаю в вашем резюме не хватает какого - нибудь js фреймворка. И попробуйте податься в какой нибудь офис и там получить первый опыт работы.
Вопрос: Как передать значение полученное из БД в переменную?

Лучший ответ:
$items = $wpdb->get_results( "SELECT count(*) AS `count` FROM `avt_posts` WHERE `post_type` = 'shop_order'" ); // изменённый запрос
$item = reset($items);
$x = $item->count;

Худший ответ:
Попробуйте так: SELECT count(*) as count FROM
$items[0]->count
Вопрос: Какие есть видео-курсы по созданию магазинов на Laravel 5.*?

Лучший ответ:
Курс laravel
Мне этот понравился. Но, конечно, как в любом курсе есть очень много тягомотины и многократных повторений, чтобы даже полные тормоза догнали. Для меня это минус, но для кого то может и плюсом быть..
Я же вам объяснил, что как только азы освоете, то и простейший магазин будет сделать не проблема! Ну если хотите посмотрите этот курс по YII2. Там все очень понятно все рассказывают, но правда не laravel, а YII2, но думаю не проблема, его знать тоже не помешает на базовом уровне, заодно смоете сравнить эти фреймворки и понять чем отличаются. Не советую очень досканально изучать его курс, так какон устарел, да и не соответствует всем правилам написания кода, но для первого интернет магазина такой курс будет лучшим выбором я думаю, так как там показано как сделать корзину и подобные штучки, которые используются в каждом магазине, так что гляньте..

Худший ответ:
web for my self   последний их курс. до 7 000 руб по ларе стоит   Они как то так их записывают, слишком длинные.   50 часов курс ларавел например.
Вопрос: Почему не работает regexp в js, когда в онлайн-тестерах работает?

Лучший ответ:
На regex101 вы проверяли PCRE (PHP), а надо JavaScript
https://regex101.com/r/1Frrju/2

Худший ответ:
Ошибка была что я использовал /pattern/.exec(data), вместо data.match(/pattern). Или использовать while с exec.
Вопрос: Как сделать адаптивный блок?

Лучший ответ:
Когда хотите разобраться с каком-то сайтом / блоком / кодом.
Берите и используйте консоль разработчика, она для этого и придумана.
В браузерах, как правило, вызывается клавишами CTRL+SHIFT+I.
По всем пунктам отвечать подробно лень, поскольку тут вообще всё элементарно.
Вкратце.
1. Можно абсолютным позиционированием (position: absolute;), можно через транформацию (transform: translate;).
2. Самый простой способ: через CSS - background: url('...') 50% 50% / cover no-repeat
По 3-му пункту пример можно посмотреть тут https://jsfiddle.net/webirus/99qfLkbo/
Вчера делал только для другого ответа.

Худший ответ:
1) Никак. Это не лого, а надпись на всех фотках одинаковая
2) position: relative;
left: 50%;
transform: translateX(-50%); (там та же схема, только на JS)
3) Гуглите: "jquery scrolltop"
Вопрос: Почему в либе собранной g++ jna не находит функцию?

Лучший ответ:
Это потому что когда вы вызываете g++ используются другие дефолтовые настройки, по умолчанию ваш код считается кодом на C++ (даже файлы с расширением.c, см. https://stackoverflow.com/questions/172587/what-is... ) и, соответственно, начинает работать name mangling. Варианты действий:
- использовать extern "C" для registerCallback;
- компилировать код как сишный код.

Худший ответ:
Объявляйте функции с extern "C".
Вопрос: Для чего необходим TLS/SSL сертификат при рассылке писем, влияет ли он на доставляемость писем?

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

Худший ответ:
Для чего необходим TLS/SSL сертификат при рассылке писем?
Для шифрования транспортного уровня между отправляющим сервером и принимающим. В процессе обмена "товарищ майор" не сможет прочитать содержимое письма (но метаданные - от кого, кому, тему и прочее - сможет)Письмо подписывается SSL сертификатом только при рассылке методом SMTP или же при всех видах (mail, sendmail, smtp) ?
Не путайтесь. Письмо подписывается  сертификатом, если таковое указано в настройках почтового клиента - Outlook, TB. Это требует выпуска персональных сертификатов и отдельной настройки. Использование сертификата на транспортном уровне ничего не подписывает. Оно шифрует.
JFYI: Нет рассылки методом SMTP. Есть протокол SMTP, который используется при отправке писем. Нет "какого либо еще метода". Sendmail - SMTP-сервер, а mail - вообще консольный почтовый клиент :)
3. Влияет ли он на доставляемость писем?
Нет
Вопрос: Есть ли серверные MB под пару i7 на LGA1366?

Лучший ответ:
Основная проблема - на десктопных i7 отсутствуют дополнительные линки QPI, необходимые для взаимодействия между процессорами.
Поэтому в двухсокетных материнках и не каждая пара Xeon работать будет, нужны как минимум именно те, у которых активны QPI линки. Например, пара каких-нибудь Xeon W3680 не заведётся потому же, почему и пара i7. Они искусственно разделены на разные рынки.
И наоборот, ради пиара была даже вполне десктопная материнка, но всё равно требующая xeon - EVGA Classified SR-2

Худший ответ:
Основная проблема - на десктопных i7 отсутствуют дополнительные линки QPI, необходимые для взаимодействия между процессорами.
Поэтому в двухсокетных материнках и не каждая пара Xeon работать будет, нужны как минимум именно те, у которых активны QPI линки. Например, пара каких-нибудь Xeon W3680 не заведётся потому же, почему и пара i7. Они искусственно разделены на разные рынки.
И наоборот, ради пиара была даже вполне десктопная материнка, но всё равно требующая xeon - EVGA Classified SR-2
Вопрос: Почему значение final можно изменять?

Лучший ответ:
Его нельзя изменить(нельзя изменить ссылку). А в данном примере меняют не его, а в него записывают инкрементированное значение counter.

Худший ответ:
Так counter и не final. Здесь final значение id.
Вопрос: MVC во фреймворке?

Лучший ответ:
У вас крайне странное понимание паттерна mvc. Это код шаблона, который выводит хтмл. Вас смущает хтмл или наличие пхп кода?
Мвц не просто разделяет "только код от только хтмл", он делит приложение на несколько относительно независимых частей, где: модель отвечает за основную логику в объектах отдельных типов(например пользователь, изображение, товар), вот в них нет (не должно быть по уму) никаих хтмл разметок, чисто логика относящаяся к описываемой сущности.контроллер отвечает за привязку урл и передаваемых данных к вьюшкам и шаблонам, создает объекты, выполняет их инициализацию с помощью пришедших данных и передает их в представление(читай в шаблон). Так же не должен содержать хтмл.вид - максимально отделенный от логики шаблон разметки. Так как в него надо все же как то передать данные, конечно же он содержит код пхп, но он не содержит(в идеале) логики сложнее чем циклический вывод и проверки.

Худший ответ:
Во view вполне может быть немного php для вывода определенной информации или для подключения ресурсов. Главное , что в них не должно быть логики., а только то что нужно для представления. 
Аналогичные вещи есть и  laravel и в  codeigniter  )
Вопрос: Как сделать чтобы при повороте экрана Gradient был на весь экран?

Лучший ответ:
просто размер вьюхи (self.view.bounds) надо изменять и перезапускать функцию
нужно чтобы при перевороте экрана происходила перерисовка из-за изменений размеров вью
if UIDevice.current.orientation.isPortrait {
            //тут перерисовка
}

Худший ответ:
Поддерживаю Vovanys , и дополняю - все работы со слоями требуют ручного менеджмента размеров. К ним не применяются ни какие автолейауты.
Вопрос: Не работает ctrl+/ и ctrl+shift+/ в Sublime Text 3?

Лучший ответ:
пол дня потратил на поиск решения, все облазил вдоль и поперек, оказалось все проще - ctrl + / или ctrl + shift + /  - здесь слэш я нажимал который находиться на цифровой клавиатуре справа (над циферками), а нужно нажимать слэш находящийся возле клавиши enter (случайно нажал)  и все работает, или я дурак или лыжи не едут :) я в шоке!

Худший ответ:
Было дело. Решил так: зашел в другое окно(браузер), потыкал там те кнопки, которые не работали. Зашел обратно в sublime, и все работает.
Вопрос: Как стать быстро хакером( тестировщиком, путем взлома сайтов с согласия его владельца за деньги)?

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

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

Лучший ответ:
Ваш вопрос можно переформулировать так:
> Хочу сделать свой боинг 777, на данный момент умею забивать гвозди, что нужно изучить?
1. Проект по примеру того, что вы привели один человек сделать не сможет, примите за исходную. Судя по датам в футере 2014-2019, его пилили 5 лет. Я не знаю, сколько там народу работает, но даже если 10 человек - это 50 человеколет.
2. Начинайте с малого. Для начала изучите, как в принципе пишутся веб системы, как работает HTTP, как работают базы данных типа mysql.
3. Научитесь декомпозировать задачи.там должны быть личные кабинеты
Это утверждение буквально ничего не значит, кроме того, что должно быть некое разделение доступа у пользователей.

Худший ответ:
Продолжайте углубляться в Node.JS, да, на её базе можно.
Вопрос: Логично ли данное ООП поведение в javascript и отличается ли оно от c++ и java?

Лучший ответ:
Всё дело в том, что this в A.foo ссылается не на A, а на инстанс B. А поиск метода идёт по цепочке прототипов, начиная сверху, поэтому до A.bar никогда не доходит.
Рассуждать, логично это или нет, бессмысленно - это просто так и нужно принять такое поведение, понять его и использовать.
И нет, в Java и C++ поведение не такое. Вообще, в javascript наследование прототипное и есть закидоны особенности с контекстом вызова, поэтому привычное из других языков понимание ООП в нём не всегда работает.

Худший ответ:
Всё дело в том, что this в A.foo ссылается не на A, а на инстанс B. А поиск метода идёт по цепочке прототипов, начиная сверху, поэтому до A.bar никогда не доходит.
Рассуждать, логично это или нет, бессмысленно - это просто так и нужно принять такое поведение, понять его и использовать.
И нет, в Java и C++ поведение не такое. Вообще, в javascript наследование прототипное и есть закидоны особенности с контекстом вызова, поэтому привычное из других языков понимание ООП в нём не всегда работает.
Вопрос: Как подключить 2 монитора к одному ПК?

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

Худший ответ:
По HDMI попробуйте передавать изображение. Но это уже костыли.
Вопрос: См. детали. Как при наведении на 1 div изменять другой?

Лучший ответ:
Потому что "~" видит только тех сиблингов, которые находятся ниже первого. В CSS нет возможности выбрать сиблинга, стоящего выше, но есть различные лайфхаки. Хотя проще прибегнуть к js.

Худший ответ:
Была такая же проблема. Мне посоветовали перевернуть в разметке блоки (т.е. 1 2 3 заменить на 3 2 1), а через flex-direction: column-reverse отобразить их в нормальном виде. Тогда все сработает. В вашем случае для этого способа придется сделать отдельный контейнер. Тыц
Вопрос: Проблема с правами доступа, как решить?

Лучший ответ:
Правильно выдает.
В PATH пути через ":" пишутся, а не через пробел. И подозреваю что "/home/newus/.npm-global/lib/node_modules/pm2/bin" - это не бинарник. Я бы тоже отказался запускать директорию :)

Худший ответ:
Может как-то так?sudo env "PATH=$PATH:/usr/bin:/home/newus/.npm-global/lib/node_modules/pm2/bin" startup systemd -u newus --hp /home/newus