pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как заставить ссылки работать?

Лучший ответ: $('li').click(function(){
    var target = $(this).find('a').attr('data-value');
    
    $(bodyHtml).animate({
        scrollTop:$('#' + target).offset().top
    },1500);
});
Вот так работает

Худший ответ: В консоль смотрите. У вас вот на эту строку ругаетсяscrollTop:$('#' + $(this).data('value')).offset().top
т.е. вот такого элемента не существует $('#' + $(this).data('value'))
измените наscrollTop:$('#' + $(this).find('a').data('value')).offset().top
т.е. проблема в том, что вы слушаете клик по li, берете data-value с него же, хотя у вас data-value в теге a, который внутри li. Поэтому варианта 2Слушать клик не по li а по aПри клике брать значение не из li, а из дочернего элемента - а. Что я и сделал.
Вопрос: Какую IDE для питона поставить на такой комп?

Лучший ответ: Pycharm. Или текстовый редактор с плагинами(Atom, Sublime text, Visual studio code)

Худший ответ: Wing Python IDE
Есть триал.
Вопрос: Вёрстка email сегодня — табличная или блочная?

Лучший ответ: Не потеряла. Верстают таблицами.
Но для этого есть удобные инструменты типа zurb foundation (https://foundation.zurb.com/emails.html)

Худший ответ: Таблицами.
Почтовые клиенты это не браузеры, они весьма консервативны.
Вопрос: Автоматическая установка расширения с сайта?

Лучший ответ: Такой сайт уже существует и делать его не надо
https://chrome.google.com/webstore/category/extensions
После выбора необходимого плагина - он будет установлен автоматически

Худший ответ: очень надеюсь что это невозможно
(наверняка это и есть невозможно)
Вопрос: Как быстро и бесплатно перенести кучу машин с Proxmox на Vmware Esxi?

Лучший ответ: Я переезжал так:
Если диск LVM
1. Делаете снапшот
2. qemu-img convert /dev/myvg/myvolume_snapshot -O vmdk myvolume.vmdk
3. Копируете на ноду esxi или shared storage (смотря как у вас реализовано)
vmkfstools -i myvolume.vmdk out-myvolume.vmdk -d thin
4. Создаете VM и прицепляете к ней этот "диск"
Если диск qcow
2. qemu-img convert -f qcow2 myvolume.qcow2 -O vmdk myvolume.vmdk
P.S. без использования платного софта и большого количества человекочасов
Заскриптуйте
P.P.S
https://www.starwindsoftware.com/converter
VMware vCenter Converter Standalone

Худший ответ: У меня плавно умирают 2 сервера proxmox
Ну так и переносите ПЛАВНО
Не получится быстро. Хотя бы потому что тестировать всё надо будет после переноса.
Вопрос: В каком направлении двигаться со знанием Java Core?

Лучший ответ: Везде есть как интересные, так и скучные задачи. Вам выбирать, на первых порах вам скучно не будет, в любом случае узнаете много нового, а потом уже можете пойти и искать другие задачи, места работы. Что-то слабо верится, что в СПБ мало вакансий и они все унылые. Можете расти как в ту, так и в другую сторону. Всё действительно зависит от ваших предпочтений и получаемого удовольствия. Вообще, далеко не везде спешат внедрять самое новое и это не зависит от языка и платформы - никто не хочет неоправданно рисковать переходом на новьё без особой на то выгоды. Я бы посоветовал в web. Может станете fullstack. Изучите клиентскую часть и, если уж так не понравится в Java-мире, потихоньку переплывете во front или js-мир. Уж его то прям колбасит от новых технологий, не соскучаетесь.)

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

Лучший ответ: Самый простой request.get({
	            url: someurl
            }, (err, res, body) => {
	if (err || !res || !res.statusCode || Math.floor(res.statusCode / 100) !== 2) {
		return console.error(err);
	}
	asyncFunc(body); // Тут отдаем ответ для другой ф-ии
});
Заворачиваем в промисfunction getReq(someurl) {
	return new Promise((response, reject) => {
		                   request.get({
			                               url: someurl
		                               }, (err, res, body) => {
			                   if (err || !res || !res.statusCode || Math.floor(res.statusCode / 100) !== 2) {
				                   return reject(err);
			                   }
			                   response(body); // Тут отдаем ответ для промиса далее
		                   });
	                   }
	);
}

getReq('https://ya.ru')
	.then((body) => {
		console.log(body);
	})
	.catch((err) => console.error(err));
