pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Что предпочтительнее: наследование или обёртка?

Лучший ответ: Парсер в данном случае просто интерфейс. Поскольку Python - язык с динамической типизацией, то наследование или обертки не требуются вовсе. Просто все конкретные парсеры должны реализовать подразумеваемый интерфейс:class CsvParser:
    def parse(self, file_name):

class XlsParser:
    def parse(self, file_name);
Экземпляры конкретных парсеров, по мере их появления складываем в обычный словарь, где ключ - это расширение файла, под которое заточен парсер.{ 'csv': CsvParser(), 'xls': XlsParser(), 'xml': XmlParser() }
В конечном итоге можно реализовать поставщик парсеров, который будет выбирать подходящий парсер из вышеозначенного словаря, используя расширение имени файла:class ParserProvider:
        def provide(file_name):

Худший ответ: Есть хорошее правило. 
Если  B является A то это наследование
иначе агрегация
Банально на школьных примерах, стол является предметом мебели, но в него входят столешница, ножки и т.д
А что касается твоего примера. Я бы предпочел вариант на базе 2 но с фабричным/реестровым получением парсера по типу файла.
Вопрос: Как использовать fontawesome?

Лучший ответ: Добавляйте класс-префикс, это если у вас четвертая версия Font Awesome
Если пятая, то меняйте font weight

Худший ответ: ну  так  там  идет два  класса  первый  может  быть  fa fas  fab  надо смотреть на  их сайте  какая  иконка  конкретно обозначается
Вопрос: Можно ли изменить значение переменной php при клике на кнопку без перезагрузки страницы?

Лучший ответ: Поступил запрос от браузера -> запущен php-скрипт -> скрипт отработал -> выдал ответ браузеру -> выполнение скрипта завершилось
Вот жизненный цикл любого php-скрипта. После завершения выполнения скрипта все переменные (и их значения) уничтожаются. Т.е. между запросами не сохраняется ничего - нечего увеличивать. 
Однако, Вы можете, при загрузке страницы, забирать значение $kol ява-скриптом, по нажатии на кнопку, ява-скриптом же, увеличивать сохраненное значение, передавать в функцию на php (или сразу считать ява-скриптом же эту функцию, если возможно) и в html ява-скриптом, опять же, вывести результат.

Худший ответ: Да, jquery ajax, например, можно использовать.<input type="button" id="magicbtn" />
<div id="magichtml"></div>
<script>
$(document).on("click", "#magicbtn", function() {

$.ajax({
  url: "/ajax/magic.php"
}).done(function(result) {
  $( "#magichtml").html(result);
});
});
В magic.php любой код, в т.ч изменение переменной,
Вопрос: Ввоз квадрокоптера и РКН, реально ли получить разрешение?

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

Худший ответ: К сожалению придется получить разрешение, поскольку именно Air 2 нет в разрешенном реесте. Есть только первая модель, искать по модели %Mavic%. Ну а те что в России не совсем легальны.
Вопрос: Можно ли на Upwork переписываться на русском?

Лучший ответ: Это не запрещено, но в случае конфликта, вряд ли вас рассудит UpWork. С другой стороны, не запрещено и другие мессенжеры использовать.

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

Лучший ответ: Comment/Exceptions/CommentException.php
Comment/Commands/AddComment.php
Post/Exceptions/AddPostException.php
Post/Commands/AddPost.php
-в случае если вы делите по доменам функционал
в любом случае это отдельный каталог Exceptions и отдельный класс

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

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

Худший ответ: Если есть идея - делай ее сам.
Если будет получаться - народ подтянется.
Вопрос: Чем отличается обявление int* a от int *a в Си?

Лучший ответ: Ни чем не отличается. Пробельные символы допустимо ставить в любом месте, где они не разрывают ключевое слово, идентификатор или константу. Все варианты ниже полностью эквивалентны:int*a;
int* a;
int *a;
int * a;
Но есть некоторая тонкость. Если посмотреть на синтаксис объявления нескольких переменных:int * a, * b, c, * d, e; // a, b и d - указатели, c и e - числа
то будет видно, что "звездочка" является скорее модификатором переменной, чем модификатором типа. Чтобы подчеркнуть этот факт, рекомендуется всегда писать "звездочку" около переменной. Такая привычка позволяет избежать глупых ошибок:int *a, *b; // нормально
int* a, b;  // Ошибка: b кажется указателем, но на самом деле - число.А синтаксис у C простой.

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

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

