Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как узнать чьи NS сервера?

Лучший ответ:
Домен принадлежит частному лицу.
Регистратор REGTIME-RU, связаться с владельцем DNS-сервера можно тут.IP-адреса принадлежат JSC "Informtehtrans".
Бороться с этим путем переписки не имеет смысла. Без решения суда никто не будет ничего делать, особенно если дороги приведут к западным компаниям.
Попробуйте написать в Яндекс и Google, возможно они отреагируют и исключат краденные сайты из поиска.

Худший ответ:
В стране, где не уважают имущественные права, защищать свои интеллектуальные права бессмысленноman whois
Вопрос: Хороший reset для css?

Лучший ответ:
normalize.css хороший и обновляемый

Худший ответ:
16 вариантов для кругозора
Вопрос: С чего начать изучение баз данных ,MySQL и SQL?

Лучший ответ:
Не так давно встала задача обучить человека SQL. www.sql-ex.ru оказался переполненным лишней (?) информацией. Пришлось самому написать очень сжатый курс по SQL. Там только самое необходимое чтобы научиться писать любые запросы на выборку данных.
Если вам поможет, буду рад.

Худший ответ:
Начать с сайта www.sql-ex.ru
Ссылка по теме: https://dou.ua/forums/topic/13200/
Вопрос: Как отправить данные с формы и получить ответ ajax?

Лучший ответ:
success: function(result) {
                $('.someClass').html(result); // выводим тег с определенным класс
                console.log(result); // выводим в консоль, что бы просто посмотреть что приходит и в каком виде
            },

Худший ответ:
<form method="post" action="/form.php">
   <input type="text" name="msg" value="message">
   <input type="submit">
</form>


<script>
$(document).ready(function() {

    $('form').submit(function(event) {
        event.preventDefault();

        $.ajax({
            type: $(this).attr('method'),
            url: $(this).attr('action'),
            data: $(this).serialize(),
            cache: false,
            processData: false,
            success: function(result) {
				// Ессно, поломает документ. Так, для наглядности
               document.write(result);
            },
        });
    });
});
</script>
Вопрос: Как правильно составить тернарный оператор?

Лучший ответ:
{{ $currentRoute == 'home'  ? 'class=active' : '' }} (без кавычек в названии класса).
Но советую писать так: class="{{ $currentRoute == 'home'  ? 'active' : null }}" - так будет проще добавить еще один класс в будущем, если что.

Худший ответ:
{{ $currentRoute == 'home'  ? 'class=active' : '' }} (без кавычек в названии класса).
Но советую писать так: class="{{ $currentRoute == 'home'  ? 'active' : null }}" - так будет проще добавить еще один класс в будущем, если что.
Вопрос: Как вытащить id видео ссылки YouTube?

Лучший ответ:
Я использую такую конструкцию. Парсит все варианты адресов if (preg_match("/^((https?:\/\/)?(w{0,3}\.)?youtu(\.be|(be|be-nocookie)\.\w{2,3}\/))((watch\?v=|v|embed)?[\/]?(?P<video>[a-zA-Z0-9-_]{11}))/si", $link, $matches)) {
			return $matches['video'];
		}

Худший ответ:
Я использую вот такой хелпер:function getYoutubeID($link)
{
    preg_match('#(\.be/|/embed/|/v/|/watch\?v=)([A-Za-z0-9_-]{5,11})#', $link, $matches);
    if(isset($matches[2]) && $matches[2] != ''){
        return $matches[2];
    }
}
Вопрос: Как установить новую программу в Windows 10,чтобы старая программа не была задета,не была обновлена,все настройки остались в силе по старой программе?

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

Худший ответ:
Ещё можно воспользоваться другой учётной записью, но некоторые программы не умеют хранить настройки для каждой учётной отдельно, но некоторые программы (редкие) даже не дают выбирать папку установки.
И лучше использовать не целиком "контейнер с операционкой" в смысле виртуальную машину, а только "контейнер" для программы:
Sandboxie
shadowuser
Shadow Defender
Вопрос: Я сдалась... Getting unknown property: app\models\forms\SignupForm::name?