На async / await уже дальше не составит труда переделать

Худший ответ: Почитай про callback, async (), async await, всё сразу станет понятно
Вопрос: Загрузка кода в память на разных языках программирования?

Лучший ответ: Самые примитивные интерпретаторы, например bash, считывают файл скрипта с диска построчно и одновременно выполняют каждую считанную строку. Обычные интерпретаторы читают файл, анализируют код, строят AST и уже его выполняют. Современные продвинутые интерпретаторы (такие как PHP, CPython и Javascript V8) после построения AST компилируют его в байткод и выполняют уже байткод. Чаще всего у интерпретируемых языков этот байткод остаётся только в памяти и не сохраняется на диск. В отличии от них, в Java и C# этапы анализа кода и компиляции его в байткод отделены от этапа выполнения байткода. Скомпилированный код сохраняется в файлах и после выполняется виртуальной машиной. Компилируемые языки (C, C++ и прочие) компилируют AST не в байткод, а сразу в машинные инструкции. Впрочем, и они в последнее время всё чаще используют LLVM.

Худший ответ: Для компилируемых языков:
1. Бывают оверлейные структуры, которые подгружаются по потребности в память, но это тех времён, когда DOS был
2. Бывают плагины, которые лежат в dll и не обязательно загружаются при запуске программы
Для интерпретируемых - вроде бы логично, что загрузили в память и поинтерпретировали.
Вопрос: Python без Django etc, что остается в итоге?

Лучший ответ: Да практически ничего не остается, кроме
https://pypi.python.org/pypiThere are currently 87954 packages here. 

Худший ответ: Та или иная работа с данными, проекты по интеграции, автоматизация итд. Один из самых широкоиспользуемых языков высокого уровня для всего этого.
Вопрос: Как заменить все слова «Привет», «Ок» на «Hello», «Ok»?

Лучший ответ: preg_replace_callback("~\b(Привет|Ок)\b~ius", function($match) {
    return mb_strtolower($match[1]) == 'привет' ? 'Hello': 'Ok';
}, $str);

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

Лучший ответ: Получать из базы сразу число+1

Худший ответ: Либо используйте 64-битный PHP.php > $a = 1122333399002222;
php > $a += 1;
php > var_dump($a);
int(1122333399002223)
Вопрос: Как отнять конкретное число используя ТОЛЬКО умножение или деление?

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

Худший ответ: Ну нет, так не прокатит.
a - 30 = x. Мы не можем найти x не зная a.
Вначале нужно сделать это вычитание и, если знаем a и x, то найти их отношение не сложно
a*k = x, где к=a/x )
но зачем ))
Вопрос: Какая ошибка допущена при указании JS события и функции на сайте?

Лучший ответ: при клике на кнопку вызывается функция sendformforyandex, которая, в свою очередь, вызывает sendAnketa(num, num2), где num и num2 не определены (равны undefined). в ходе ужасающей и монструозной проверки внутри sendAnketa оказывается, что ни один из if не срабатывает, check остаётся равным false, выполнение функции прерывается на вот этой строке:if(!check) return false;

Худший ответ: функция должна вызываться с параметрами sendAnketa(num, num2)
а здесь с какими параметрами она вызывается?
function sendformforyandex() {
  sendAnketa(num, num2);
  yandex();
  }
