Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Математика для программиста игр. Где учить?

Лучший ответ:
Для успешного использования кватернионов понимание их внутренней структуры не обязательно, нужно просто разобраться как работают конструкторы и оператор умножения. Математический смысл кватерниона к разработке игр имеет мало отношения.
Про шейдеры есть хороший сайт The Book of Shaders, там немного другой стандарт чем в юнити, но всё переносимо с минимальными изменениями. В шейдерах основная сложность не математике, а в понимании функционального программирования и параллелизма, большинство вещей всё равно делается на простом сложении да умножении.
Если же всё-таки хотите подтянуть математику, то найдите где-нибудь "сборник задач по математике для поступающих в вузы", есть много книг с похожим названием. Интегралы можете сразу пропускать, а вот синусы и косинусы можете порешать. Ещё можете поиграть с Wolfram Alpha и интерактивными рисовалками графиков. Этого должно быть более чем достаточно, в геймдеве дело редко заходит дальше сложения векторов.

Худший ответ:
Может я пропустил какой-то важный промежуточный этап?
Школьную математику.
Вопрос: Как выбрать фриланс-биржу для иллюстратора?

Лучший ответ:
Почти на всех фриланс биржах есть раздел Видео и Иллюстраторы. Вот туда и добавляйте.

Худший ответ:
за сжиженный ,
ой, скомбинированный, 
чужой объект авторского права  штраф от 10 000 руб за каждый случай
Вопрос: Если на клиенте стоит angular, а на сервере nodejs, куда пользователь отправляет запросы?

Лучший ответ:
Angular на 3000 порту
Это по факту Ваша статикаnodejs на 4200
А это динамика
В этой интерпретации все загрузки модулей и прочего должны идти на :3000 а все запросы к API на :4200.
Лучше сделайте все на одном порту, только весь ангуляр внесите в /js/ и в nodejs все что пришло на этот роут отдавайте как есть, как картинки

Худший ответ:
Хром + F12
ничо не мешает принимать обоим/обеим
Вопрос: В чем преимущества использование GraphQL чем ручками?

Лучший ответ:
Первая же ссылка в Google по запросу "GraphQL REST" - Сравнение REST и GraphQL. В конце статьи перечислены теги, если клацнуть по тегу "graphql" вывалится ещё 40 подобных публикаций.
Только я не понимаю, почему вы противопоставляете соглашение о форме обмена данными GraphQL с написанием "API ручками". Неважно, какая форма обмена у вас выбрана - SOAP, REST, GraphQL, обработчики запросов всё равно придётся писать, автоматом за вас никто ничего не сделает.

Худший ответ:
Простыми словами в чем проблема Графа Куэль: https://tonsky.livejournal.com/309037.html
Вопрос: Провайдер ограничил скорость соединения?

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

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

Лучший ответ:
В браузере: <p class="article_cost" id="test">213</p>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<script>
alert($(".article_cost").html());

$.post(
  "/ajaxtest.php",
  {
   calculated: $(".article_cost").html()
  },
  onAjaxSuccess
);
</script>
На сервере:$f=fopen("log.txt","a");
fwrite($f,$_POST['calculated']);

Худший ответ:
Отправить на сервер (POST-запрос напрямую или через AJAX), а с сервера - уже на почту.
Без сервера - не получится.
Вопрос: На каком носителе хранить важную информацию?

Лучший ответ:
магнитная лента

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

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

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

Лучший ответ:
Как это верно все сделать?
нанять девопса с опытом работы с докером?И чтобы если нагрузка на один повысится не падали другие
Так все ж в разных контейнерах, вы можете через cgroups каждому контейнеру ресурсов выделить так что бы хоть чуть чуть другим оставалось. Ну и опять же в случае чего ничего не мешает вам перекинуть контейнеры на другие серваки.
у вас будет:
 - 1 nginx контейнер
 - 2 node.js контейнера (по одному на каждое приложение)
 - 1 php контейнер (если есть cron и т.д. имеет смысл завести еще один контейнер для оного)
 - 1 контейнер для базы данных (или 3 если каждому нужно по базе)