Лучший ответ:
Проблема в том, что где-то Ваш код обращается к свойству name объекта app\models\forms\SignupForm А его там нет. Если Вы посмотрите весь стек, а не его последнюю запись, то увидите где именно Вы к нему обращаетесь.
У меня есть идея что это<?= $form->field($model, 'name', ['inputOptions' => ['class' => 'form-control', 'id' => 'name']])->textInput(['placeholder' => "Ваше имя"])->label(false); ?>
Происходит это видимо из-за того, что в экшене при рендереreturn $this->render('index', [
            'model' => $model,
        ]);
Вы в $model имеете не ContactForm, как Вы ожидаете, а SignupForm. Так как $model = new SignupForm();
Но не факт, в ошибке есть точные данные. Дайте полный стек вызовов из ошибки, если сами не можете найти.

Худший ответ:
второй блок кода<?= $form->field($model, 'name', ['inputOptions' => ['class' => 'form-control', 'id' => 'name']])->textInput(['placeholder' => "Ваше имя"])->label(false); ?>
видимо должно быть<?= $form->field($model, 'username', ['inputOptions' => ['class' => 'form-control', 'id' => 'name']])->textInput(['placeholder' => "Ваше имя"])->label(false); ?>
Или же если нет (так как код класса не приведен точно не могу сказать) - просто соответствовать полям модели SignupForm по наименованию
Ошибка просто говорит, что в классе SignupForm нет поля name, но первый блок кода пытается его вывести и ругается
Вопрос: Как сгенерировать css в нужную директорию (gulp)?

Лучший ответ:
Протестировать нет времени, но не думаю, что возникнут проблемы.var path = require('path'),
    gulp = require('gulp'),
    sass = require('gulp-sass'),
    rename = require('gulp-rename');

gulp.task('sass', function () {
    return gulp.src('**/sass/*.scss')
        .pipe(sass())
        .pipe(rename(function (filePath) {
            filePath.dirname = path.join(filePath.dirname, '../css/');
            return filePath;
        }))
        .pipe(gulp.dest('./'));
});

Худший ответ:
Может это делаеться  плагином специальным?
Вопрос: Python или JavaScript для первой работы?

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

Худший ответ:
Без JS и прочего CSS в веб-разработке ты все равно далеко не уедешь. это как факт. 
Тем паче если сам говоришь, что на Python работы в городе нет, то зачем искать деньги под фонарем, а не там, где потерял?...
вот нашумевшая статья о том, как паренек в провинциальном городе выучил Python
Вопрос: Где лучше разработать Desktop приложения на Win7, с дальнейшим переносом и на мобилки?

Лучший ответ:
C#  Win Если использовать фреймворк для кроссплатформенной разработки мобильных приложений Xamarin, где тоже используется C#, то охватите сразу Windows Phone  IOS и Android

Худший ответ:
Avalonia - перспективный и многообещающий фреймворк на C#, но пока еще в стадии пре-пре-пре альфы. Для домашних поделок должно хватить.
Xamarin forms - для мобильных платформ все готово, есть сторонние решения для разработки под десктопные платформы на разных стадиях разработки
Вопрос: JavaScript: как был этот код написали профессионалы?

Лучший ответ:
Я не про, сделал бы так:function replaceStars(collection) {
  var i, el, re = /^(\s*\*\s*){3}$/;
  for(i = 0; i<collection.length; i++) {
    el = collection[i];
    if( el.innerHTML.match(re)) {
      el.insertAdjacentHTML('afterend', '<hr>');
      el.parentNode.removeChild(el);
    }
  }
}

replaceStars(document.querySelectorAll('.entry-content p'));

Худший ответ:
Тот же верхний пример, только, немного более лаконично, на мой взгляд.function replaceStars(collection) {
  const re = /^(\s*\*\s*){3}$/;

	collection.forEach((elem) => {
    if(elem.innerHTML.match(re)) {
      elem.insertAdjacentHTML('afterend', '<hr>');
      elem.parentNode.removeChild(elem);
    }
  });
}

replaceStars(document.querySelectorAll('.entry-content p'));
Вопрос: Как залогировать температуру процессора?

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

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

Лучший ответ:
Можно, но сложно. Windows при установке затрет GRUB и поставит MBR, надо будет восстанавливать с LiveCD. Надо будет заранее отрезать кусок диска, иначе Windows будет считать linux fs странными разделами и требовать пустую область на диске.
Обычно удобнее поставить сначала Windows с нужным размером раздела и потом ставить ubuntu, тогда GRUB штатно заменит MBR и переформатирует свободное место для себя.