поэтому срабатывает if(!check) return false;
при первом вызове нужно смотреть что возвращается тут
if (num=="10" && !num2) check = checktext($('#a33').val().....
console.log вам в помощь
Вопрос: Какой процессор лучше и рацциональнее для компиляции кода в Xcode?

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

Худший ответ: Привет не ты один мучаешься с этим вопрос, есть популярный гитхаб репозиторий, где есть результаты по разеым сборкам/версиям xcode.
Я думаю он поможет в твоем вопросе.
Вопрос: Сравнить два текста Sublime Text 2?

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

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

Лучший ответ: В приведённых ошибках компилятор жалуется что типа int__ не существует. Откуда вы вообще его взяли? Если он вообще существует, двойное подчеркивание как бы намекает, что это имя для внутреннего использования.

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

Лучший ответ: Давайте по пунктам постараюсь рассказать, как вообще надо работать во front-end.1. Вы должны научиться думать блоками (блоками в потоке, выпадающими из потока, flex-блоками и тд и тп). Научиться можно только когда вы поймете как на самом деле надо верстать.2. Начните с простой вёрстки. Возьмите макет в .psd (80% работы над каждым сайтом вы будете пользоваться PhotoShop и если вы его не знаете хотя бы на предбазовом уровне - печаль беда), импортируйте оттуда все нужные вам картинки ну и начинайте верстать шаблон поблочно, смотря где какой цвет шрифта, размер, жирность, размер блока, фон этого блока и тд и тп.3. Зачем вы себе морочили голову gulp, sass, bootstrap когда ещё верстать даже нормально не умеете - я увы не понимаю. Вам ни один из этих инструментов не поможет пока вы не будете уметь именно верстать. На данный момент не думайте о технологиях, структуре и тд и тп. Просто сверстайте хоть какой-нибудь макет хоть как-то.4. Общайтесь с людьми, которые вам могут помочь продвинуться в этой сфере. Таковых крайне много. Можете ко мне в скайп добавиться и узнавать некоторые вещи, можете к другим, к кому угодно фактически, наверно 60-70% верстальщиков с удовольствием поделятся с вами своим опытом5. Пишите код аккуратно. Был тут недавно вопрос, в котором человек предоставил код, а там ни{  } нету, ни отступов нормальных нет, ну и половина ; просто потеряны, а в html теги применяются не по назначению вовсе. Нельзя так делать ни в коем случае, иначе ваш уровень не поднимется с уровня плинтуса.6. Файловая структура: папки css images js и на уровне с этими папками лежат файлы .html либо .php  всё. Если говорить о препроцессорах и сборщиках - не лезте пока в это, потом узнаете как только научитесь нормально верстать. Я думаю нет смысла объяснять что в папках тех должно лежать. Если вы считаете себя особенным - можете распределять внутри images картинки по папкам на составляющие, к примеру сделать папку отзывов, папку галерей каких-нибудь и тп, но я чаще так не делаю, не хочу чтоб дополнительные символы засоряли мне код и ухудшали читаемость.7. Связывать между собой html и css судя по всему вы и так уже умеете и привязывать к ним js. Не знаю что вам мешает сверстать любой сайт если вы понимаете как устроены эти 3 технологии (а на них по факту всё и держится).Итог: Забудьте про sass, gulp и прочее пока не сверстаете шаблонов 10, эти технологии вас никак не ускорят и никак вам не помогут пока вы не будете уметь просто верстать с шаблона .psd и писать нужные скрипты на js или jQuery хотя бы. Научитесь немного фотошопу и занимайтесь практикой. Найти те самые .psd вообще не проблема, их куча бесплатных в интернете.

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

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

Худший ответ: Кликхаус
Жмёт просто отлично места хватит
Вопрос: Извлечение фото из MySQL?

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

Худший ответ: Судя по тому, что в начале идет сигнатура FF D8 FF E0 - это JPEG картинка. Только вот представление ее, ну очень нетипичное, ну, или, это так Binary Editor странно отображает данные. Какие данные в столбце в "сыром" виде?
Вопрос: Pure CSS \ JS или Фреймворки?

Лучший ответ: Чистый css знать нужно обязательно. Это видно по огромному количеству дебильных вопросов на Тостере в духе "а как это сделать на бутстрапе?" - и приложена картинка, к которой бутстрап ни в борщ, ни в красную армию. Фреймворки в css - вспомогательный второстепенный инструмент, который иногда помогает, если хорошо подобран под задачу. Но чаще - балласт.
С JS немного сложнее. Там фреймворки более важны и нужны. Но... знать ваниль всё равно нужно. Без ванили это все равно учить иностранный язык готовыми фразами абсолютно без понимания грамматики - в шаблонных ситуациях поможет, но шаг в сторону - и ты мычишь.

Худший ответ: Просто стартовать можно и со знаниями по минимуму, а для комфортной работы надо знать как можно больше.
Вопрос: Гугл блокирует сайт за вирусы размером в 0 байт — как победить?

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

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

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

Худший ответ: На git пару вещей нашел. Палить не буду, но фишка в том, что репы, которые должны были быть закрытыми оставались в открытом доступе.
Так что слава аболтусам, которые считали, что все знают))
За то теперь есть парочка очень функциональных и востребованных движков ;)
Вопрос: AWS (Amazon-хостинг облако) в чем --практическое отличие от обычного Ubuntu-VPS?