Худший ответ:
Контейнер для nginx с экспортом 80 порта и импортом портов приложений, лучше разрешить все ядра, так же пробрасываем внутрь все папки со статикой
Контейнер для бд (если есть) с экспортом ее порта
По контейнеру для каждого приложения, тут настройки от приложения зависит
Вопрос: Есть ли смысл заводить контроллер домена в таком случае?

Лучший ответ:
Домен используется не только для того, чтобы пользователи авторизировались на своих компах, но еще и для
1. Удобного шаринга ресурсов - сетевые диски, сетевые принтеры
2. Удобной централизированной настройки всех компьютеров в сети (обновление, установка через политики)
3. В случае смены компьютера - удобнее в домене. Пользователь просто садится за новый комп, а если его профайлы сделаны через сеть, то даже его рабочий стол и документы подгрузятся. Но для этого пользователей нужно дисциплинировать чтобы они все личные данные хранили в сети.
И другое.

Худший ответ:
Домен это инструмент для удобного управления множеством пользователей и компьютеров.
Если у вас 1-4 компьютера и на них надо поставить одинаковый софт, или внести некоторые настройки - не проблема обойти их все и сделать это.
Если у вас 10 компьютеров - это тоже можно сделать, но уже довольно долго и нудно. Уже возникают мысли загнать все в домен.
Если у вас 30-300компьютеров - вы замучаетесь все обходить. Тут без домена никак.
А сколько там пользователей за компьютером работает - вообще неважно.
Вопрос: Тег q — нужен ли?

Лучший ответ:
Этот тэг не для "кавычек" , а для выделения цитат

Худший ответ:
Поисковики это не артемий лебедев, а поисковый робот. Он не человек и не обученная дизайнерскому ремеслу нейросеть, ему вообще похрен как страница выглядит. Лишь бы она более менее соответствовала стандартам W3c, быстро грузилась, не использовала грязные приемы SEO и не распространяла зловредов. 
Кавычки присущие тому или иному языку нужны как дизайнерский прием для качественной верстки. Считается хорошим тоном у снобов и хипстеров . Большинству вообще пофиг как они выглядят. 
Если есть задача сверстать действительно качественный текст, так чтобы Лебедев глаза не выкалывал идем к нему же https://www.artlebedev.ru/kovodstvo/sections/104/ читаем, проникаемся его стратосферным ЧСВ, там же есть инструмент которым кавычки поковырять  https://www.artlebedev.ru/tools/typograf/ 
Если пофиг, то пофиг. Поисковику тоже.
Вопрос: Где можно посмотреть структуру папок в правильной верстке?

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

Худший ответ:
Есть bootstrap-sass, можно в нем посмотреть
https://github.com/twbs/bootstrap-sass
Вопрос: Что выбрать Macbook Pro 13 NoTB 2017 или Macbook Pro TB 2016?

Лучший ответ:
Я бы выбрал 2017 без тачбара. Но это очень субъективный выбор, нужно от своих потребностей отталкиваться. Я привык использовать функциональные клавиши в работе и мне без них будет не удобно. По этой причине я не смог купить 15" 2016-2017, потому что их вообще нет без тачбара. Ещё у модели 13" без тачбара низковольтный процессор, он значительно холоднее и значительно экономичнее того, что стоит в модели с тачбаром. Если нет особо серьёзных cpu-intensive задач, то такой процессор предпочтительнее.

Худший ответ:
Touch Bar - интересная штука, но не более. Она вам никак не упростит работу с ноутбуком, а даже наоборот, в какой-то степени усложнит. Рекомендую к покупке новую модель без тач бара.
Вопрос: Как из «\xe1\xb4\x81» сделать ᴁ?

Лучший ответ:
Интересно, что никто из отвечателей не предложил вариант echo "\xe1\xb4\x81";
который отработает ничуть не хуже их гениальных предложений 
и будет столь же бесполезен для автораfunction decode_slashx($code){
    return preg_replace_callback(
        "~\\\x([0-9a-f]{2})~",
        function($m){
            return chr(hexdec($m[2]));
        },
        $code
    );
}

