pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как передать файл пользователю с удаленного сервера на php?

Лучший ответ: Делается это все просто, кидаем заголовки что это файл, сами забираем удалённый файл и отдаёмob_get_level() && ob_end_clean();
header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
header('Content-Type: application/force-download');
header('Content-Description: inline; File Transfer');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="' . $name . '";', false);
header('Content-Length: ' . $len);

$upload = new SplFileObject($url, 'rb');
while (!$upload->eof()) {
    echo($upload->fgets());
}


flush();
exit;

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

Лучший ответ: Добавьте в functions.php код.remove_action( 'add_option_new_admin_email', 'update_option_new_admin_email' );
remove_action( 'update_option_new_admin_email', 'update_option_new_admin_email' );

/**
 * Disable the confirmation notices when an administrator
 * changes their email address.
 *
 * @see http://codex.wordpress.com/Function_Reference/update_option_new_admin_email
 */
function wpdocs_update_option_new_admin_email( $old_value, $value ) {

    update_option( 'admin_email', $value );
}
add_action( 'add_option_new_admin_email', 'wpdocs_update_option_new_admin_email', 10, 2 );
add_action( 'update_option_new_admin_email', 'wpdocs_update_option_new_admin_email', 10, 2 );
Смените почту и удалите код.

Худший ответ: Пока что решил проблему таким способом:
1) Сменил E-mail адрес на свой
2) Подтвердил его по ссылке в письме
3) Плагином Better Search Replace сделал замену в БД своего E-mail адреса на нужный
Всё работает теперь. Информация в профиле администратора успешно обновляется без сообщения: "Извините, этот адрес e-mail уже используется!". Может у меня была какая-то проблема. Проверял повторно на чистом WordPress'е всё было нормально с первой замены.
Вопрос: Как найти и заменить одни сочетания букв и цифр в html-документе на другие?

Лучший ответ: Регулярные выражения и текстовый редактор.

Худший ответ: code_\w*
Можете здесь потренироваться
Вопрос: Как правильно строить архитектуру PHP сайта?

Лучший ответ: я останавливаюсь на простой ошибке и сижу над ней полдня, как это исправить? Варианта 3:
1. Вы не понимаете английский язык
2. Вы не понимаете терминов, выводящихся в ошибке из-за слабых знаний языка.
3. Вы не понимаете логики работы своего же кода.
Нужно устранять эти "пробелы" через понимание и запоминание.Вот памятка о том, как лучше делать, чтобы не путаться.

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

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

Худший ответ: $50-60к
Вопрос: Список популярных языков по уровню порога вхождения?

Лучший ответ: Самый легкий язык это англ+гугл, ну и вот, что он выдал посложнее)
https://www.quora.com/What-is-a-list-of-programmin...
а вот еще
https://www.reddit.com/r/learnprogramming/comments...
Конкретного мнения как "утверждения" нет и не будет. Кому-то 1 определенный язык может даваться труднее, чем другой и наоборот для другого человека. Это как споры, с какого языка начинать? Если бы я вернул время назад, то начал бы сразу с плюсов.

Худший ответ: Берите react-native и не мучайтесь.
Вопрос: Как открыть шлагбаум?

Лучший ответ: Надо разбираться, есть ли у шлагбаума внешний интерфейс и какой он.
-у него может быть последовательный интерфейс для интеграции в СКУД
-у него может быть контактный интерфейс "открыть - закрыть"
-интерфейс по радио, с использованием брелка
-интерфейса может не быть или он может быть недоступен.
Я думаю, вас интересует вариант с брелком.
Вы можете разобрать брелок и подключиться к его кнопкам.
Либо отреверсить радиопротокол. Тут понадобятся навыки использования SDR.
Задача решаема полностью.

