Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Табличная часть используется, если неизвестен объем или длина, это как понимать?

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

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

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

Неизвестная длина данных - это про количество хранимых данных, про длину списка. Я видел много раз, когда в конфигурациях (даже типовых) делают "Член инвентаризационной комиссии №1", Член инвентаризационной комиссии №2", Член инвентаризационной комиссии №3"... А если еще нужно десять людей указать? Проще создать табличную часть и больше не думать о количестве.
Вопрос: Как выполнить метод в отдельном процессе?

Лучший ответ:
Процесс создает ОС на запуск приложения. Вот и запустите из своего приложения другое приложение.
Можете свой же .exe еще раз запустить.

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

Лучший ответ:
PHP - это серверный язык программирования, ему фиолетово до ваших кликов. Клики обрабатываются JavaScript. Так вот алгоритм примерно такой:
1. Ловим клик по "плюсику" JavaScript
2. Javascript`ом отправляем http-запрос на сервер с указанием какого-либо идентификатора фотографии (например, имя файла)
3. Сервер обрабатывает запрос, PHP отправляет команду MySQL на удаление нужной строки из БД и возвращает какой-нибудь результат, что строка удалена.
4. JavaScript обрабатывает результат от PHP и убирает картинку с экрана пользователя.

Это на пальцах, чтобы было понятно.

Худший ответ:
На каждый плюсик  ID картинки прицепите. Тогда оно будет отправлять запрос на удаление нужного ID из БД  (POST Get ) что у вас там.
Вопрос: Есть ли нормальные курсы/книги по Docker на русском?

Лучший ответ:
По запросу книги по Docker на русском гугл выдал 90000+ результатов. Неужели из всего многообразия вы одну не смогли выбрать?

Худший ответ:
https://dmkpress.com/search/product/?search_string...

первая и третья есть в телеге
Вопрос: Возможно ли изменить компиляцию С++?

Лучший ответ:
Типа такого?

Худший ответ:
В C++ для расширения синтаксиса есть макросы, которые через define.

Если нужно совсем сильно изменить синтаксис - уточняйте для чего, тк есть разные инструменты (вплоть до собственных патчей компилятора)

UPD: про рефлексию
https://habr.com/ru/post/344206/
https://habr.com/ru/post/257071/
Вопрос: Можно ли вернуть плашки ОЗУ в магазин, если не подошли?

Лучший ответ:
Да, можно в течение 14 дней при сохранении упаковки и товарного вида.
Плашки ОЗУ не входят в перечень технически сложных товаров.

Тот самый перечень
1. Легкие самолеты, вертолеты и летательные аппараты с двигателем внутреннего сгорания (с электродвигателем)

2. Автомобили легковые, мотоциклы, мотороллеры и транспортные средства с двигателем внутреннего сгорания (с электродвигателем), предназначенные для движения по дорогам общего пользования

3. Тракторы, мотоблоки, мотокультиваторы, машины и оборудование для сельского хозяйства с двигателем внутреннего сгорания (с электродвигателем)

4. Снегоходы и транспортные средства с двигателем внутреннего сгорания (с электродвигателем), специально предназначенные для передвижения по снегу

5. Суда спортивные, туристские и прогулочные, катера, лодки, яхты и транспортные плавучие средства с двигателем внутреннего сгорания (с электродвигателем)

6. Оборудование навигации и беспроводной связи для бытового использования, в том числе спутниковой связи, имеющее сенсорный экран и обладающее двумя и более функциями

7. Системные блоки, компьютеры стационарные и портативные, включая ноутбуки, и персональные электронные вычислительные машины

8. Лазерные или струйные многофункциональные устройства, мониторы с цифровым блоком управления

9. Комплекты спутникового телевидения, игровые приставки с цифровым блоком управления

10. Телевизоры, проекторы с цифровым блоком управления

11. Цифровые фото- и видеокамеры, объективы к ним и оптическое фото- и кинооборудование с цифровым блоком управления

12. Холодильники, морозильники, комбинированные холодильники-морозильники, посудомоечные, автоматические стиральные, сушильные и стирально-сушильные машины, кофемашины, кухонные комбайны, электрические и комбинированные газоэлектрические плиты, электрические и комбинированные газоэлектрические варочные панели, электрические и комбинированные газоэлектрические духовые шкафы, встраиваемые микроволновые печи, роботы-пылесосы, кондиционеры, электрические водонагреватели.

13. Часы наручные и карманные механические, электронно-механические и электронные, с двумя и более функциями

14. Инструмент электрифицированный (машины ручные и переносные электрические)


Худший ответ:
Да можно. 
А так бери на озоне, там нет проблем с возвратами.
Вопрос: Как исправить ошибку MySQL data too long?

Лучший ответ:
Посмотреть, в какой именно таблице и какая именно колонка даёт ошибку и увеличить её длину либо сменить её тип на TEXT.

Худший ответ:
Скорее всего это какой-то пользователь имеет длинный User Agent или Contact. Разработчики любят туда вставить всякого мусора. Попробуйте увеличить поля fullcontact и useragent.
У меня по умолчанию так:
  `fullcontact` varchar(35) DEFAULT NULL,

  `useragent` varchar(20) DEFAULT NULL,
Поставить Varchar (100) на обе, хватит на все случаи.
Вопрос: Как поставить пароль на архив tar/gzip?

Лучший ответ:
Tar и gzip это очень старые утилиты. Им по 30-40 лет. И создавались они в те времена когда симметричное шифрование еще не было так развито. 

Но архивчик можно после упаковки зашифровать другими утилитами например openssl. 
openssl enc -in file.txt -out encypted_file.txt -e -aes256
Я так делал когда шифровал бекапы oracle dbms.

Если переписать чуть лучше скрипт - то можно объединить операции tar->gzip->openssl в один пайплайн
без воздания промежуточных файлов.

Худший ответ:
mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB > $BACKUP_DIR/mysql.sql
+ tar -czvf $ARCHIVE $BACKUP_DIR

Странное применение targzip в данном случае. совершенно бессмысленное.
Юзай просто zip, у него есть -e (encrypt) опция, но там слабенькая защита. уж проще openssl, как указали в другом ответе.

Чтоже касается tar. Весь смысл тар и gzip в том, что они умеют работать с потоком, а не файлом. Поэтому то, что вы сперва сохраняете в файл, а потом отдельно еще в tar/gz - бессмысленная работа, которая ничего не дает. Вдобавок и сам тар там не нужен, у вас же один файл.
Поэтому можно сделать так:
mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB | gzip > $BACKUP_DIR/mysql.gz

и потом шифровать файл чем угодно.
Или сразу:
mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB | gzip | openssl enc -aes-256-cbc -out encrypted $BACKUP_DIR/mysql.gz.encrypted
Пароль или руками или перенаправить
mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB | gzip | openssl enc -aes-256-cbc -out encrypted $BACKUP_DIR/mysql.gz.encrypted<<<"mysecretpassword"
Вопрос: Как правильно сформулировать регулярное выражение для поиска xml тегов с возможными атрибутами?

Лучший ответ:
<\/?[\w\s'\"=]*>
Просто перебрать все символы, которые могут встречаться в теге. Но, присоединюсь, это лучше делать специальными библиотеками

Тот же bs4 прекрасно справится
soup = BeautifulSoup(xml, 'lxml')
print([tag.name for tag in soup.find_all()])

Либо через стандартный xml
tree = ET.ElementTree(ET.fromstring(xml))
for elem in tree.iter():
    print(elem.tag)

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

Лучший ответ:
Для работы с датами использовать momentjs.

Сначала распарсить даты (иначе при сортировке их придется парсить два-три раза)
Для сортировки использовать moment().diff() 


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

Если хочется проигнорировать часовые пояса и представить (зачем-то), что время у всех событий указано в одной общей временной зоне, то можно отрезать лишнее — брать часть строки до "GMT":test.forEach(item => item.tsNoTZ = new Date(item.dateAndTime.substring(0, 24)));
test.sort((a, b) => b.tsNoTZ - a.tsNoTZ);И лучше только однажды пройти по массиву и добавить каждому объекту новое поле, по которому потом сортировать.
Вопрос: Время ответа сервера?

Лучший ответ:
проверяйте как то так

А не через инструменты яндекса
(На скринах инструменты веб-разработчика фаерфокса, в хроме и сафари аналогичные есть)

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

Заблокировано - это вообще не об инете, какая то внутренняя причина отложенного коннекта, в ОС/браузере.

Поиск DNS - на это повлиять вы можете, если найдете более быстрые/близкие DNS сервера, либо организуете свой локальный кэширующий резолвер (например в сети организации)

Соединение - в основном тут задержки из-за криво настроенного сервера, у которого очередь входящих соединений не успевает обработать всех желающих, либо тормознутого инета

Медленная установка TLS - тут фифти фифти, может ваш комп тормоз, может сервер (а может вообще пакеты теряются где то между)

Отправка - если тут задержка при обычном открытии страницы, то к скорости вашего интернета большие вопросы (тут задержка может быть если вы не страницу открываете, а файл на сервер заливаете через POST запрос)

На пункт "ожидание" вы вообще никак не можете повлиять, это чисто серверные нюансы.

Более быстрый инет в современных реалиях ощутимо влияет только на последний этап в этом вальсе данных - получение. И то при условиях, что сервер может отдавать с той скоростью, с которой ваш инет позволяет получать

Если суммарное время всех таймингов менее 300мс (пункт Заблокировано не смотрим), то условно можно считать что сайт, выражаясь языком обывателя, "быстрый"

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

Лучший ответ:
Однозначно надо брать 2х16.
https://ru.msi.com/Motherboard/B450-A-PRO-MAX/supp... - тут можно посмотреть проверенные варианты.
Одни и те же планки памяти могут в 4 слота работать медленнее чем в 2 (т.е. просто не заработают на заявленной частоте XMP профиля и все)

Худший ответ:
Два по 16 ставьте, потом проще будет апгрейд до 64.
Вопрос: Как настроить «Fail2ban» на Mikrotik?

Лучший ответ:
Ну так сделайте еще один список. white list и просто добавьте в правила, если src adress не в белом листе, то идем по правилам. 
Либо первое правило проверка на SSH и white list, дальше jump на остальные правила
add action=add-src-to-address-list address-list=blocked_honeypot address-list-timeout=1w1s chain=input connection-state=new in-interface=ether1 protocol=tcp src-address-list=!admin src-port=3389,22,8291
add action=drop chain=input src-address-list=blocked_honeypot

Худший ответ:
Золотой конфиг для MikroTik

Презентация
Вопрос: Почему базовый класс ловит исключение?

Лучший ответ:
А почему catch (Exception $e) ловит все остальные исключения, вы не задумывались? Ведь он не знает все особенности всех своих производных классов.

Блок catch обрабатывает исключение подходящего типа в порядке объявления этих блоков. Объект класса FileNotFoundException является также и объектом класса FilesystemException (как и объектом класса Exception).

Хотите обрабатывать отдельно FileNotFoundException, вставьте соответствующий catch-блок до catch (FilesystemException $e).

Худший ответ:
Это очень плохой подход.
Все делается ради красивости, а не для реальной пользы.
FileWriteException может случиться примерно по 100500 разных причин.
НИ ОДНА ИЗ НИХ не будет сообщена несчастному разработчику, который будет пытаться понять, ПОЧЕМУ не получилось файл записать.  Ему, как в том анекдоте, будут говорить "слушайте свою песню Валенки!", вместо реального сообщения об ошибке.

Кидать красивости можно на уровне файлового враппера, но при этом обязательно сохранять исходное сообщение об ошибке!

public function write($filename, $data) {
    try {
        file_put_contents($filename, $data);
    } catch (Throwable $e) {
        $e = new FileWriteException($e->getMessage());
        $e->setName($filename);
        throw $e;
    }
}
Вопрос: Чем отличается зарядное устройство от блока питания, могут ли они взаимозаменятся?

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

Блок питания лабораторный - может работать как источник стабилизированного напряжения, или как источник стабилизированного тока.

Зарядное устройство - как правило, реализует специальный (для конкретной химии аккумулятора) алгоритм стабилизации тока или напряжения. 

Например, для свинцового аккумулятора принят метод зарядки стабильным током, равным 1/10 емкости, выраженной в ампер часах. Делаем выводы о пригодности:

- простой кирпич без стабилизации - не пригоден
- зарядка от ноутбука (кирпич со стабилизацией по напряжению) - не пригоден, нужен стабильный ток
- лабораторник - есть стабилизация по току, годится.

и так далее для всех типов аккумуляторов. Чтобы не угоробить высокоэнергетичные аккумуляторы (например, LiPol), их используют совместно со спецальной схемой управления зарядом/разрядом.

Худший ответ:
Можно и от БП и от ЗУ (для телефонов)  мобилу заряжать ) Только на БП надо будет USB-a (гнездо) напаять.
Что вы имеете в виду под взаимозаменяемостью? Какова цель?
Вопрос: Как правильно клонировать пользователя Administrator?

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

Худший ответ:
Создается юзер
Юзер заводится в группы Domain Admins, Enterprise Admins, Schema Admins и еще чего-нибудь Admins. На самом деле достаточно только группы Domain Admins, чтобы у юзера были все права на всё.
"Клонировать" никого не надо.

Идея - правильная.
Вопрос: Как использовать тернарный оператор на групе кода?

Лучший ответ:
Тернарный оператор — чтобы возвращать значение.
Это не модная замена if .. else

В вашем примере лучше записать традиционно:if (something) {
  console.log(0);
  console.log('something else');
} else {
  console.log(false);
}

Худший ответ:
Если функции ничего не возвращают, можно так.

function do1() {
    console.log(1);
}

function do2() {
    console.log(2);
}
function do3() {
    console.log(3);
}

true ? do1() || do3() : do2();

Или так:
true
    ? (() => {
          do1();
          do3();
      })()
    : do2();
Вопрос: Плюсы от знания F#?

Лучший ответ:
Язык сам по себе - просто инструмент. F# позволяет писать программы в более функциональном стиле, чем C#, но возможности их не отличаются, и под капотом будут одни и те же инструкции MSIL.

Худший ответ:
нет
Вопрос: Если у меня статический ip, является ли он публичным и общедоступным?

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

если не можете узнать у провайдера, то прост гляньте диапазоны серых сетей и сравните со своим адресом.

Худший ответ:
адрес напиши сюда - тебе и ответят
Вопрос: IP для VLAN — почему два?

Лучший ответ:
Вот какая связь между VLAN и адресом внутреннего интерфейса коммутатора? Никакой, от слова вообще. Данный адрес - именно адрес внутреннего интерфейса коммутатора. Запись просто утверждает, что внутренний интерфейс коммутатора доступен по указанному адресу в указанном VLAN. Т.е. если, находясь в данном VLAN, узел обратится по данному адресу - то он будет обращаться к коммутатору. Ну захотелось человеку, который настраивал сетку, присвоить коммутаторам адреса из разных подсетей, но в одном VLAN - имеет право. Неясно, правда, какой с того профит, но проблем с этого уж точно никаких. У меня в сети, например, для коммутаторов выделены аж три разные подсети в трёх разных management VLAN, различающихся по назначению, и некоторые из коммутаторов имеют адреса в двух, а магистральные даже во всех трёх, VLAN.

Я понимаю, если бы что-то бы интерферировало - скажем, один и тот же адрес, или один адрес был бродкастом подсети второго адреса. Тогда бы был предмет для беспокойства.

Если с такой настройки корячит - ну перенастрой.

Худший ответ:
Это что бы две физически разных сети не пересекались своими адресами.

Если у компьютеров в обоих сетях будет одинаковая подсетка (например X.X.9.0/24), то такие компьютеры (и их коммутаторы) не будут знать, куда отправлять данные именно для удалённой сети. Ведь удалённая сеть уже будет и не удалённая, а очень даже местная, буквально по соседству. А это не так!

А когда у удалённой сети своя подсетка - уже ясно, что трафик до неё идёт через коммутатор, который знает, что для удалённой сети трафик нужно отправлять через VLAN интерфейс Vlanif111. А удалённый коммутатор знает, куда отправлять ответы для чужой подсетки.

P.S. Это как две разных улицы в одном городе, с одинаковым названием. И как различать адреса домов на таких ул. Строителей дом 12, и ул. Строителей дом 12?
Вопрос: Содержание этой книги не устарело?

Лучший ответ:
Увы. В этой книге великим достижением стандартизации C++ считается C++98, который уже устарел.

В нем нет ничего про многопоточность (C++11) и файловую систему(C++17)

Даже банального ranged for в нем нет, а это уже печально. Короче, поставьте старье на полку.

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

Лучший ответ:
Мне кажется вы с ног на голову... Может быть так?
type Admin struct {
  Permissions map[string]interface{}
  User
}
type Subscriber struct {
  Online        bool
  Status        string
  SubscriptedTo []int
  User
}
type User struct {
  ID    int
  Login string
}

Худший ответ:
Для перечисления типа можно использовать типизированные константы.
const (
	NewUserType  userType = "NEW"
	AdminType  userType = "ADMIN"
)

type User struct {
  ID    int
  Login string
  Type userType
}

Хотя для конкретного кейса это не подходит. Тут лучше применить RBAC.
Вопрос: Почему боту не достаточно прав?

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

Худший ответ:
Просто поменяй токен на другой :)

Вот тут **ТЫК**
Вопрос: Как понять что делает данный код php?

Лучший ответ:
Навскидку код развернулся в
<?php
$OO000O0000 = file(preg_replace("@\(.*\(.*$@", "", __FILE__));
if (preg_replace("@\(.*\(.*$@", "", __FILE__) == __FILE__ or preg_replace("@\(.*\(.*$@", "", __LINE__) != 3)
    die("<tt>ERROR");
function OOOO0000O0($a, $b)
{
    if ($b == 162) {
        $d = substr($a, 1303, 8);
    } elseif ($b == 13) {
        $d = substr($a, 973, 330);
    } elseif ($b == 40) {
        $d = trim(substr($a, 1311));
    }
    return $d;
}
eval(base64_decode(OOOO0000O0($OO000O0000[0],13)));
eval(OOOO0OOO0O(OOOO0000O0($OO000O0000[0],40),OOOO0000O0($OO000O0000[0],162),$OO000O0000));
__halt_compiler();
[binary]
Дальше, как я понял, скрипт вырезает, декодирует и выполняет куски из [binary], туда я не лез. В общем, можете покопаться, но ЗАПУСКАТЬ НЕ СОВЕТУЮ.

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

код ниже после __halt_compiler(); никак не интерпретируется языком PHP, что явно следует из названия этой функции.
Вопрос: Что применить для бортового компьютера летающего транспорта?

Лучший ответ:
В статье написано "Самая ходовая ракета SpaceX — Falcon 9 — работает на процессорах x86 на базе Linux, поэтому знание операционки необходимо многим сотрудникам компании."
но думаю можно и на fpga и других вариантах, тут вопрос в надёжности, тестировании, потреблении энергии, например, некоторый код может и на Atmel микроконтроллере работать, но тут наверно, они выбрали процессор, т.к. в линии обработки программы, его легче заменить.
например, если 1 процессор откажет остальные 10 будут работать,
но всё это слова, т.к. нужны реальные испытания с силами перегрузки например 5g - 8g.
Только имея реальные данные Вы сможете что-то планировать из программного обеспечения и микроконтроллеров, базы радиоэлементов.

Худший ответ:
В статье написано "Самая ходовая ракета SpaceX — Falcon 9 — работает на процессорах x86 на базе Linux, поэтому знание операционки необходимо многим сотрудникам компании."
но думаю можно и на fpga и других вариантах, тут вопрос в надёжности, тестировании, потреблении энергии, например, некоторый код может и на Atmel микроконтроллере работать, но тут наверно, они выбрали процессор, т.к. в линии обработки программы, его легче заменить.
например, если 1 процессор откажет остальные 10 будут работать,
но всё это слова, т.к. нужны реальные испытания с силами перегрузки например 5g - 8g.
Только имея реальные данные Вы сможете что-то планировать из программного обеспечения и микроконтроллеров, базы радиоэлементов.
Вопрос: Есть ли библиотеки JS для синтеза речи?

Лучший ответ:
Что значит "хорошее качество"?
Синтез силами ОС будет считаться?
Если да, то в браузере есть встроенное API для синтеза речи:
https://developer.mozilla.org/ru/docs/Web/API/Web_...

Если хорошее качество - на уровне Яндекса, то нет, и быть не может.

Худший ответ:
На сегодняшний день лучший сервис: TEXTTOSPEECH.RU - онлайн озвучка текста  голосами. 
Можете использовать их API.  Есть безлимитые голоса.
Вопрос: Если я в Гугле изменю свое местоположение, то смогу ли я зайти к примеру в Инстарграм? То есть будет ли работать смена геолокации как VPN?

Лучший ответ:
Даже с VPN не всегда можно сменить IP адрес, так как есть такие штуки как - IPv6, DNS и WebRTC утечки, благодаря которым можно вычислить твой реальный IP адрес. 

Также, как уже было написано выше, каждый сервис самостоятельно определяет твою Геолокацию, например, время, которое у тебя установлено на устройстве, так как оно синхронизируется с браузером.

Худший ответ:
Интересно, каким образом изменение геолокации в гугле повлияет на блокировку ресурсов, которые осуществляет местный провайдер, которому совершенно пофиг, что ты там в гугле указал?
Вопрос: Из-за чего может слетать (меняться) вариант загрузки в BIOS?

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

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