Лучший ответ: AWS (и другие подобные провайдеры) предоставляют вам не просто "виртуалку". Это возможность полностью управлять виртуальной инфраструктурой проекта - IAAS (ну и пачку SAAS конечно тоже)
Если ваш проект - одна виртуальная машина то для вас AWS это слишком много
Если у вас сложный по инфраструктуре проект, например: отдельный лоадбалансер(который вам нравится, Linux) в публичной сетиприложение на IIS в непубличной сетинесколько микросервисовочереди для связки всего этогохочется тестировать в одном месте а прод чтобы не падал при этом...Вот тогда вылезают плюсы AWS по управлению инфраструктурой проекта, а до того момента -  и на VPS и в AWS: у вас есть виртуалка под убунту, вы подключаетесь по ssh и заверте...

Худший ответ: AWS - это некст левел для серьезных проектов с распределенной архитектурой. Если у тебя одна машина с lamp стэком - переплачивать за aws и разбираться во всем этом нет особого смысла. Ты даже техподдержки не дождешься если твой счет меньше хотя бы 20к в год
Вопрос: Ноутбуки с надежными петлями/прочные ноутбуки?

Лучший ответ: "упал раз 6 со стола и 1 раз с лестницы" с таким подходом вам разве что специальный защищенные ноуты брать.
Типа линейки Panasonic Toughbook. Или может дешевле будет не ронять их?

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

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

Худший ответ: Мои правила обучения и чтения:
Прочитываю книгу, ознакамливаюсь с содержимым. Далее в процессе работы обращаюсь к содержимому. И практика, практика.
www.spec8.ru/1c-prog-fast-start , есть платные, есть бесплатные с них можно начать. 
ps: могу признатся чтоб пользуюсь файликом из книги "1С:Предприятие 8.0. Простые примеры разработки". Там собраны разные примеры кода. Их даже не запоминаю хотя и простой, выдираю из этого файла
Вопрос: Какой Linux поставить на динозавра?

Лучший ответ: Браузер не потянет.

Худший ответ: Я сомневаюсь, что вам повезет и сюда случайно ответит пользователь такого же железа
Начните с крайних убунт и центос на liveCD/usb
И двигайтесь по всем дистрам вплоть до www.damnsmalllinux.org , пока не получите, то что требуется
Без DE на вашем железе вполне заведется крайняя серверная убунта
Вопрос: Лучший сервис для хранения паролей?

Лучший ответ: Попробуйте KeePass - кроссплатформенная свободная программа для хранения паролей, распространяемая по лицензии GPL.

Худший ответ: Доверять святое-святых незнамо кому и еще и платить за это?
Только KeePass. 
Можно файл синхронизировать через Dropbox и пр.
Вопрос: Не актуально / Python django?

Лучший ответ: Там нечего писать
За неделю справитесь

Худший ответ: Тут
Вопрос: Как лучше сделать функцию Запомнить меня?

Лучший ответ: Куку могут своровать. И пароль могут своровать.
При регистрации пользователя генерируем ему уникальную строку и сохраняем в БД. После запоминания ставим её в куках. Для защиты от кражи кук можно привязывать строку к IP, но не всем пользователям это подойдёт

Худший ответ: В куки - храним токен, токен - может быть привязан к IP, подсети провайдера, браузеру (User-Agent), разрешению экрана.
При использовании токена с несовпадающими параметрами - токен устанавливается невалидным на сервере и пользователю предлагается снова ввести логин и пароль.
Схема последовательности авторизации: token -> login/pass
Схема линковки на сервере: 
userID/login:token1:md5(ip:subnet:user-agent:screen-size):salt1:timestamp1
userID/login:token2:md5(ip:subnet:user-agent:screen-size):salt2:timestamp2
..........
userID/login:tokenN:md5(ip:subnet:user-agent:screen-size):saltN:timestampN
PS: то, что не хотим учитывать в md5-хеше - ставим пустой строкой.Один токен = одно устройство = один браузер.
Генерация токена: token=hash(md5(...).saltN) (можно ещё добавить время создания)БОНУС!
Вопрос: Как быть с базой данных в GIt?

Лучший ответ: Миграции БД. Если работаете с каким-то фреймворком, то они идут обычно из коробки.

