Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Помощь с выбором ПО для создания методического Web-пособия+попутно защита диплома по нему?

Лучший ответ:
Берём moodle, внедряем, пишем диплом по результатам тестов после внедрения. За двумя зайцами погонишься - ни одного не поймаешь. С нулевыми знаниями нет смысла что-то писать самому, за такой срок не успеете. Html + css недели две, js, php - полгода как минимум, чтобы разбираться в коде джумлы.

Худший ответ:
Поставьте любой вики-движок и наполните уроками.
Вопрос: Как сделать такой вопросник?

Лучший ответ:
В сессиях хранить можно

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

Лучший ответ:
Вам нужно использовать свойство микроразметки AggregateRating в сниппете. Чтобы рейтинг отобразился в поисковой выдаче нужно предоставить возможность для голосования или сослаться на источник отзывов.

Худший ответ:
Микроразметка "Товар". https://developers.google.com/search/docs/data-typ...
Вопрос: Как регуляркой найти всё что после @?

Лучший ответ:
preg_replace('/.*@/', '', $email)

Но считается, что правильнее использовать предназначенные для этого функции:
substr(strrchr($email, '@'), 1)

Худший ответ:
Как найти всё что после @
Вопрос: Как защитить Websocket based сайт от DDoS атак?

Лучший ответ:
Если сильно обощать ддосы бывают двух видов -
1 атака на канал вам просто забивают трафиком под завязку сетевой интерфейс вашего сервера и он не может общатся с клиентами, это на стороне самого сервера никак не решается - только внешние решения типа клаудфлары.
2 атака на приложение и сопутствующий софт, заваливают медленными коннтектами вебсервер пока не заокнчится лимит, ищут тяжолые дейсвия с базой на вашем сайте(поиск например) чтобы потом кучей запросов нагрузить базу и сервис начнет тупить, и так далее. Основные приемы борьбы - знать паттерн обычного пользвателя, и настроить необходимые лимиты чуть выше чем надо обычному юзеру) в фаерволе или фронтенд проксе (например haproxy)

Худший ответ:
1. Блокировка IP это базовый функционал файрвола, но при DDOS руками это бесполезно ставить
2. DDOS огранизовывают обычно или с помощью amplify traffic либо же slowloris attack. Есть еще UDF flood. так что websocket или же что там у вас не важно. Если у вас нет возможности горизонтально масштабироваться чтобы отбить первую волну  вредного трафика то вам ничто не поможет, хотя решения есть, не спорю. Если у вас один сервачок то просто забудьте об этой проблеме - у вас не хватит ресурсов с этим справиться
3. ограничение по числу сообщений называется тротлингом и реализуется очень просто, но он работает после инструментов анти-ддоса и не имеет к этому никакого отношения.
4. ограничивать пропускную способность у вас не получится для разных клиентов, а в целом если то вы просто ляжете от своих кривых рук
Вопрос: Как спарсить объявление с юлы?

Лучший ответ:
Смотрите на запросы к серверу после прелоада

Худший ответ:
На php Вы никак не спарсите инфу напрямую. Точнее не так, спарсить то в теории можно, но надо будет долго и нудно разбирать JavaScript отвечающий за подгрузку контента, без всякой надежды на успех: так как есть большая вероятность, что от таких хитрых есть какая-никакая зашита, т. е. там все будет специально запутано посильнее и обвешано различными проверками по самую макушку.
Для парсинга динамических сайтов существуют инструменты типа PhantomJS и Selenium - это такие специальные «ручные» веб-браузеры. Конкретно в вашем случае и вовсе достаточно обычного пользовательского скрипта, который можно будет запустить в любом браузере.
Вопрос: Какой язык поможет научиться грамотно подходить разработке на БЭ?

Лучший ответ:
TS есть и на бэк, разумеется в виде трансформации в JS (Node.js это просто рантайм в котором запускается js). Если хочется прямо каноничной разработки - Java only. Можно PHP со строгой типизацией, можно Go, но я его не оценил.

Что до функционального программирования то сегодня оно есть в одном виде по-сути и это serverless (FaaS) и там Nodejs заходит более чем полностью