Худший ответ: А что такого сложного в регистрах?
Все просто, в Си вы можете создать переменную разного типа - строка, число, кортеж, массив, флоат, целочисленное число и так далее.
А в ассемблере есть только байт, слово, двойное слово - все кратно байту.
В Си вы можете создать сколько угодно произвольных переменных - a, b, x, y, counter, mysupervariable и хранить в них значения
У процессора нет возможности создавать произвольные переменные. Но есть железно зашитые прямо в процессоре регистры.
И инструкции процессора умеют с регистрами работать.
Некоторые регистры активно используются для хранения промежуточных значений.
Например в Си вы можетеx = 3 * 6
А в ассемблере нельзяячейка_памяти_по_адресу(100) = 3*6
Нет такой инструкции, не предусмотрена архитектурой процессора.
Зато можно занести в регистр AX = 3, в регистор BX = 6 и вызвать инструкцию процессора - умножь значение AX на BX, значение автоматически поместится в AX. mov  ax, 3
mov  cx, 6
mul  cx
Результат будет в регистре AX. Затем второй инструкцией можно будет занести результат из AX в ячейку памяти 100.mov [100h], ax
Вот и все.
Вопрос: Где взять документацию по натяжке шаблона на wp?

Лучший ответ: как интегрировать html шаблон в wordpressUPD:
На русскомСоздание тем
Как натянуть свой шаблон на Wordpress движок?
Натяжка верстки на Wordpress и перенос сайта на WP?
Как натянуть свою верстку на Wordpress?

Худший ответ: Ищи тут - https://coursehunters.net/cms/wordpress
Вопрос: Почему после установки win 7 64-битка ПК стал лагать?

Лучший ответ: Драйвера на видеокарту установите.

Худший ответ: Надо было оставить ОС 32 бита и на неё накатить fix128 с рутрекера, чтобы 4-128 ГБ ОЗУ вместо 2,75...3,5ГБ определилось (стало бы 36 бит через PAE).
Вопрос: Сколько одновременных подключений возможны к OpenVPN-серверу?

Лучший ответ: 1. Если север предназначен только для роли openvpn, то виртуалки дадут только оверхед. 2. Количество пользователей совсем не показатель, их может быть сколь угодно. Вы упретесь либо в ширину канала (медного или оптического порта), либо в CPU при шифровании. Если же не упретесь, то пользователей хоть миллион.

Худший ответ: OpenVPN не предназначена для большего количества клиентов. Лучше смотреть в сторону ipsec/аппаратной реализации.
Вопрос: Как запретить выполнять запросы к определенному сайту на сервере?

Лучший ответ: Заблокируйте запросы на этот домен в iptables, инструкций полно.

Худший ответ: Все как всегда, ничего не меняется)
Вопрос: Почему ошибки при переходе на php 7?