Худший ответ:
Я конечно не знаю что именно автору нужно из убунты но если терминал\демоны\сервисы то может всеже поставить вин10 а в ней опробовать штатную убунту?
Вопрос: Парсинг результата в Angular 5+, как правильно?

Лучший ответ:
Опишите Http Interceptor, который будет перехватывать ответ, проделывать манипуляции и отдавать уже в нужном вам формате. Примеры можно найти, загуглив: "angular 5 http interceptor response"

Худший ответ:
Когда будите работать над Http Interceptor, как посоветовал Ivan Stroykin, проработайте обработку ошибок как следует. Интерсептор не должен возвращать null в случае ошибки. Он должен делать return Observable.throw(error).
Еще одно общее наблюдение: старайтесь функции, не использующие this выносить в отдельный файл (не сервис). Т.е. делать как-то так:// get-data-response.ts
export function getDataResponse<T>(response: IResponse<T>) {
    if (response && response.data) {
      return response.data;
    } else {
      return null;
    }
  }
Так намного больше шансов на то что функция будет переиспользована где-то еще и не захламлена ненужными подробностями. Да и юнит-тестировать такой код гораздо проще.
Вопрос: Форматирование чисел на js. Как сделать пробелы в цене?

Лучший ответ:
$('.price').text((i, text) => {
  const [ price, currency ] = text.split(' ');
  return `${(+price).toLocaleString()} ${currency}`;
});
Ну или (что желательно), перед выводом пропускайте цену через toLocaleString.

Худший ответ:
можно воспользоваться функцией наподобие этой: function number_format( number, decimals, dec_point, thousands_sep ) {  // Format a number with grouped thousands
    var i, j, kw, kd, km;

    if( isNaN(decimals = Math.abs(decimals)) ){
        decimals = 2;
    }
    if( dec_point == undefined ){
        dec_point = ",";
    }
    if( thousands_sep == undefined ){
        thousands_sep = ".";
    }

    i = parseInt(number = (+number || 0).toFixed(decimals)) + "";

    if( (j = i.length) > 3 ){
        j = j % 3;
    } else{
        j = 0;
    }

    km = (j ? i.substr(0, j) + thousands_sep : "");
    kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
    kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");

    return km + kw + kd;
}
Вопрос: Как установить более одной reCaptcha на странице?

Лучший ответ:
Вы инициализируете капчу с помощью HTML, поэтому она рендерится всего один раз. Чтобы добавить их несколько на сайт, надо инициализировать капчу с помощью JavaScript.
Для начала, подключайте API таким образом:<script src="https://www.google.com/recaptcha/api.js?onload=recaptchaCallback&render=explicit" async defer></script>
Параметр render со значением explicit говорит, что капча будет инициализироваться не через HTML, а через JavaScript. А параметр onload содержит название JavaScript-функции, которая исполнится в момент загрузки страницы (в нашем случае это recaptchaCallback()).
Теперь, собственно, надо написать какой-то JavaScript. Выглядеть он будет примерно так:var feedbackCaptcha;
var authCaptcha;

function recaptchaCallback() {
	feedbackCaptcha = grecaptcha.render('feedback_captcha', {
		'sitekey' : 'ваш_site_key',
		'theme' : 'dark'
	});
	
	authCaptcha = grecaptcha.render('auth_captcha', {
		'sitekey' : 'ваш_site_key'
	});
}
Тут мы создаем функцию recaptchaCallback(), при вызове которой будут рендериться две капчи: одна в элементе #feedback_captcha, а вторая - в #auth_captcha. У первой капчи будет тёмная тема.
Разместим мы капчу на сайте примерно так:<form>
	<!-- тут какие-то поля для оставления отзыва о сайте -->
	<div id="feedback_captcha"></div>
</form>
<form>
	<!-- тут какие-то поля для авторизации -->
	<div id="auth_captcha"></div>
</form>
Для чего мы заключаем функции, которые рендерят капчу, в переменные? А нужно это для того, чтобы мы могли индивидуально для каждой капчи исполнять методы. Например, хорошо бы при каждой отправке AJAX-формы авторизации сбрасывать капчу. Сбрасывать мы будем ее так:grecaptcha.reset(authCaptcha)
Также почитайте документацию: developers.google.com/recaptcha/docs/display