Худший ответ:
Дело в том что крутая архитектура не идет со стороны "хипстерских" языков, она скрывается за энтерпрайз разработкой, пик которой сейчас приходится на c# (.net core, orleans, akka.net). Все это если и будет в nodejs... Это совершенно не нужно в nodejs так как он совершенно для другово. Nodejs это небольшие проекты и serveless и этим его компетенция и будет ограничена, так как скорость не позволяет его в энтерпрайзе использовать. Поэтому если вы хотите быть крутым разработчиком серверных приложений я бы рекомендовал c#. Ну а типы вполне покроет стек nodejs + ts. Этого больше чем достаточно.
Вопрос: Как вывести массив строк в Си?

Лучший ответ:
Ваши ошибки.
1. Вы считываете строку куда попало. Надо выделить память, или сделать статический массив char s[3][40];
2. Обозначение для символа перевода строки — \n, с обратным слэшом.
3. *a = a[0].

Худший ответ:
У вас scanf("%s", a) ; от i не зависит. Не смущает? Также как и printf("%s/n", *a) ;
Ну и char *a[3] есть массив указателей на char, а вот куда эти указатели указывают, на какую память? Куда-то в космос... Где-то должна быть память, куда вы свои много-много char будете складывать. А уж как эту память выделить: статически, динамически... вам решать
Вопрос: Какую лучше всего библиотеку JS использовать для валидации форм?

Лучший ответ:
Я не понимаю, в чем проблема Vanilla js? Есть событие submit, change, input; кучу type в input; встроенное API для проверки (form.validity). Статья на MDN

Худший ответ:
В этом примере слушают событие submit.
Но никто не мешает вам слушать еще и change или даже input.
Вопрос: Как найти удалённую работу ML?

Лучший ответ:
Обогнать всех на kaggle?

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

Лучший ответ:
.htaccess — это только для Apache. 

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

Худший ответ:
RedirectMatch 301 ^ https://test2.ru/page3/

Или
RewriteEngine on

RewriteRule ^ https://test2.ru/page3/ [R=301,L]

Если нужно проверять домен
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(?:www\.)?test\.ru$
RewriteRule ^ https://test2.ru/page3/ [R=301,L]
Вопрос: Как набрать первоначальную массу пользователей?

Лучший ответ:
Вы не пробовали наполнить сайт, тупо, просто, очевидно.

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

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

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

И как выбрать задание по востребованному интересу ученика?Пример: хочу создать игру.
А Вы - ок, но это банально... Куда лучше - сразу турнирный сервер для любых игр!
Вопрос: Возможен ли ремонт матрицы монитора Dell U2719D?

Лучший ответ:
Узнаешь цену матрицы
Прибавляешь к ней стоимость работ по замене
Сравниваешь с ценой нового монитора
?????
ПРОФИТ!

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

Лучший ответ:
Пользуетесь ли вы Grid, Flex, es6, sticky. Да блин пользуемся! Смотрим в ТЗ, какие браузеры нужны, и пользуемся средствами доступными под эти браузеры. И бывает не пользуемся. Это зависит не от тебя пользоваться тем или иным средством.