Худший ответ: Малина тут избыточна, как питание ядерным реактором наручных часов. Есть Arduino и тысячи примеров, в.ч. про шлагбаумы.
Если хотите именно JS, то есть Espruino.
Вопрос: Почему после удаления строки из базы данных и добавления новой автоинкремент добавляет единицу как будто ничего не удалялось?

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

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

Лучший ответ: Посмотри книги Мартина Грабера (Грубера иногда в русской транскрипции)

Худший ответ: Сделать свой проект с хорошей БД, книги без практики не дают понимания как всё работает и не запоминается из них ничего
Вопрос: Поведение переменных в области глобального объекта отличается от поведения в созданных объектах?

Лучший ответ: Покопал еще вопрос и нашел очень годный разбор на стаке:
stackoverflow.com/questions/4862193/difference-bet...
если коротко - переменные из нового стандарта (заданные через let, const) ведут себя порядочно, а старые варианты прилипают к глобальному объекту как свойства (0_o)

Худший ответ: Поведение разное, потому что разные контексты исполнения. Если хочется поскрипеть мозгами, можно почитать спецификацию www.ecma-international.org/ecma-262/7.0/#sec-execu... или статьи на dmitrysoshnikov.com/category/ecmascript 
Кстати переменные, объявленные в глобальном контексте через let и const в свойства глобального объекта не записываются.
Вопрос: Как мне разобраться с сортировкой json?

Лучший ответ: В данном случае виноват не backend и laravel, а ваш пробел в азах js, без обид))
Проведите эксперимент и выполните код:var obj = {2:"два", 1:"один", 10:"десять", 0:"нуль"};
console.log(obj);
В каком бы порядке не разместили мы внутри объекта записи с числовым ключом, при выводе они будут отсортированы от меньшего к большему (потому что, как выше верно подметили в комментариях, объект не сортируется, а ключи выставляются по порядку).
Хотите сохранить порядок? Приведите ключ к строке, но простая строка с числом не спасёт, JS всё-равно сперва преобразует её к числу и опять отсортирует. Можно добавить любой строковой символ к ключу и записи в итоге сохранят свой порядок.

Худший ответ: Подписываюсь под решением Nik Gubin, но есть и другой вариант: сортировка на клиенте =)
Вопрос: Что значит запись >> 2>&1?

Лучший ответ: >> /dev/null - перенаправление stdout в /dev/null2>&1 - перенаправление stderr в stdout (который пойдет в /dev/null)

Худший ответ: мне больше нарвится вариант
&>   перенапправить  и перезаписать вывод и ошибки
&>> перенаправить    и дописать         вывод и ошибки

в вашем случае stdout & stderr в бездну))  :
php /path/to/artisan schedule:run &> /dev/null
Вопрос: Обязательно ли программисту работать в команде для развития?

Лучший ответ: Прокачаться можно, тут дело времени и склада ума, но как по мне, лучше (уже имея некую базу) пойти работать джуниором в команду и чем жёстче будут наставники - тем лучше :)
PS ничто не мешает найти единомышленников и организовать командную работу вне офиса.
Главное желание! :)

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

Лучший ответ: https://laravel.com/docs/5.7/broadcasting
всё есть из коробки

Худший ответ: Посмотрите на этот мой проект comet-server.com он работает и как saas сервис и есть опенсорс версия. 
https://habr.com/post/341662/
Вопрос: Какой софт для домашней библиотеки выбрать?

Лучший ответ: Я думал все юзают opds каталоги. Не?) типа www.sopds.ru

Худший ответ: На mac использую DEVONThink, сервер есть, довольно дорогой но ничего лучше не видел. На linux попробовал Recoll, послабее но ничего работает. Это оба два индексеры, то есть кроме категоризации дают умный сквозной поиск, лучшие какие нашел.
Вопрос: Как автоматизировать работу с БД?

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