Худший ответ:
введите на https://www.browserling.com/tools/hex-to-utf8 и получите результат.
Вопрос: Как бидится и не получить бан?

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

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

Лучший ответ:
Как вариант: проверять если прокручено до конца документа, то делать последний блок активным.
https://jsfiddle.net/8agLhn3t/

Худший ответ:
Вот такое решениеРешение
Это конечно костыль, но тут такое решение с минимальными доработками.
Насколько я понимаю проблема в том, что не хватает скролла для "4 элемента".
Это наглядно видно тутНаглядно
Если убрать высоту у body, то не будет работать исходный кодbody {
 height:2510px;
}
Вопрос: Какую архитектуру выбрать клиент-сервер, толстый или тонкий, сервер или без него?

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

Худший ответ:
Ставим простейшие ПК на win 7 \ 10 \ linux На них разворачиваем нужное ПО, сотальное запрещаем.
Ставим мини серваки на каждом объекте. 
Делаем синхронизацию данных с центральным серваком. Клиент > мини сервак > синхр с ЦС (раз в 10 мин к примеру)
Если не можете гарантировать каналы связи, то только так. Либо готовится к простоям на объектах при падении инета.
Локальную сеть на самих объектаъ привести в полный порядок, чтоб работала идеально.
Вопрос: Экспорт плейлиста Яндекс.Музыки?

Лучший ответ:
Вот небольшой скрипт на PHP<?php

// https://music.yandex.ru/users/{owner}/playlists/{kinds}
$uriRaw = 'https://music.yandex.ru/users/vadim.loxx/playlists/1073';
$uriRaw = explode('/', $uriRaw);

$owner = $uriRaw[4];
$kinds = $uriRaw[6];

$uri = 'https://music.yandex.ru/handlers/playlist.jsx?owner=' . $owner . '&kinds=' . $kinds;

$responseRaw = file_get_contents($uri);
$response = json_decode($responseRaw);

$playlistTitle = $response->playlist->title;
$tracks = $response->playlist->tracks;

file_exists($playlistTitle . '.txt') ? unlink($playlistTitle . '.txt') : null;

// Генерация с нумерацией или без нее
$flagNums = true;
$numSong = 1;

foreach ($tracks as $track) {

    $artistsNames = [];
    foreach ($track->artists as $artist) {
        $artistsNames[] = $artist->name;
    }

    $artistsNames = implode(', ', $artistsNames);

    $flagNums ? $fullTrack = $numSong++ . ') ' . $artistsNames . ' - ' . $track->title . PHP_EOL :
        $fullTrack = $artistsNames . ' - ' . $track->title . PHP_EOL;

    file_put_contents($playlistTitle . '.txt', $fullTrack, FILE_APPEND);
}

echo 'Done!';
echo '<br>';
echo '<a href="' . $playlistTitle . '.txt">Список песен</a>';

Худший ответ:
было уже
Вопрос: Какая хорошая платформа для расширения/допиливания своей CRM системы?

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

Худший ответ:
Если у вас объёмы доработок томами ТЗ измеряются, может, выбрать  что-то условно любое, максимально простое и расширяемое (возможно даже, что-то облачное с нормальным API, не Б24, так амоСРМ), и к нему припиливать свои хотелки? Всё равно к тому времени, когда вы все тома реализуете, от основы мало что останется.
Вопрос: Как полностью имитировать нахождение в другой стране?

Лучший ответ:
Купить VPS во Франции/Германии/Кокосовых островах.
Установить нужную ось.
Язык оси - только той страны, которую имитируете
Софт - только на том языке, которую имитируете
Никаких почт на mail.ru и прочих русскоязычных ресурсах - почту лучше всего держать на местном аналоге (для этого, ессно надо знать местный язык) или на gmail.com
На русскоязычные ресурсы ходить как можно меньше, без истории, без куков, без ничего...
Заходить на этот VPS через VPN - это затруднит (но НЕ сделает невозможным) вычисление того, откуда постоянно заходят по RDP/VNC или чем там будете управлять