Худший ответ:
Подскажите, пожалуйста, а как в таком случае сделать валидацию нескольких рекапч, если форма отправляется через ajax? Потому что если у меня несколько капч, то он в любом случае выдает ошибку  - вы не ввели капчу$("#form").on("submit", function() { //устанавливаем событие отправки для формы с id=form
            var form_data = $(this).serialize(); //собераем все данные из формы
			var captcha = grecaptcha.getResponse();
			if (!captcha.length) {
			    alert("Вы не ввели капчу");
			} else {
				alert("Сообщение отправлено");
            $.ajax({
            type: "POST", //Метод отправки
            url: "captcha.php", //путь до php фаила отправителя
            data: form_data,
            });
		};			
    });
Вопрос: Обязательно ли сайт содержит html файлы?

Лучший ответ:
это вместо html?
Сложно однозначно утверждать, не видя вашего проекта, но возможно. Только не "вместо", а "для". В динамических сайтах, php формирует html. Yii2 построен по принципу mcv (model-controller-view) и вероятно приведенные Вами файлы это view, если да, то в них содержится логика и html разметка.

Худший ответ:
Правьте. Мы не против.
Вопрос: Какое устройство купить для шифрования всего трафика?

Лучший ответ:
Покупаете VPS с размещением где-то вне юрисдикции тех от кого скрываете трафик, на нем поднимаете OpenVPN сервер, домой покупаете роутер(openwrt or ddwrt). Второй роутер втыкаете в первый и между вторым роутером и сервером поднимаете шифрованный канал. На сколько я знаю, чтакую схему можно ломать только взломом сервера(с безопасностью на нем поработайте, порты поскрывайте, доступ по сертификатам и т.д.) либо взломом роутера. (Вариант с паяльником не рассматриваю)

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

Лучший ответ:
Я думаю, однозначного ответа тут нет - у каждого своя мерка. Но мне нижней планкой видится следующее:
- CSS-локаторы, XPATH 
- основные методы Selenium Webdriver
- ожидания в selenium
- понимание, что такое Page Object паттерн
Если не на автоматизатора идете, то для джуника должно пройти. 
Ну и, соответственно, какой-нибудь ЯП, чаще всего предпочтительнее java.

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

Лучший ответ:
Собственно сам вопрос: почему в принципе топовый ЦП не поддерживает частоту в 4133МГЦ ?
А почему должен?
Эти вещи создавались независимо, разными фирмами по разным принципам в разное время.
Ну вот вышла более быстрая память, а переделать процессор, чтобы ее поддерживал - это очень большой труд и огромные затраты времени, то есть в итоге огромные финансовые затраты. Которые не окупятся.
Никто не будет этого делать под каждую очередную чуть-чуть разогнанную модель оперативной памяти.

Худший ответ:
Частота ОЗУ, указанная в характеристиках - это максимальная стабильная частота работы. То есть, если гнать выше, то производитель уже не гарантирует что всё будет работать как надо.
Вопрос: Как найти и удалить с сайта чужой скрипт?

Лучший ответ:
Первое - ищете файлы с самыми свежими датами. Когда вы последний раз что-то меняли на сайте - вам виднее.
Ищутся такие файлы в Linux простейшим find.
По ним уже разбираете - заражены они или вовсе не ваши и подлежат удалению.
Главная задача у вас - не удалить то, что вам навалили через бэкдор (все эти скрипты и баннеры), а найти сам бэкдор и обезвредить. Иначе завтра же вся эта хрень снова будет на сайте. В идеале - найти, как этот бэкдор появился на сайте вообще. И устранить эту возможность.

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

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

Худший ответ:
Какие есть подводные камни?Условия участия
Для того чтобы поучаствовать в ППА, нужно обладать одним из следующих значков — «Автор», «Звезда», «Легенда», «Старожил».Правила и Значки (бейджи).Видимые "камни":
1. Чтобы получить нужный значок, нужно постить много и бесплатно.
2. И, притом, что всё это абсолютно без гарантий и двухсторонних проверок начислений/списаний баллов/голосов.
ИМХО: Свой блог вести - надёжнее.
Вопрос: Создание сайта с функционалом CRM-системы?

Лучший ответ:
Для клиента поставьте  Sugar CRM (теперь Suite CRM) на отдельном компьютере. Если оно то что ему подходит по функционалу тогда можно думать дальше что делать. Самому писать или готовое доделывать.

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

Лучший ответ:
Маленький бенчмарк:wget -qO- bench.sh | bash