Худший ответ: В принципе уже описали, как действовать для реализации проекта.
Что касается:До этого предпринимались попытки автоматизации:
1) Создалась некая программа, которая выглядит как БД, написана на sql и Oracle(есть на диске, но не знаю как её открыть).
2) ИС работающая в браузере, с возможностью авторизации.
На sql программы не пишутся, но учитывая п.2 и слово "Oracle" вероятно использовался APEX. Но несмотря на то, что APEX предназначен для создания проектов непрограммистами, по-факту придется искать разработчика APEX, а их не так много, да и скорее всего неоправданно дорого будет.
Вопрос: Где купить компьютер с российским процессором и операционной системой?

Лучший ответ: Где купить компьютер с российским процессором и операционной системой?У производителя, или продавцов.Где можно нажать кнопочку "Добавить в корзину", потом "Оплатить", и спокойно ждать доставки?Нигде. Такое только в рознице бывает. Экскаваторы, бульдозеры, атомные реакторы и прочую промышленную технику так не покупают. Существуют такие инет-магазины? Без всяких уклончивых "цена предоставляется по запросу и только организациям и бла-бла-бла".Такие магазины существуют для розничных товаров - которые продаются массово конечному потребителю. А вы интересуетесь явно не ширпотребом.Ах да, компьютеры стоимостью как крымский мост не интересуют. Цена компьютера обратно пропорционально его тиражу. Если их выпускают миллиардами - один компьютер будет стоить 10долларов. А если выпустить тиражом десять экземпляров - то цена будет сотни миллионов долларов.
Поскольку процессоры выпускают ограниченным тиражом - ценник довольно высокий. 50-70тыс. рублей за процессор минимум. Системник дешевле 200тыс рублей не купите.

Худший ответ: Разве что покупать материнку с Байкалом и собирать комп по старинке, потом ставить туда бесплатную отечественную ось Эльбрус которая недавно утекла, остальные комплектующие придётся брать китайские, 
Вроде как можно купить отечественный жёсткий диск от gs group, но не в рознице.
Вопрос: Хороший фреймворк для разработки бота?

Лучший ответ: botman на данный момент самый "лучший" (ИМХО), ибо не очень большой выбор. В целом, он не плох (если) хорошо изучить документацию. Я, например, ВК драйвер недавно сделал для него (скоро залью на гитхаб). Проблемы только с Телеграмм - если использовать сервер из РФ, он работать не будет. А так, в целом, очень неплохой. Лучше, я пока не встречал
п.с. до него я написал трёх ботов "в ручную" (для ВК, Фейсбук и Web). Работают норм, но больше похоже на "костыли", и не очень удобно. А в botman "Hello world" в 39 строк кода, у меня выглядит так:<?php
require_once 'vendor/autoload.php';

use BotMan\BotMan\BotMan;
use BotMan\BotMan\BotManFactory;
use BotMan\BotMan\Drivers\DriverManager;
use BotMan\BotMan\Cache\CodeIgniterCache;

$config = [
    'facebook' => [
      'token' => 'EAAZAT6dcgYDQBAC6x7X******85SLSPF0BRCVeRPPgutgtfvZCkZC9lxnP5pYcRXtF0m7sOAliTEztGPR45cOxx3rZAMZBc9Mb9UhB62gBSG2kXTo7ldyk2fTquadMJQVY8nqKxiOakLXLUZBCSavncCljoe5IAZDZD',
      'app_secret' => 'b52517e****71b6afa76dca657',
      'verification'=>'my_example_veryfy_token',
    ],
    "vkontakte" => [
       "token" => "9af81c610faf0ea319*****d17b0b2b53b164ff3b18cc1b9d4e422fd15db046594139078"
    ],
    'telegram' => [
        'token' => '60176***:****fVCz43IblR72siiyfbebv7wgqCn8tc'
    ]
];

DriverManager::loadDriver(\BotMan\Drivers\Vkontakte\VkontakteDriver::class);
DriverManager::loadDriver(\BotMan\Drivers\Facebook\FacebookDriver::class);
DriverManager::loadDriver(\BotMan\Drivers\Telegram\TelegramDriver::class); 