Лучший ответ: заменитьfunction pagination() {
на function __construct() {
php.net/manual/ru/language.oop5.decon.php

Худший ответ: Нужер всего лишь заменить название метода совпадающее с названием класса (pagination) на "__construct"
Вопрос: С помощью какой программы можно конвертировать asm в com?

Лучший ответ: Ты не поверишь - с помощью COM-пилятора и линкера. 
COM-пилятору даёшь указание COM-пилировать в tiny-модель, и всё получается.

Худший ответ: fasm
https://flatassembler.net/download.php

tasm
поищите

masm
тоже ищется в интернете или идет в составе PlatformSDK
может понадобиться если пишете windows программы
Вопрос: Как сделать фабрику с параметрами?

Лучший ответ: думаю не много не так реализовали, вот если:$driver = new XLSXExporter();
$exporter = new DataExporter($driver);

echo $exporter->getResult();

class DataExporter{
protected $driver;
function __construct(DriverExporterInterface $driver){
$this->driver = $driver;
}
function getResult(){
return $this->driver->process();
}
}
interface DriverExporterInterface{
public function process();
}
получается:if( $format == 'XLSX' ) {
    $driver = new XLSXExporter();
    $driver->setColumnWidth( 0, 100 );
    $driver->setColumnWidth( 1, 30 );
    $driver->setColumnWidth( 2, 60 );
  }
else{
$driver = new EmptyExporter();
}

$exporter = new DataExporter($driver);
$exporter->setData( $data );

echo $exporter->getResult();

Худший ответ: Для решение этой задачи стоит использовать не фабрику а DI-контейнер
Вопрос: Редизайн/концепция и авторское право?

Лучший ответ: Всё норм. Незаконно: если ты сделал сайт копию зары, и продаешь с него одежду притворясь брендом Зары, а на самом деле делая подделку.
Незаконно если ты сделал копию Нью-Йорк Тайм,  и делаешь сайт, притворяясь ими.
А так, это лишь фантазия, опыты, практика. Если нет прямого оскорбления, клеветы и тп, можно экспериментировать и выставлять что угодно. Иначе бы даже любое обсуждение брендов, и упоминание вслух было бы незаконно.
Короче говоря не путайте. 
Максимум к чему могут напрямую придраться, это например к использованию фото/видео материалов. Но снова таки, здесь они тоже как поддержка оригинального бренда, нет особых проблем, тк бренду, обычно, это не выгодно.
Хотя, есть случаи с Нинтендо, которая в свое время(и вроде и сейчас?) неадекватно относилась к стримерам игр на ютубе. В результате обзоров и летсплеев было ничтожно мало, везде приходила Нинтендо со своим копирайтом.
В общем резюме:
Делать свои версии: абсолютно обычная практика, все это делают, почти всегда бренд на это никак не реагирует (кроме случаев отрицательного пиара). Могут попросить удалить/заменить копирайченное фото/видео. Но обычно, на подобных площадках, это не делается.
Конечно, если это коммерческий сайт и тп. И хочется пофантазировать на счёт своего виденье бренда(в корп блоге дизайн студии например), то асеты использовать свои, либо брать по лицензии.

Худший ответ: Незаконно. А те, кто этим занимаются, не только «переступают черту закона об авторском праве», но и показывают собственную профессиональную бездарность.

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

Лучший ответ: А расширение точно css а может style.css.txt ?

Худший ответ: А расширение точно css а может style.css.txt ?
Вопрос: Какую систему комментариев лучше использовать на сайте?

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

Худший ответ: Лучше свою с защитой от спама. Только не дискас (в индекс не попадают комментарии, лишь в виде исключения и достаточно редко). Аналогично с ВК и другими.
Вопрос: Как посмотреть когда переменная находится в файле подкачки а когда в оперативной памяти?

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

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

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

Худший ответ: Запретите вход по паролю или используйте очень сложный пароль. Поставьте fail2ban/ Если паранойя еще не отпустила, то поменяйте номер порта. 
Этого более, чем достаточно.
Вопрос: MySql ошибка — mysqli_query() expects parameter 1?

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

Худший ответ: Похоже переменная $connection пустая. 
Вот тут первый параметр он пишет что NULL, то есть вообще ничего: mysqli_query($connection, 'SET NAMES utf8');
Так что смотри где ошибка в первой строке. И вообще, $config это у тебя массив, а там данные то есть вообще?
Вопрос: В какую сферу лучше выбрать?

Лучший ответ: Стоит ли вообще идти в IT? Слышал что в офисах сейчас не лучше, присутствует не везде но есть кумовство, да и тем более есть организации которые сами зарегистрированы на Upwork и берут от туда проекты.

Кумовство страшное, работают люди за ломтик хлеба и три листика салата. Так что одумайся пока еще не поздно.

Худший ответ: php и верстка-спрос большой, но предложение еще больше. = работа с постоянным демпингом. Конечно начать можно с этого, но просто как старт. Стоит идти, если тебе это нравится) Но выбирай технологию посложнее, js например. Чем меньше предложение, тем выше расценки и шанс получить заказ. Для начала можно поработать в офисе или на русских биржах. А когда наработаешь портфолио+навыки общения с заказчиком, иди на апворк
Вопрос: Нужно ли удалять коллекции? И как это правильно сделать?

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

Худший ответ: Как правило, не надо - JVM сама почистит память. Но есть случаи, когда коллекции содержат объекты с ресурсами (текстуры, звук), они должны иметь метод типа dispose(). Вот вызвать их надо не забыть.
Вопрос: Почему наши топ веб-студии не считают Wordpress серьезной CMS, а американские топовые студии делают на нем 50% сайтов?

Лучший ответ: К нам приезжали представители из топовой студии нашего города и вполне предлагали WP.
Кто что говорит вообще не важно, каждый хвалит своё болото. Нашим выгоднее продать вам битрикс за 75 а потом ещё каждый год по 25 за обновление брать.

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

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

Худший ответ: Квадрат это частный случай прямоугольника. Точка. Можно забыть слово квадрат и говорить всегда прямоугольник, смысл не изменится. Для создания квадрата требуется лишь один параметр, длинна грани. Для создания прямоугольника требуется два параметра, длина грани А и грани Б. Задав прямоугольнику два одинаковых параметра, получится квадрат. Если есть уже прямоугольник, то для него можно сделать обертку в виде квадрата с одним параметром и создавать прямоугольники, и не надо писать лишнее.class Figure {
  constructor(edges: number[], angles: number[]) {
    //  ...
  }
}

class Rectangle extends Figure {
  constructor(x: number, y: number) {
    super([x, y, x, y], [90, 90, 90, 90]);
  }
}

class Square extends Rectangle {
  constructor(x: number) {
    super(x, x);
  }
}
Вопрос: Не выжжена ли ниша заработок в интернете?

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

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

Лучший ответ: Тут зависит от того, как именно вы используете грид. Желательно выкладывать фрагмент кода.

Обычно с гридом используют DataSource, к примеру биндят в него dataSet, который содержит в себе Tables.

Выглядит это так:

dataGridView1.DataSource = dataSet.Tables[0]; 
(на месте "0" может быть и "Название таблицы") 

В таком случае нам потребуется добавлять строку в таблицу Tables[0] 

dataSet.Tables[0].Rows.Add(); 
dataSet.Tables[0].Rows[dataSet.Tables[0].Rows.Count - 1][int номер ячейки, куда добавить string] = receivedData;
Здесь нужно пояснить, что строки и ячейки в dataSet.Tables индексируются как .Rows[int индекс строки][int индекс столбца/ячейки (Cells)], и для того, что бы узнать, какая наша строка добавилась (а добавилась она в конец), мы, узнав количество Rows.Count строк, вычитаем из Count 1, т.к. индексирование в списках, массивах и т.д. начинается с 0, а в Count не может быть 0, если есть хоть одна строка, то Count уже будет равен 1.

Может потребоваться обновление грида:
dataGridView1.Update();

Худший ответ: У дата грида есть датасорс вызываете по моему ds.Rows.Add(); в возвращаемом объекте заполняете столбцы и вызываете привязку данных. Если не разберётесь позже напишу.
Вопрос: Как разобраться во всем нагромождении фреймворков и библиотек для JS?

Лучший ответ: Фреймворки сделаны для ускорения работы.
Что-бы ими пользоваться, для начала надо уметь решать задачи на чистом JS.
Без сомнения надо уметь работать с асинхронностью, понимать ее, понимать контекст (this) JS на ES5 и ES6 (в плане стрелочной функции отсылка), промисы и колбеки, замыкания в этом языке.
jQuery - это даже не фреймворк по сути, это библиотека, и изучение не обсуждается, львиная доля кода в интернете написана на jQuery, ну и если на ES6 решили вопросы быстрой выборки и еще какие-то нюансы в чем нужда использования jQuery, то циклы так и остались, которые в jQuery реализованы внутри библиотеки.
Что касается Angular/React/Vue - лучше всего будет хотя-бы на одном написать что-нибудь, а у остальных понять логику, и с этими знаниями можно пробовать устраиваться. На каком писать, можно выбрать, исходя из рынка на данный момент в данном городе.

Худший ответ: Сначала изучите основы JS. Далее, node.js это НЕ фреймворк, это движок как для серверной, так и для клиентской части приложений. На сегодняшний день лидируют React.js от Фейсбук и Angular от Гугл. Они примерно одинаковые. Выбор за вами. Я выбрал React js , так как он мне нужен на работе.
Если вы выбрали фреймворк, jQuery вам не нужен. Он даже не нужен и без фреймворка, современные браузеры уже нативной научились делать то, что делал он.
Вопрос: Футер закреплен на заднем плане. Как сделать?

Лучший ответ: Учитесь анализировать код в панели разработчика.
Сделать такой футер можно примерно так:.content {
  margin-bottom: 400px;
}

.footer {
   position: fixed;
   bottom: 0;
   left: 0;
   right: 0;
   height: 400px;
   z-index: -1;
}Демо.

Худший ответ: Открываете сайт нажимаете ctrl shift I и начинаете исследовать нужный вам блок
Эффект создаётся при помощи position : fixed и отрицательного z-index;
Пример кода вам дали выше.
Вопрос: Кто работает на upwork?

Лучший ответ: Ну не было теперь есть, что в этом такого то?
Чё теперь на каждую мелкую фишку в любом сервисе создать вопрос на тостере?

Худший ответ: лайк справа, слева дизлайк
Вопрос: Почему полностью не устанавливается Linux?

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

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

Лучший ответ: отследите лучше откуда js данные качает
и качайте напрямую (не забыв замаскироваться под браузер естественно)

Худший ответ: Погоду не нужно парсить для этого есть API https://openweathermap.org/api. Ещё для python есть готовая библиотека https://github.com/csparpa/pyowm
На requests можно сделать так, только надо зарегистрироваться чтобы получить APIKEY.
Поиск города:import requests
s_city = "Petersburg,RU"
city_id = 0
appid = "APIKEY полученный после регистрации по ссылке https://home.openweathermap.org/users/sign_up"
try:
    res = requests.get("http://api.openweathermap.org/data/2.5/find",
                 params={'q': s_city, 'type': 'like', 'units': 'metric', 'APPID': appid})
    data = res.json()
    cities = ["{} ({})".format(d['name'], d['sys']['country'])
              for d in data['list']]
    print("city:", cities)
    city_id = data['list'][0]['id']
    print('city_id=', city_id)
except Exception as e:
    print("Exception (find):", e)
    pass
Текущая погода :try:
    res = requests.get("http://api.openweathermap.org/data/2.5/weather",
                 params={'id': city_id, 'units': 'metric', 'lang': 'ru', 'APPID': appid})
    data = res.json()
    print("conditions:", data['weather'][0]['description'])
    print("temp:", data['main']['temp'])
    print("temp_min:", data['main']['temp_min'])
    print("temp_max:", data['main']['temp_max'])
except Exception as e:
    print("Exception (weather):", e)
    pass
Прогноз на 5 дней:try:
    res = requests.get("http://api.openweathermap.org/data/2.5/forecast",
                           params={'id': city_id, 'units': 'metric', 'lang': 'ru', 'APPID': appid})
    data = res.json()
    for i in data['list']:
    print( i['dt_txt'], '{0:+3.0f}'.format(i['main']['temp']), i['weather'][0]['description'] )
except Exception as e:
    print("Exception (forecast):", e)
    pass
Вопрос: Компьютер не включается. В чём дело?

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

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

Лучший ответ: Проблема, скорее всего, в вашей цветопередаче монитора. Попробуйте со своего телефона зайти и посмотреть. Такой цвет не достигается даже при нескольких наложениях одного и того же бэкграунда: https://jsfiddle.net/c3m1kjx0/10/

Худший ответ: Проблема, скорее всего, в вашей цветопередаче монитора. Попробуйте со своего телефона зайти и посмотреть. Такой цвет не достигается даже при нескольких наложениях одного и того же бэкграунда: https://jsfiddle.net/c3m1kjx0/10/
Вопрос: Почему ПК многократно зависает при запуске?

Лучший ответ: Одолжить у друга аналогичный комп и тупо менять:
Блок питания
Память
Видеокарту (или вынуть, если возможно, и остаться на интегрированной)
Подкинуть жесткий диск или ССД и поставить на него винду
Нет запчастей? В сервис на тест и ремонт.

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

Лучший ответ: У вас обмотка реле висит прямо на ногах контроллера? Это не правильно, конечно.
Даже очень маленькое реле имеет довольно не маленький ток срабатывания и удержания. Куда больше, чем может отдать контроллер. А также большую индукцию, которая при снятии напряжения даёт выброс.
Между обмоткой реле и выходом контроллера необходим силовой ключ на транзисторе. 
А выброс тока при отпускании реле можно гасить, например, на диоде включённом параллельно обмотке. 
Схемы можно погуглить по запросу "подключение реле к микроконтроллеру".

Худший ответ: реле через ключ подключите
мега банально не рассчитана на такую нагрузку