Худший ответ:
Ie 11 поддерживаешь - забудь про стики. Полифилл - отстой. Caniuse берешь в зубы и вперед.
Вопрос: Когда пишут: (function() { //somecode })() — это зачем так делают — функцию в скобочки?

Лучший ответ:
Это самовызывающаяся функция

Худший ответ:
Вообще верно написали - это самовызывающаяся функцияЯ имею в виду первые скобки
Какие ? Выделите жирным.
(function() { 
//somecode... 
})();
Эти? Это элемент синтаксиса, даже есть нет аргументов - их нельзя опускать.(function() { 
//somecode... 
})();
Или эти? Ну это тоже элемент синтаксиса самовызывающейся функции
Вопрос: IT компании + судимость?

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

2. Когда погасите судимость устройтесь на работу(Примут там где нет СБ). Средним классом вы станете однозначно. 

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

Так что смелее

Худший ответ:
Работай на фрилансе.
Там всем пофиг на все.
Только результат важен.
Главное честно, скурпулезно, и качественно делать работу и выдавать результат.
И можно неплохо зарабатывать.
--
Вопрос: Почему некоторые Hdd не видно в это windows?

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

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

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

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

Лучший ответ:
Мне кажется вы немного перемудрили, излишне усложнив. 
Смотря на ваше "меню", как вижу таблицы в БД я:
+ pages = id, url(ЧПУ, если выводить в адресной строке хотим не ИД), title(заголовок), text(тело страницы, то есть текст)
+ news = id, url, date, title, short_text(этот текст выводим в списке новостей, он короткий), text(это уже на странице новости), image(картинка новости)
+ photo_category(если нужны альбомы для набора фотографий) = id, title, text(описание альбома), image(превьюшка альбома)
+ photos = id, name(если нужно название или описание), image(путь до файла), category(ссылка на photo_category, если нужны альбомы, иначе поле не создаём)
+ videos = id, video(ссылка на видео файл)
+ document_category = id, name
+ documents = id, category(ссылка на document_category ), ISBN(какой-то идентификатор документа вне бд), created(дата_тайм создания), update(дата_тайм обновления/изменения)
Если изменений у документов несколько, в разные периоды, то я бы выносил поле update в отдельную таблицу
+ document_modifed = id, document(ссылка на документ), date, comment(комментарий иб изменениях, если он нужен)
Ещё можно было бы добавить пользователей, пускай не на уровне пользователей сайта, а просто как список, то добавил бы. Чтобы указывать автора документа, автора изменений документа(если это нужно отслеживать).
Поля category в таблице photos  и document_category , у меня подразумевают, что категория у них может быть выбрана одна из, а не множество из. Если нужно именно множественный, то да, создавать отдельную таблицу и указывать там связи
Я сделал специально независимые таблицы "категорий", так как скорее всего они и будут независимыми, не пересекающимися. Тогда при создании под объекта, можно выбирать из списка категории только его типа, а не копаться во всех категориях скопом. То есть, создавая запись об документе, не надо выбирать среди "фоточки с корпаратива 2018", "протяжные валы", "зарплаты", "отмечаем юбилей", "отчёты".

Худший ответ:
Как не проектируй, все равно потом переделывать. :)
Вопрос: Какой фреймворк актуален на 2019 год и будет актуален хотя бы годик ещё?

Лучший ответ:
Какой фреймворк актуален на 2019 год и будет актуален хотя бы годик ещё?Laravel и Symfony, живы и будут жить я думаю ещё не один годик. Оба не самые простые (в общей сложности), хотя написать "Hello world application" особого труда не составит ни в первом ни во втором.
Если говорить о фреймворках как таковых вообще, которые проживут "ещё годик", я думаю как минимум стоит так же упомянуть: Codeigniter (его я обычно рекомендую новичкам в веб-разработке, MVC и PHP в частности), Yii (его изучать я бы Вам крайне не рекомендовал), Zend (про него ничего не скажу, но уверен, что он ещё проживёт не один год).

Худший ответ:
В связи с последней модой разделять бек и фронт и все общение делать через API, то я поставлю на API Platform: https://api-platform.com/
Помимо всего прочего позволяет генерить типовой UI (React / Vue) для стандартных задач по схеме данных, что ценно, если вы рассматриваете PHP в первую очередь как язык для бекенд-разработки.
Вопрос: Web IDE кодерский блокнот — какие можно развернуть у себя на сервере?

Лучший ответ:
Опишу на своем примере.
Мне часто необходимо вести/продолжать разработку в своей среде, но на разных машинах и не всегда со стабильным интернетом. Да и к функционалу есть требования. Пробовал работу с IDE на VDS через x2go -  очень не очень :-)
Сам перебирал кучу webIDE и скажу что с ними проблем много,, функционал отстает, стабильность ужасна и высокие требования к качеству соединения (на lte замучаетесь).
Для себя выбрал в конце концов схему в виде vsCode с RemoteSSH. Неплохой компромисс. Вкратце объясню - у себя ставите только vscode , а все плагины vscode будет ставить на сервере. Соответственно всякие git/svn/языки программирования и прочее окружение, вместе с плагинами находится на сервере.
Соответственно, если мне надо в другом месте поработать, просто скачиваю vscode -> указываю реквизиты SSH и продолжаю работать. Я думаю вы сами понимаете, что функционал существенно богаче любой webIDE.
P.S. Про vscode и remote develop можно узнать тут: https://code.visualstudio.com/docs/remote/ssh