$this->load->driver('cache');

$botman = BotManFactory::create($config, new CodeIgniterCache($this->cache->file)); 

$botman->hears('привет', function (BotMan $bot) {
    $bot->reply('Хай.');
});

$botman->fallback(function($bot) {
    $bot->reply('Чё ??? ...');
});

$botman->listen();UPD
на этом фреймворке возможны проблемы с русским языком (кодировкой). 
Чтобы её решить, нужно использовать iconv iconv('utf-8', 'windows-1251', тут_ваш_ответ_сервера);

Худший ответ: я для ботов для telegram использовал vibe.d. не могу сказать, лучший он или нет, меня он устраивал.
Вопрос: Как запускать программу на окне входа пользователя Windows?

Лучший ответ: О, вот тут есть ньюансы на самом деле и надо порядочно кода написать. Вот примерно вот так: https://github.com/VoidVolker/Windows-logon-service — написал пару лет назад. Недели две где-то копался в гугле как это все запилить.
Основная сложность тут в системе безопасности, которая запускает службы, логин и пользователя в разных профилях. Поэтому просто запуск приложения из сервиса приведет лишь к запуску этого приложения в том же профиле, при этом ни пользователь ни логон этого приложения не увидят. Поэтому надо запускать приложение хитрым способом от имени другого профиля. А, еще одна проблема в сетевом доступе — доступа к сети у системных сервисов нет (сетевые сервисы запускаются посла загрузки профиля пользователя), но в данном случае у запускаемого приложения есть доступ к сети. Все остальные детали — в коде.

Худший ответ: полагаю, копать надо отсюда : Smss и Winlogon
Вопрос: Как посчитать количество постов за сутки у отдельного человека?

Лучший ответ: при вызове команды все обнуляется, но все же
Но что же?  По какой причине не хотите использовать БД или иное хранилище?
Так или иначе надо сохранять id самого свежего проверенного поста на каждой из стен. Чтобы потом проверять до него, при необходимости проверив глубже, чем на 100 постов.можно проверять глубже, чем последние 100 постов, указав параметр offsetможно «упаковать» до 25 вызовов к API ВК в один запрос execute(), тогда в секунду можно выполнить не 3 а 75 запросовв качестве хранилища можно использовать не локальную БД а ВКонтактовский storage.

Худший ответ: В библиотеке есть работа с коллекциями, с помощью них можно получить хоть все посты группы, но возможны дубликаты из-за появления новых записей. Ещё можно использовать LRU кэш для создания сессий. Ещё в библиотеке есть режимы работы, а так же вместо последовательного await лучше использовать Promise.all() для распараллеливания.const groupsList = Array(8).fill().map((_, i) => i + 1);

const groups = await Promise.all(groupsList.map(id => (
    api.wall.get({
        domain: id,
        count: 100,
        extended: true,
        filter: 'others'
    })
)));
Вопрос: Как сделать, чтобы php не ждал завершения предыдущего потока?

Лучший ответ: Например, так.

Худший ответ: Проблема была в xdebug. Без него всё норм.
Настраивал так:
https://habrahabr.ru/post/250323/
Ну и в хроме надо установить флаг "Disable cache" с помощью DevTools
Вопрос: Насколько реальна подобная сетевая атака?

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

Худший ответ: Атаки такого рода не просто реальны, они периодически встречаются "в полях". Там не совсем подмена трафика в ответе, там скорее подстановка своего сервера с заранее собранным под конкретную жертву файлом. Т. е. жертва считает, что качает обновления к 1С с сайта 1С, а по факту (путём подмены DNS-ответа, например), качает она бинарь с совсем другого сайта, и этот бинарь, помимо обновлений 1С содержит ещё "некий функционал", который реализует задачи атакующего.
Либо ещё интереснее -- внедряются в инфраструктуру разработчика, и добавляют "свою версию" бинарника обновлений либо на сервер обновлений, либо даже в репозиторий исходного кода этот самый "некий функционал". И когда идёт сборка пакета, то с совершенно легального сервера обновлений клиенты получат несколько модифицированные обновления. См. историю с MeDoc и вымогателем Petya. По-научному такая атака называется "атака на цепочку поставки".
Вопрос: Какие руководства по созданию тем на WP вы знаете?