Худший ответ:
ОЗУ: cat /proc/meminfo
CPU: cat /proc/cpuinfo
HDD: fdisk -l
Вопрос: Как сравнить с Enter?

Лучший ответ:
Не надо сравнивать с Enter.
Надо обрезать пробельные символы (пробел, табы, символы новой строки и "перевода каретки") с краёв полученного, и оценивать размер полученной строки. В дальнейшем - работать именно с обрезанной строкой.

Худший ответ:
Можно так#include<iostream>
#include<string>

using namespace std;

int main()
{
  setlocale(LC_ALL, "Russian");
  system("chcp 1251 > null");
  string s;
  cout << "Введите имя: ";
  while(getline(cin, s))
  {
    if(s.empty())
    {
      cout << "Вы не ввели имя!\n"
           << "Введите имя: ";
      continue;
    }
    break;
  }
  cout << "\nВаше имя: " << s
       << "\nНажмите любую клавишу...";
  cin.get();
}
Если правильнее, как пишет Артем Спиридонов,Тогда возможно так (Windows)#include<iostream>
#include<string>
#include<algorithm>
#include<cctype>
#include<clocale>

using namespace std;

/* functions from https://code-examples.net/ru/q/34ef7 */
// trim from start (in place)
static inline void ltrim(string &s)
{
  s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](const auto ch) {
    return !isspace(ch);
  }));
}

// trim from end (in place)
static inline void rtrim(string &s)
{
  s.erase(std::find_if(s.rbegin(), s.rend(), [](const auto ch) {
    return !isspace(ch);
  }).base(), s.end());
}

// trim from both ends (in place)
static inline void trim(string &s)
{
  ltrim(s);
  rtrim(s);
}

int main()
{
  setlocale(LC_ALL, "Russian");
  system("chcp 1251 > null");
  string s;
  cout << "Введите имя: ";
  while(getline(cin, s))
  {
    //upd
    replace_if(s.begin(), s.end(), [](const auto c){return iscntrl(c); }, ' ');
    trim(s);
    //end upd

    if(s.empty())
    {
      cout << "Вы не ввели имя!\n"
           << "Введите имя: ";
      continue;
    }
    break;
  }
  cout << "\nВаше имя: " << s
       << "\nНажмите любую клавишу...";
  cin.get();
}
Вопрос: Подтверждение пароля через сканер отпечатка пальцем?

Лучший ответ:
В рамках нативного приложения - легко.
https://developer.apple.com/documentation/localaut...
В рамках web браузера - никак.

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

Лучший ответ:
да, я не против, думаю коллеги тоже

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

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

Худший ответ:
Я не знаю насчёт bash, но вам, наверное, пора научиться делать Python-пакеты при помощи pip и setuptools. Вот хороший гайд, можете пропустить часть “Uploading the distribution archives” и далее, если не хотите делать ваши пакеты общедоступными. И не забывайте про pip install -e.
Вопрос: Нормально делать однофайловую сборку проекта?

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

Худший ответ:
Если проект использует серверный рендеринг для того же Реакта, то других путей, кроме как сборку Вебпаком, не вижу - нода не знает про JSX нативно.
Вопрос: Верстка сайдабаров и контента CSS на разных экранах?

Лучший ответ:
Используйте flexbox

Худший ответ:
через relative и сдвиг. как то так https://jsfiddle.net/iBird/2b1pp8oc/
Вопрос: Курсы Geek Brains frontend developer стоит ли обучаться?

Лучший ответ:
Не стоит. Читайте книги (Большая книга CSS, флэнаган, lean.javascript.ru , you dont know js и.т.д.), и практикуйтесь много. На курсы зря потратите деньги и время.

Худший ответ:
Как успехи?)
Вопрос: Как не вызвать функцию автоматически?

Лучший ответ:
потому что передаётся значение выполнения функции roar. 
ваш вариантfunction roar(word) {
  alert(word);
}
document.querySelector(".north").addEventListener("click", function(){ roar('hello'); });
то есть передаётся указатель на функцию (сама сущность, объект), а не форма её вызова

Худший ответ:
function roar(event) {
   console.log(event)
}
document.querySelector(".north").addEventListener("click", roar);
Так в roar передастся объект события. И функция будет вызвана только по клику.
P.S.: очень вопрос меня волнует. Что происходит в голове у людей, которые используют вместо наречия "автоматически" прилагательное "автоматический"? Это какой-то особенный ген, лишняя хромосома? В чем прикол этого?