Худший ответ:
Часто в разъездах и на чужих пк/ноутах. Мой опыт:
Работаю на netbeans (ide, в отличии от vscode и не хипстерская - а проверенная временем и можно работать без настройки кучи плагинов - многое есть "из коробки")
Она умеет синхронизацию с удаленным сервером из коробки.
Она умеет гитхаб/битбакет  из коробки.
т.е. я просто подключаюсь к удаленному серверу - и работаю. Пока проблем нет под мои задачи.
Поставил нетбинс - стянул с гита - прописал доступ с удаленному серверу и правь/изменяй/дописывай проект. По завершению - выкатываю на гитхаб в приватный репозиторий.
Вопрос: Как создать что то типа уникального хэша?

Лучший ответ:
Отсортировать параметры и посчитать хэш этого набора любой удобной хэш-функцией

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

Лучший ответ:
Если имеются в виду параметры pcq-limit и pcq-total-limit, то это размеры подочередей пакетов которые будут ждать отправки, если превышено ограничение. Соответственно pcq-limit - размер каждой подочереди, pcq-total-limit - общее ограничение на все подочереди.
Обычно дропы пакетов это нормально для какой-то части трафика (веб браузер например). Если есть какой то трафик для которого не желательны дропы (sip например) - нужно вынести его в отдельную очередь и поставить приоритет ~0-3.

Худший ответ:
pcq-limit размер в килобайтах для каждой подочереди. 1 подочередь = 1 dst address
если поставить галочку на dst port, то 1 подочередь = 1 dst address+1dst port
pcq-total limit размер в килобайтах - значение, по достижении которого вновь приходящие пакеты отбрасываются.
даже если у вас во всей очереди всего одна подочередь - все равно она не выйдет за рамки своих 50Kib(знач.Limit)
При этом все пакеты очередей хранятся в оперативке. Стоит это учитывать при выставлении больших значений Limit.
для себя выявил оптимальные параметры 300 и 20000.
далее решил использовать параметры Total в simple queue. Так как ширина канала 10 Мбит, то без этого никуда. Поправьте, если ошибаюсь.
и для него создал queue type
получилось вот такая схемка
/queue type
add kind=pcq name="type 1" pcq-classifier=src-address,dst-address \
    pcq-limit=500KiB pcq-total-limit=40000KiB
set 6 pcq-limit=500KiB pcq-total-limit=20000KiB
set 7 pcq-limit=500KiB pcq-total-limit=20000KiB
/queue simple
add name=LAN queue=pcq-upload-default/pcq-download-default target=\
    bridge1,bridge_guest total-max-limit=10M total-priority=3 total-queue=\
    "type 1"
Пока не ясно как ведет себя queue type на вкладке advanced при наличии total-queue-type.
За сутки дропов пакетов не было. свободная память ниже 90Мб не опускалась, проц нагрузка на 15-35%.
Устройство RB951G-2HnD , в сети 15-20 устройств на офис 10 человек.
Вопрос: Как использовать видеоплеер, что б файл нельзя было скачать?

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

Худший ответ:
https://playernow.ru/?player-type=vod-drm&mp4-src=...

Посмотрите тут, возможно что то можно наколхозить
Вопрос: Чем чревато отключение отмонтированного жесткого диска с работающего компа?

Лучший ответ:
Как линукс переносит такую операцию?
Отлично переносит. Если не перепутать диск с системным

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

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

Худший ответ:
Можно и современную. Эффективная работа с унаследованным кодом
PS: 
Для меня замый спокойный и эффективный способ: окружить часть кода тестами, и вносить изменения. Это сохраняет нервы.
Вопрос: Ошибка php mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given?

Лучший ответ:
Сделайте так:
while( ($cat = mysqli_fetch_assoc($result)) )
{
    if ($articles_count = mysqli_query($conection, "SELECT * FROM `articles` WHERE `categories_id`='".mysqli_real_escape_string($connection, $cat['id'])."'"))
    {
        echo '<li>' . $cat['name'] . ' ('. mysqli_num_rows($articles_count).') </li>';
    }
}
После того, как налюбуетесь на работающий без ошибки скрипт, марш-марш вперёд читать про SQL injection и защиту от него (в том числе через mysqli_real_escape_string()).

Худший ответ:
Возможно $articles_count пустой, или не содержит объект mysqli_query.
Скорей всего там false
Вопрос: Как настроить статическую маршрутизацию?

Лучший ответ:
Открыть наружу шары по белому IP адресу не самая удачная идея. Вам нужен VPN. А в плане маршрутизации мыслите в верном направлении. Настраивайте маршрутизацию исходя из VPN сервера.