Лучший ответ: Ну для начала надо научиться пользоваться поиском в интернете.
Ищем на youtube - wordpress создание темы с нуля (и подобное) - выводим видео за последний год.
Находим сразу же ответ.Вот к примеру плейлист из 21 урока по созданию тем...

Худший ответ:  Кто знает хорошие источники по изучению, поделитесь.
Единственно правильный источник: https://developer.wordpress.org/themes/
Старый кодекс: https://codex.wordpress.org/Theme_Development
По русски: https://codex.wordpress.org/%D0%A1%D0%BE%D0%B7%D0%...
См ещё Обучение WordPress для разработчика?Хочу изучить как посадить верстку на вордпрес. 
Никаких тем "с нуля" если не хочешь что бы взломали и были разные косяки.
Выбираешь подходящую по структуре тему из каталога  и делаешь к ней дочернюю.  Это  намного проще и избавит от множества головных болей.
Вопрос: Спасёт ли 1гб оператиы ноут?

Лучший ответ: А если попробовать заменить и поставить 8гб + докупить ssd и получаете прекрасную машину для серфа в интернете и повседневных простых задачек.

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

Лучший ответ: Видимо какой-либо алгоритм экстраполяции вам подойдет больше, чем нейронная сеть.

Худший ответ: Линейная аппроксимация кол-ва слов в вашей системе на определенную дату.
Берем строим табличку из 2х колонок:
1.Кол-во дней от начала добаления слов
2. Общее кол-во слов на данный день.
Используем аппроксимацию линейной функцией по методу наименьших квадратов.
первая ссылка из яндекса: www.cleverstudents.ru/articles/mnk.html
В результате вы получаете такую линейную функцию:
y=A*t+B
y - кол-во слов
t - время, дней
Соотвественно получаем дни когда у вас будет 8000 слов:
t = (8000-B ) / A
Я думаю тут вам понятно что НС вам не нужна ВООБЩЕ.
Вопрос: Кто знает, есть ли уже какие-то готовые решения (CMS) на PHP7?

Лучший ответ: А что, еще есть CMS на PHP (кроме Битрикса), не отрапортовавшие о готовности свежей версии работать на РНР7?

Худший ответ: Любая CMS.
Вопрос: Какие книги must-have для верстальщика-профессионала по Вашему мнению?

Лучший ответ: Можете в свободное время пролистать большую книгу css. Там практика особо не нужна (если уже верстаете, сможете все в голове представить), но и подробно читать не нужно, т.к. много базовых вещей, но и могут появиться такие вещи, которые вы не знаете.
Еще у популярной в кругах верстальщиках чувихи Лия Веру есть полезная книженция https://www.amazon.com/gp/product/1449372635/ref=a... (многое из которой есть в ее блоге lea.verou.me )
В верстке вряд-ли есть какие-то уникальные книги, т.к. тема не особо сложная, проникаться в глубь не получится. Мне кажется, будет полезнее проникаться вширь, изучить например JS, для верстки будет очень полезно с webgl, чтобы делать крутые анимации.

Худший ответ: Роберт Брингхерст "Основы стиля в типографике"
Вопрос: Сайт сис. админа в локальной сети?

Лучший ответ: Поднимайте что-то на базе любого движка Вики (MediaWiki, DokuWiki или другое что-то) и храните все там.  Удобно.