Худший ответ: Хочу понять, как работать и использовать GIT, чтобы база данных, которая обновляется на продакшене, на локальной машине была тоже в актуальном состояние, с одной команды в консоли, как в случае с файлами.
Это шутка такая или что? Вы на продакшене сервере обновляете базу данных без тестирования оной на  локальных машинах? Вот прям берете и вносите  изменения на пофиг?
Вы слышали о такой вещи, как миграция базы данных? Так вот эта вещь как раз таки и предназначена для того, чтобы структура бд находилась в системе контроля версий. У вас есть файлы, в которых описана структура, разработчик, сделавший изменения в файле миграции (а следовательно, и в бд), отправляет этот файл(ы) в git, а другие разработчики получают из репозитория этот файл и обновляют локальную базу данных. В популярных php фреймворках уже присутствует эта возможность из коробки.Пример файла миграции фреймворка Laravel.
Вопрос: Где брать примеры хорошего ООП?

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

Худший ответ: А зачем?
JS не создан для ООП и в полной мере его не поддерживает. Зачем же так извращаться? Главное, что бы код был понятным и удобным. А это придёт с опытом и чтением чужого кода (опытных разработчиков).
Вопрос: Задачки по javascript?

Лучший ответ: Прикладные задачи - на фрилансе.

Худший ответ: Прикладные задачи - на фрилансе.
Вопрос: Как хранятся числа в python?

Лучший ответ: Как уже заметил Roman Kitaev, функция len() возвращает количество элементов в контейнере, в вашем случае символов в строке, а не количество байт занимаемых контейнером в памяти. Чтобы получить размер в байтах можно воспользоваться функцией getsizeof() модуля sys. И тут вас ждёт сюрпризIn [1]: import sys

In [2]: sys.getsizeof('ж')
Out[2]: 76
Символ 'ж' занимает не один байт и не два, а 76. Объясняется это тем, что в Python абсолютно всё - объекты. В данном случае 76 байт занимает объект строки, состоящий из одного символа. На уровне виртуальной машины объекты - это обычные Сишные структуры, содержащие данные и ряд служебных полей. В частности строка выглядит как-то так:typedef struct {
    long ob_refcnt;
    PyTypeObject *ob_type;
    size_t ob_size;

    long ob_shash;
    int ob_sstate;
    char ob_sval[1];
} PyStringObject;
а целое число такtypedef struct {
    long ob_refcnt;
    PyTypeObject *ob_type;
    size_t ob_size;

    long ob_digit[1];
} PyLongObject;
Тема управления памятью в Python очень глубокая, но как верно заметил sim3x, может запутать новичка.

Худший ответ: Лучше, чем это, никто не скажет
https://github.com/python/cpython/blob/master/Obje...
len("ж") показывает длину строки (количество символов), а не то, сколько памяти она занимает в байтах.
Вопрос: Может кто-нибудь, как заказчик посмотреть профиль на Upwork (интересны скрытые отзывы если они есть)?

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

Худший ответ: Скрытый отзыв никто не может посмотреть (ну кроме сотрудников апворка и того, кто его оставил). Иначе он не был бы скрытым.
Вопрос: Как удалить перенос строки перед определённым символом notepad ++?

Лучший ответ: Шаблон поиска \r?\n:
Строка замены :
https://regex101.com/r/zV0DEE/1

Худший ответ: Можно проще - ctrl+a и потом ctrl+j
Вопрос: Как установить OS X El Capitan на SSD Samsung Evo 850 c нуля?

Лучший ответ: у капитана сертификат просрочен) 
-открываем терминал
-пишем:
date 0318125014
-устанавливаем ОС

дату нужно прописывать именно старую!! и интернет отключить, чтобы на актуальную не поменялась автоматом. в 2020 году помог именно этот вариант)

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

Лучший ответ: Для модели используется единственное число

Худший ответ: К примеру, в английском языке слова «новость» и «новости» обозначаются одним news. News всегда имеют единственное число. Поэтому, модель "News". 
То есть, Вы можете спокойно именовать модель как PriceDetails, или подобрать синоним.
P.S. Cоглашения сообщества об именовании:
https://github.com/alexeymezenin/laravel-best-prac...
Вопрос: Роутер со встроенным OpenVPN сервером и PfSense?

Лучший ответ: Вам может помочь RouterOS
www.mikrotik.com
https://habrahabr.ru/post/269679/

Худший ответ: Если вам  нужен просто OpenVPN - то подойдет большинство роутеров, поставите openwrt и будет вам VPN сервер.
Так же можно рассматривать семейство Mikrotik на RouterOS.
Но никаких PfSense
Если нужен именно PfSense это уже нужен полноценный и довольно мощный компьютер. 
Если вопрос в компактности смотрите в сторону mini и mikro ITX платформ, неттопов.
Например Intel NUC.