Худший ответ:
Обе сети подключены к интернет через маршрутизаторы которые имеют выделенные IP адреса IP_A и IP_B.

Посмотрите, умеют ли оба маршрутизатора (оптимум - если они ещё и одной модели, или хотя бы одного вендора) устанавливать VPN-соединение. 

Если умеют - настройте. Тогда на клиентских компах вообще ничего не нужно настраивать для обеспечения доступа. Если нет - проще железки поменять (если не умеют - то это какое-то дешёвое SOHO). А потом - настроить VPN.

Будут определённые сложности, если внешний адрес у обеих сетей - динамический. Придётся у хотя бы одной делать статический белый IP.

А вот с видимостью в сетевом окружении сложнее. Зависит от наличия домена в каждой из сетей. Если есть - устанавливайте доверительные отношения. Если нет - хотя бы в одной сети придётся поднять WINS-сервер и все станции настроить на него.

А для просто доступа по NetBIOS-имени без видимости в сетевом окружении - достаточно внести необходимые записи в LMHOSTS.
Вопрос: Можно ли перенести windows 10 на другой пк?

Лучший ответ:
Придется сидеть с пиратки

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

Т.е создаем образ переноса. Сохраняем на другом диске или флешке. Вставляем наш диск. Накатываем наш образ
Ставим дрова (в программах и компонентах удалить по от старых)

Худший ответ:
Законным способом нельзя. Можно клонировать диск на новый. Всё будет работать без проблем, но лицензия может слететь. Так или иначе, это противоречит лиц. согл. OEM версии, которую ты используешь на старом ПК
Вопрос: Проблема с установкой curl в Ubuntu 18.10?

Лучший ответ:
Написано же, попробуйте "sudo apt update".
Или смените зеркала репозиториев.

Худший ответ:
Судя по снимку экрана  комментариях, есть немалое количество чужих репозиториев. Они могут быть причиной проблемы с обновлением ОС.
Стоит перенести их файлы  .list временно в другую директорию или просто удалить, предварительно создав резервную копию:
sudo tar cf /etc/apt/bak-sources.tar /etc/apt/sources.list.d/ && sudo rm /etc/apt/sources.list.d/*
Убедиться, что копия создана:
ls /etc/apt/bak-sources.tar
Теперь можно
sudo apt update
sudo apt upgrade
Если та же картина, тогда заменить ru на us:
sudo sed -i 's/ru\.archive/us.archive/g' /etc/apt/sources.list
и заново выполнить обновление.

Добавлено позже
Я понял. Этот дистрибутив уже не может получать обновления ОС, так как срок его поддержки давно истек (более года назад).
https://fridge.ubuntu.com/2019/07/19/ubuntu-18-10-...
Вопрос: Наступил ли новый день?

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

public function getDailyBonus()
    {
        $now = new DateTimeImmutable(); // сегодня
        if ($now->format('Y-m-d') != $this->getLastDate()->format('Y-m-d')) { // если даты не совпали
            // то считаем тут всякую всячину
            return true;
        }
        return false;
    }

$this->getLastDate(); уже должен возвращать объект DateTime, но лучше использовать DateTimeImmutable

Так же у вас метод getDailyBonus() переводится как "получить ежедневный бонус", соответственно не логично что он возвращает true ли false. Поэтому лучше сделать так: возвращает бонус, либо null/0

Худший ответ:
if (date('Y-m-d') > $this->datetime_last) { // если даты не совпали
    // то считаем тут всякую всячину
    return true;
}
Вопрос: Как запретить отправку формы, если хотя бы одно поле не заполнено?

Лучший ответ:
Вешаешь обработчик на событие sumbit. 
Добавляешь   evt.preventDefault(), чтобы остановить отправку формы.
Делаешь валидацию и оповещение пользователя (как пример alert).
Отправляешь формы через js (this.submit()).const form = document.querySelector('#form');
const email = document.querySelector('#email');
const name = document.querySelector('#name');
form.addEventListener('submit', function(evt) {
  evt.preventDefault();
  if(!name.value) {
    alert('Поле имя не заполнено');
    return;
  }
  
  if(!email.value) {
    alert('Поле email не заполнено');
    return;
  }
  
  this.submit();
});

Худший ответ:
Например вот такsnippet