Худший ответ:
1 VPN
2 Сдают чаще всего плагины например Flash и WebRTC поэтому их лучше отключать.
3 Далее смена языка Браузера и желательно ОСи, смена часового пояса если необходимо.
Вопрос: Какой хостинг лучше выбрать для WordPress?

Лучший ответ:
phpMyAdmin всегда можете скачать свежий. Любой хостинг готов предоставить тестовый период. Тестируйте и выбирайте.

Худший ответ:
Вот тут сравнение и отзывы:
https://ru.hostings.info/
версия 7.2 почти у всех в топе, phpmyadmin можете сами скачать самый последний и себе в папку с доменом закинуть
Вопрос: Есть ли инструменты/плагины для chrome и firefox, которые поверх страницы могут выводить настраиваемую сетку?

Лучший ответ:
Весьма удобный инструмент
https://chrome.google.com/webstore/detail/design-g...

Худший ответ:
Сам нашел методом перебора - Toggle rulers - то что надо!
Вопрос: Как создать глобальный объект для всех элементов проекта?

Лучший ответ:
Объявление вектора tasks должно присутствовать в соответствующем cpp файле (технически, в любой другой единице трансляции) помимо extern в h файле на скриншоте. А вообще говоря, есть паттерн "синглтон", он дя этой ситуации куда более феншуен

Худший ответ:
Вообще, вам стоит почитать про синглтоны в C++, но если лень, самый безопасный вариант - синглтон Майерса:#include <string>

// Синглтон Майерса. Переменная str будет создана один раз при первом вызове getPrefix, начиная с c++11 это ещё и потокобезопастно.
const std::string& getPrefix(){ 
    static std::string str  {"pref::"}; // Инициализация должна быть в конструкторе. 
    return str;
}

// Его использование.
std::string addPrefix(const std::string& str){
    return getPrefix() + str; 
}
Вопрос: Как зашить в приложение карту?

Лучший ответ:
Вот тут большая тема с обсуждением вашего вопроса.
https://github.com/react-native-community/react-na...

Худший ответ:
https://wiki.openstreetmap.org/wiki/Mapsforge
офлайн векторные карты
Вопрос: Деанонимизация, в чём ошибка?

Лучший ответ:
Переписывался на сайте знакомств и всю переписку какимто образом заполучил мой сосед. Сайт без https, что я делаю не так? Скорее всего вы неплотно закрываете шторки. Или у вас открытый вайфай, с полным доступом в локальную сеть. 
А может сосед к вам в гости ходит пока вы на работе...
Внезапно домой возвращаться не пробовали?

Худший ответ:
РекомендацииВероятно, роутер Wi-Fi с какой-либо уязвимостью. Надо рассчитывать на самый худший исход. Возможно, если была использована уязвимость, сосед уже внедрил во все, что смог поломать в твоей сети, бэкдоры. Комп, NAS, принтер, роутер - считай, что всё заражено. И теперь так просто от него не избавиться. 

Надо 

всё поотключать, 
перепрошить роутер или поменять, 
естественно поменять пароли почт и т.п. через телефон и мобильный инет, 
снести ОС на компе, и, не подключаясь к сети, поставить свежую ОС и пропатчить, лучше через мобильный инет. 
Не связываться с левыми прокси и vpn. 
Если в локальной сети еще что-нибудь есть (NAS, принтер, voip, всё такое), тоже поперепрошивать, посбрасывать конфиги… мало ли… делать это по одному устройству, с чистого компа и без подключения к инету, даже мобильного. 

Если всё аккуратно сделать, скорее всего избавишься от любопытного соседа. На некоторое время…

Чтоб его отловить, можно еще завести в своей локалке ловушки (honeypots). Сработает - наверное, сосед опять пробрался в сетку.
Вопрос: Upwork — как обстоит ситуация сейчас?

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

Худший ответ:
Расслабьтесь. Никуда Upwork не денется. Это слишком большие деньги. 
В крайнем случае - продадутся кому-нибудь.
На исполнителей и заказчиков это никак не повлияет.
Вопрос: Почему вендоры сетевого оборудования используют IP 192.168.X.X?

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

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