Худший ответ: Добрый день, все это решается шарой в сети, сайт тут не особенно нужен, для надежности можно продублировать куда-нибудь или включить в резервное копирование на случай неприятостей. Для заметок есть куча сервисов, например Google Keep - сразу на телефоне появляется, но это на любителя. MediaWiki - это про другое, я на ней справочную систему компании с информацией и инструкциями для пользователей поднял.
Вопрос: Установка старой версии PHP (5.4) на Debian 9?

Лучший ответ: Используйте Docker и запускайте старую версию PHP в контейнере.

Худший ответ: Вобщем, удалось скомпилировать... это оказалось проще, чем я думал)
Никаких "apt-get build-dep php5" делать не надо. Скомпилировал php 5.4.45 на Debian 9. Работает норм.
Вопрос: Django vs Asp.net?

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

Худший ответ: ну ASP.NET более широк в использовании, ну т.е. он по идее быстрее.
Но если это для тебя первый язык, то я бы посоветовал учить Python он по проще и по интереснее будет, но мне кажется в дальнейшем, когда ты освоишь Python ты перейдешь на C#
Вопрос: Как запретить переходить на сайт по IP?

Лучший ответ: Сделать default config, которым приводить на страницу "Вы заблудились" :)

Худший ответ: Убрать listen *:80, слушать только правильный severName.
Примеры: https://httpd.apache.org/docs/2.4/vhosts/examples.html
Вопрос: Какие очень дешевые сервисы для смс активации вы знаете?

Лучший ответ: Дешевле всего - отправлять от частного лица, с телефона, подключив его как модем, к примеру.
Но это технически не верно.
Хотя и дешево.

Худший ответ: Я перепробовал много разных сервисов, среди прочих равных я выбрал для себя по уровню приема смс и цен вот этот https://grizzlysms.com/ru  есть все мессенджеры у них, которыми я пользуюсь
Вопрос: Как организовать защищенные соединения между подразделениями с помощью IPsec?

Лучший ответ: В крипто меп можно засунуть мого пиров. А вообще удобнее делать без крипто меп на физическом интерфейсе.  Делайте обычный гре тунель и вешай на него tunnel protection ipsec profile. Таким образом крипто меп сам будет автоматически создаваться

Худший ответ: Сделайте на Router-PT по 1 крипто мапе на каждый интерфейс, смотрящий на свой офис, и на конечных роутерах по 1 крипто мапе на интерфейс смотрящий на Router-PT. Дальше маршруты все через этот центральный роутер должны построится, да и все.
Поправьте меня сетевики, если я не прав.)
Вопрос: Что лучше изучить для фриланса по вечерам?

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

Худший ответ: Могу порекомендовать онлайн курсы на geekbrains.ru. За полгода можно добротно изучить ту или иную технологию/язык и зарабатывать >100 долларов. Ну а в какую собственно сторону двигаться - это решать только Вам. Проанализируйте заказы на биржах, подумайте, какая сфера Вам более интересна и вперед.
Что касается опыта, имхо, можно на бесплатных курсах посмотреть проектики типа блога, todo-листов и прочего, написать свои аналоги, пока пишете их в голову придут еще некоторые идеи и так по нарастающей у вас появится добротное портфолио. А дальше уже фриланс.
Вопрос: Как следить за трафиком в локальной сети?

Лучший ответ: Ключевые слова - netflow, mirroring port, sniffer.
Что из этого умеет твое оборудование - смотри сам. Снифера есть бесплатные (wireshark как пример).

Худший ответ: У вас коммутируемая сеть, ловить/мониторить трафик между компьютерами смысла не имеет, практически все коммутаторы способны переварить трафик со всех портов одновременно.
Мониторить трафик в вашем случае достаточно только на стороне роутера. Для этого есть куча софта, начиная с опроса по snmp (cacti) и заканчивая collectd + iptables plugin (сервис, установленный на линуксовом роутере). Я за последний вариант. Для нормальной работы collectd нужно еще средство отображения. Предлагаю influxdb + grafana - https://www.linkedin.com/pulse/monitoring-collectd...