Лучший ответ:
ошибка в том что вы забыли что nodejs асинхронен и nightmare не ждет пока файл сохранится, сразу переходит на другой адрес, а с таким кодом и правда нетрудно сойти с ума :) 
на похожей задаче я использовал async/await:var Nightmare = require('nightmare');
var browser = Nightmare();

async function login() {
	// заходим
}

async function getLinks() {
	var result = [];
	// вытаскиваем ссылки
	await browser
		.goto('url')
		...
		.then(function(data){
			result = data.slice();
		});
	return result
}

async function savePDF(url) {
	// сохраняем
	await browser
		.goto(url)
		.pdf(...);
}

async function run() {
	await login();
	var links = await getLinks();
	for (var i=0; i<links .length: i++) {
		await savePDF(links[i]);
	}
}
await дает сигнал движку чтобы он ждал окончания выполнения и не двигался дальше.
async указывает что функция асинхронная, и только функции с async  могут использовать await

Худший ответ:
Если есть список ссылок, то все очень просто, надо просто обойти эти ссылки. Если нужно по очереди, то просто после then вызываем ту же функцию рекурсивно или теоретически можно использовать async await вместе с циклом for (не forEach). Если порядок обхода не важен, можно опробовать Promise.all().  
Еще есть полезная библиотека для работы с множественными асинхронными операциями async.
Вопрос: Как скопировать картинку?

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

Худший ответ:
1. дописываете в html вашу кнопку внесте с css
2. пишите скрипт на событие $('.class').hover(..)$('.class').hover(function() {
    $('.class').find('.button').sleep(2).show();
})
3. создаете php файл для скачивания картинки и делаете ссылку на него через htmlheader('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header("Content-Type: " . mime_content_type($path) . ";");
    header("Content-Transfer-Encoding: Binary");
    header("Content-disposition: attachment; filename='{$filename}'");
    header('Content-Length: ' . sprintf("%u", filesize($path)));

    ob_clean(); flush();
    echo readfile($path);
    exit;
Без 3-его пункта картинка будет просто открываться в браузере, но не скачиваться
Вопрос: Как доказать дипломной комиссии что декстоп нужнее веба?

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

Худший ответ:
Нет никакой проблемы сделать мобильный клиент,  десктоп и веб приложение и связать это через сервер. Они все одинаково интересны для темы.
Как вариант можно сделать веб и обернуть его чтобы получилось десктопное приложение, ну и мобильное за одно) Куча всяких технологий типа phonegap/ionic, которые это умеют. 
Мы делали диплом втроем, один делал сервер с сервисами и немного веб, один делал мобильный клиент (тогда это была еще javame), другой - десктоп. 
Отлично все сделали, защитились и сдали. И мы были довольны и комиссия.
Вопрос: Почему глаза плохо воспринимают темный UI?

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

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

Лучший ответ:
Вы хотите и рыбку съесть и косточкой не подавиться...
Как вы представляете при отсутствии турникетов ограничить проход человека в салон автобуса?
Разве что биты водителям раздать?
Тут тогда вообще нужна гуашь чтобы сделать пропуска разных цветов (цвет для А, для Б и для В) и что бы водитель видя пропуск другого цвета сразу в жбан битой бил...
Дешево и сердито выйдет.

Худший ответ:
есть такое устройство, системы авторизация несколько биометрия, определения лица, rfid метки на 125 кгерц ен марин, только в автобусах нужен интернет либо хотя бы временный доступ на мин 12 максимум чтоб загрузить и выгрузить инфу про посещения и уровни доступах если это необходимо. Софт на руском за него платить деньги не надо (обычно это самое дорогостоящее в смете) и прекрасно подходит для организаций СКУД и код открытый (переделываите под ваши нужды, за денги) имеет также учёт рабочего времени, установились такие устройства в автомобилях не знаю.   ZKTeco  я уверен такие системы везде есть по краине мере в оч крупных городов цена вопроса это от компании к компании но я другой системы СКУД с бесплатным многофункциональным софтом я не знаю.
Если знаете другие подобные аналогичные системы с бесплатным полнофункциональным софтом люди не стеснитесь пишите я по краине мере буду очень рад чтобы опытом у друг друга набраться.