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

Лучший ответ:
Мое решение:
let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for (let i = 0; i <= arr.length; i++) {
obj[i + 1] += arr;
}
console.log(obj);

Ну Вы были относительно близко.
1. Зачем Вы делаете += ? Вы же не плюсуете к чему то, а назначаете значение. То есть 
- obj[i + 1] += arr;
+ obj[i + 1] = arr;
2. Зачем Вы прибавляете весь arr, когда Вам нужен элемент массива, а не весь массив. То есть:
- obj[i + 1] = arr;
+ obj[i + 1] = arr[i];
3. Цикл выполнится 6 раз, так как у Вас от нуля до длины массива - 5. То есть, 0,1,2,3,4,5. Вместо этого можно начать с 1, и в итоге тогда:
let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for (let i = 1; i <= arr.length; i++) {
obj[i] = arr[i-1];
}
console.log(obj);

Ну и как уже сказали выше, можно через reduce. Тогда будет значительно короче:
let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = arr.reduce((a, c, i) =>  (a[i+1] = c, a), {});
console.log(obj);

Худший ответ:
Короткий способ: создание объекта из пар [ключ, значение] методом fromEntries():
Object.fromEntries(arr.map((v, i) => [i + 1, v]))

как это работаетИз исходного массива методом map() создаётся новый, где каждый элемент это тоже массив:
[ [1, 'a'], [2, 'b'], ... ]
Такой массив массивов годится для передачи в Object.fromEntries() для получения искомого объекта.
Вопрос: Почему может не работать правая кнопка мыши в chrome devtools?

Лучший ответ:
в консоли разработчика зажми ctrl и колесико мыши покрути. Проблема с масштабом

Худший ответ:
Похоже на баг самого браузера.
Кстати, репутация бажного браузера за Brave вроде бы значится.
Вопрос: React UI и CSS framework: различия при разработке?

Лучший ответ:
tailwind и bootstrap - это набор классов с прописанными стилями, работает независимо от react или vue. Можно присобачить куда угодно, даже на статичный одностраничник без скриптов
react-bootstrap, mui и antd - это готовые компоненты для react со стилями
react и vue - это библиотеки для создания интерфейсов, работающие с любыми поставщиками стилей. Можно и свои стили использовать. Отвечают лишь за отображение данных

Худший ответ:
смотрите https://tailwindui.com/documentation#react-install...

Видно что код более многословен в отличии от  React UI, и вам придется все поведение описывать самому
Вопрос: Что теперь делать с Paypal фрилансеру?

Лучший ответ:
1. Swift платежи в несанкционные банки ходят без проблем.
2. Можно скататься в соседнюю страну и открыть счет там.
3. Можно зарегистрироваться в Mycommerce/PayPro/2Checkout. Они по сути будут вашими реселлерами, а клиенты смогут оплатить банковской картой/пейпалом, а вы раз в месяц получите все платежи свифтом. Но нужно быть готовым к комиссии в 5-8% + НДС может появится если он есть в стране плательщика.

Худший ответ:
Открыть счет в другой стране. Но это не самая большая проблема. PayPal любит проверять реальное место проживания. И не только Utility Bill запрашивает. Заход с подозрительного IP  - блок. VPN/proxy и блеклиста - блок.
Вопрос: Как прописать в договоре на создание сайта, что таким подобным проектом мы заниматься не будем?

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

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

Лучший ответ:
Да хоть PowerPoint, Вы ж не указали с чего выводить.

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

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

Во-вторых нужен демон, который вертится на серваке и чекает какую-нибудь очередь (RabbitMQ допустим). Или же заколхозить (никогда так не делай :-) ) очередь на СУБД (mysql или что у тебя там). Этот демон ловит задачу из очереди и начинает её выполнение - либо все данные лежат в самой задаче и хранятся в очереди, либо же в очереди лежит только id запроса в базе. Дергаем все нужные данные и запросом к api qiwi переводим деньги на кошель, который указал отправитель. 

Вот и вся магия. Вот, как уже profesor08 указал на документацию -> https://developer.qiwi.com/

Худший ответ:
Тут есть все что надо: https://developer.qiwi.com/
Вопрос: Python vs C. Какой из них быстрее?

Лучший ответ:
Попробуйте сделать вывод в файл. Запускайте с "> output.txt".  У меня си работает в несколько раз быстрее (меньше секунды), питон - пару секунд.

Вывод в консоль тормозит, потому что при компиляции через mingw идет как бы эмуляция линуксовой консоли, которая преобразуется в виндовую. Питон же наверняка работает нативно. Если вы интерпретатор питона из исходников на mingw соберете, то будет работать столько же.  В этом примере вы разницу не намеряете, потому что тут вы в основном тестируете скорость вывода в консоль. Замените вывод на вычисления, или что-то другое полезное, и у си будет в разы быстрее питона.

Худший ответ:
Вообще я думаю этот вопрос ввёл в ступор многих здесь)
Просто представьте аналогию, человек-переводчик диктора с китайского языка априори не сможет выдать перевод быстрее самого диктора. Переводчик здесь, грубо - python.
Для интереса сравнения результатов работы ЯП можете посетить сайт benchmarksgame-team
Вопрос: Почему не получается преодолеть барьер в изучении программирования?

Лучший ответ:
Здравствуйте.
Я так же, как и Вы учусь программировать. Лично мне никакое изучение материала не давало результата.
Только когда у меня появилось к чему приложить свои знания (я сам придумал себе интересный проект и делаю его) у меня появилась больше мотивации в изучении. 
Я не смотрю курсы, не читаю литературу. Я заполняю нужные мне пробелы в знаниях исходя из практики. Да, явно с точки зрения специалиста у меня всё криво, можно лучше и тд, но знания гораздо лучше остаются в моей голове и мотивация падает только тогда, когда я упираюсь во что-то сложное для себя. Пару дней голова поварит, я соберу нужные знания и снова продвигаюсь к реализации своего мини проекта.

Худший ответ:
На мой взгляд такие книги могут быть полезны, чтобы лучше понять то, что уже умеешь как-то делать, либо просто систематизировать свои знания.
Я бы для начала порекомендовал пройти задания для C# на каком-нибудь Exercism, чтобы понять и потренировать основные конструкции, а далее пилить свои pet-проекты.
Вопрос: Где хранить данные о заказах в корзине интернет магазина до оформления заказа?

Лучший ответ:

Если пользователь зарегистрировался и вошел в кабинет, то хранить в базе данных.
Если пользователь не зарегистрирован, то хранить в localStorage или в IndexedDB, просто потому что куки и сессия может быстро протухнуть, а это очень сильно разочаровывает, когда ты накидал интересных вещей в корзину, а через некоторое время открыл сайт, а в корзине пусто.
Если пользователь незарегистрированным накидал в корзину товаров, то если он зарегистрируется, то сохранить корзину в базу данных.


Худший ответ:
Не думаю, что можно дать конкретный ответ - тут многое зависит от того, какие технологие используете и на какие платформы нацелены.
К примеру, если предполагаете, что в будущем появиться мобильное приложение и/или перепишите фронт на условном react/vue/[подставить свое], то лучше хранить в базе.
Если точно знаете, что дальше сайта не уйдете - можно и в сессии.
Вопрос: Как получить путь к файлу, чтобы всё работало и при разработке и при развёртывании?

Лучший ответ:
Почему бы и не плясать именно от расположения исполняемого файла?
Например  ..\..\config 

p.s. Только Environment.CurrentDirectory - штука несколько зыбкая, лучше Assembly.GetExecutingAssembly().Location

Худший ответ:
Нормальная практика работы с конфигами в aspnet core:
1. Никаких конфигов в библиотеках. Классы, которые нужно конфигурировать, должны принимать некоторые типизированные параметры в конструкторе.
2. В ConfigureServices читаешь IConfiguration и прокидываешь из него параметры в библиотечный класс
3. Конфигурируемые значения хранишь в appsettings.json/переменных среды/etc в проекте веб-приложения.
Вопрос: Как хранить информацию в БД о поставщиках когда они могут являться разынми сущностями?

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

В таблице "Поставщик" также может быть поле, указывающее на конкретный тип поставщика (физлицо, ИП, организация), т.е. в какой таблице искать остальные данные. Наличие или отсутствие этого поля - вопрос вкуса. В принципе, если нам нужны сведения о конкретном типе поставщика, мы можем попытаться сделать INNER JOIN с нужной конкретной таблицей. Это отсеет все записи других типов. 
Такой подход (без поля типа) позволяет избежать противоречий, когда запись находится в одной таблице-потомке, а поле указывает на другую. Но с другой стороны, если мы не знаем, какой конкретный тип у данного поставщика, нам придётся либо перебирать таблицы-потомки в рамках нескольких запросов к БД, либо делать LEFT JOIN со всеми таблицами-потомками, и смотреть, какие поля не будут NULL.

Слабая сторона такой схемы в том, что связь по внешнему ключу не запрещает существование записей в нескольких таблицах-потомках, ссылающихся на одну и ту же запись в "Поставщике". Это придётся контролировать отдельно, триггерами или хранимыми процедурами.

Худший ответ:
id, title, profile_id для поставщика. К нему прикрепляете таблицу профиля. У каждой сущности свой набор полей в профиле.
К поставщику можете добавить другие поля, которые будут у всех типов пересекаться. Или что-то служебное, типа type или type_id. 
Тут можно провести аналогию с группами пользователей и посмотреть разные варианты реализации..
Вопрос: Вложенное дерево — как достать все id?

Лучший ответ:
const getNestedProp = (data, key) =>
  Object
    .entries(data instanceof Object ? data : {})
    .reduce((acc, [ k, v ]) => (
      (k === key) && acc.push(v),
      acc.push(...getNestedProp(v, key)),
      acc
    ), []);


const ids = getNestedProp(data.flatMap(n => n.children), 'id');
Или, более специализированный вариант (для данных указанной структуры, а не произвольных):

const getIds = arr =>
  (Array.isArray(arr) ? arr : []).reduce((acc, n) => (
    acc.push(n.id, ...getIds(n.children)),
    acc
  ), []);


const ids = getNestedProp(data.flatMap(n => n.children));

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

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

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

it.easyum.ru/courses/python-web-development/ - для веб разработки
it.easyum.ru/courses/python-data-science/ - для анализа данных
Вопрос: Как правильно связать таблицы?

Лучший ответ:
Или JSON_ARRAYAGG
SELECT `t`.`id_thing`, `t`.`data`, JSON_ARRAYAGG(`n`.`note`) AS `all_notes`
  FROM `things` AS `t`
  LEFT JOIN `notes` AS `n` ON `n`.`id_thing` = `t`.`id_thing`
  GROUP BY `t`.`id_thing`, `t`.`data`
Потому как после GROUP_CONCAT будет непонятно, запятая разделяет отдельные `note` или была внутри одного `note`.

Худший ответ:
Например можно использовать GROUP_CONCAT
SELECT things.id_thing, things.data, GROUP_CONCAT(note) notes
FROM things
LEFT JOIN notes USING(id_thing)
GROUP BY things.id_thing, things.data
;

MySQL GROUP_CONCAT online
Вопрос: Существует ли российский wiki-движок?

Лучший ответ:
Опен соурс на то и опенсоурс что его не итересуют реестры)
неа, нету. это касается любого опенсорс ПО

Худший ответ:
Wikiclick не подходит? 
https://github.com/4eckme/WikiClick/
Вопрос: Не могли бы подсказать что желательно прочитать?

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

Худший ответ:
Книги для умных. Умными становятся с опытом. Прочитайте на википедии что такое js, следом если заинтересует бегите на mdn/learn js и изучайте. Следом повторяйте всё изученное на практике до автоматизма и уже после, когда вы поймёте что сначала кодить, а потом думать это не то, читайте книги, статьи и прочий углублённый материал. Если конечно не отпадёт желание на предыдущих пунктах.
Вопрос: Почему PHP используется в не HighLoad приложениях?

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

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

Лучший ответ:
Ваш код записал во второй элемент списка ссылку на число 1 вместо ссылки на число 6, которая там была раньше, а в перменной b всё ещё хранится ссылка на 6. Непонятно, что вас удивляет.

Худший ответ:
from random import randrange
a, b, c = 4, 6, 8
r = ['a', 'b', 'c']
exec("{} = 1".format(r[randrange(0, 3)]))
print(a, b, c, r)
и всё должно сработать
Вопрос: На что обратить внимание на сервере после взлома?

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

Худший ответ:
на замену сервера
Вопрос: О каких IT специалистах говорят, когда речь идет о дефиците кадров?

Лучший ответ:
Даже просто посмотри вопросы на тостере год назад и сейчас.
Последние 5 лет на тостере вопросы становились сложнее, специфичнее. Много вопросов где сам сидишь думаешь.

А последние 5 месяцев полно треша.

На вакансию может откликнуться кто угодно. Даже не айтишник. Поэтому из 357 человек до собеседования может быть хорошо если десяток дойдет. А на собеседовании и из них никого не захочется.

Худший ответ:
Не надо забывать, что уровни весьма условны, список технологий к вакансии с одним и тем же формальным названием и уровнем будет весьма разным, как и требованиями к техническим скиллам, уровню знания предметной области, софт-скиллам и организации процессов, а также бюджета на данную позицию. Т.е. даже у условного ФААНГа все их левелы весьма приблизительны, для компаний поменьше вообще идет полный разброд, кто-то ищет идеальный винтик в им понятную структуру, кто-то - быстро адаптирующегося человека, кто-то - человека со знанием определенного бизнес-домена. 

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

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

Лучший ответ:
Конкретно там используется https://leafletjs.com/

Худший ответ:
https://interactive-suite.com/#walindo
почитай на сайте разработчика, что это
Вопрос: Как сделать ежедневную смену даты публикации 2х постов в wordpress при помощи php и cron?

Лучший ответ:
По моему скромному мнению, если посмотреть внимательно на вопрос, то можно увидеть ответ
Написать php скрипт, который будет с помощью sql запроса обновлять дату на текущую
Сам скрипт будет от силы в 10 строк.
Если еще время можно менять, то одним составным запросом обновить можно.

PS: цель какую преследуете?

Худший ответ:
Вы можете написать этот скрипт независимо от возможностей wordpress. Тут достаточного голого php и голых sql запросов через pdo.  Это два update запроса. Добавление скрипта в crontab это тоже одна строчка для добавления (очень много есть примеров, был даже интерактивный сайт, который на лету описывал расшифровку частоты запуска крона)
Вопрос: Есть ли смысл при подаче резюме?

Лучший ответ:
Если брать к примеру вакансии "на завод", то там ситуация обратная — позвонил, значит заинтересован. Отравил мусорное резюме, значит не заинтересован. 
Просто отправляй не мусорное резюме. Тогда это уже hr будет думать - звонить тебе или писать.

Худший ответ:
Так все зависит от конкретики и компании, разные по разному хантят
Вопрос: Десктоп приложение C# как научить работать с внешними подключениями?

Лучший ответ:
Привет!

Тут подойдет соединение по SSH и использование SSH клиента для отправки команд. На Stack Overflow есть похожее решение - https://stackoverflow.com/questions/11169396/c-sha...

Худший ответ:
То есть обычное десктоп приложение которое работает с внешними подключениями...
Т.е. правильно ли я понял, что необходимо управление Linux сервером через приложение, написанное на C#?
Я не знаток C#, но немного разбираюсь в Linux, так вот, самый простой и безопасный способ управления Linux сервером это SSH. SSH сервер встроен в Linux сервер и для внешнего управления тебе не понадобится писать серверную часть, только клиента. А для C# очевидно нужны какие то библиотеки, которые поднимают и поддерживают SSH соединение с сервером. 
Вот что нагуглилось, к примеру: https://github.com/sshnet/SSH.NET
SSH.NET is a Secure Shell (SSH-2) library for .NET, optimized for parallelism.
Посмотри, возможно это как раз то, что надо...
Вопрос: Как заблокировать определенную страницу сайта?

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

Худший ответ:
Я когда то давно делал подобное в Squid - там можно любую строчку из запроса блокировать или заменять к примеру вместо баннеров рекламы выдавать прозрачный gif 1x1 пиксель.
Вот только потом мне предъяву кинули, что я заблочил слишком много качественного порно, а некоторые извраты не заблочил - пришлось снимать блокиповки. Но сейчас всё по https бегает и прозрачно завернуть трафик на squid не получится, да и раньше это криво работало, сейчас пользую для этого wpad в паре со squid.
Вопрос: Как произвести поиск по огромной базе моментально и вывести данные?

Лучший ответ:
Сделайте сперва запрос в SQL. 
Поймите слабые места. 
Добавьте индексы. 
Сделайте снова запрос в SQL. 

У вас 
where('model', 989)->where('number_mod', '00003454354743643') - оба параметра перебираются перебором, лучше иметь индекс или с fk. 
Для 5 млн записей вы можете сделать индексы, я думаю и все будет летать.

Худший ответ:
Для запросов, включающих в себя и фильтрацию where и сортировку/групировку, нужны составные индексы (обычно порядок полей в составном индексе рекомендуется сначала поля, которые в условии where, потом те что в group by/order by)

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

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

например в твоем случае последняя добавленная запись может быть скопирована на insert/update в дополнительную таблицу (где вообще индексов нет), тогда брать ее от туда будет максимально просто и быстро
Вопрос: Как правильно верстать такой блок?

Лучший ответ:
По-хорошему, в 2021 году такие вещи надо верстать через column-count. Поддержка по Caniuse прекрасная.

В реальной жизни, конечно, всё не идеально, особенно в Сафари, но это точно лучше костылей с гридами, флексами и, прости господи, флоатами.

Худший ответ:
Можешь родителю дать:
display: flex;
flex-direction: column;
flex-wrap: wrap;
И потом задать определенную высоту, при достижении этой высоты контент, который не влазит уедет на вторую колонку и так далее
Вопрос: Что изучать начинающему разработчику игр?

Лучший ответ:
На Unity будет более легче начать делать первые проекты которые в будущем будут твоим портфолио. Изучив Юнити ты по-любом почувствуешь что тебе хочется большего и начнешь изучать UE так что для начала думаю Unity сойдёт ибо я вот например просмотрев 8 видеоуроков по 10+ минут начал делать свою игру. То есть имея малый запас знаний уже можно что то делать. Самое сложное это начать и не бросить а дальше прорвёшься.

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

И если ты склонен к тому, чтобы стать программистом, то и надо изучать программирование в первую очередь. Причём не конкретный язык, а программирование в целом на примере какого-то конкретного языка, который тебе больше нравится. Хорошо зная основы, пересесть на другой язык не составит труда, особенно со строго типизированного (компилируемого). Как по мне, C++ посложнее, но синтаксис похож, так что бери любой. Естественно, до этого нужно изучить (или уже знать) информатику и математику - основы основ. А Unity - это лишь вишенка на торте.

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

Ну а если переживаешь за хорошую зарплату (доход), то беги из геймдева. Это область не про деньги, а про счастье. Туда идут за удовольствием. Деньги платят в других сферах, например в разработке банковского софта. И не смотри на супер успешные хиты, смотри на несостоявшиеся и незаконченные проекты. Хотя как ты на них посмотришь? О них же никто не знает и никогда не узнает.)
Вопрос: Если array и object создаются от прототипа Object, то почему object не наследует метод length?

Лучший ответ:
При наследовании классов (Array наследуется от Object) в классы-потомки могут добавляться новые свойства и методы. Ничего особенного в этом нет.

Худший ответ:

есть же.
Да и в целом, как таковых массивов в jse нет, есть NodeList и Object, просто привычнее и понятнее называть NodeList массивом, так как перебирают его так же, как и массив в других яп
Вопрос: Как импортировать CSV 300k строк в Laravel?

Лучший ответ:
эмм.... а зачем нужен laravel-excel для импорта csv?
возьмите пакет из лиги и читайте построчно. я им миллионы строк каждый день импортирую, без всяких очередей. 

https://csv.thephpleague.com/

Худший ответ:
Если загрузить файл с меньшим количеством строк, то все работает. Считывайте в память не весь файл сразу а например по 10к строк. А в целом csv же просто текстовый файл(это к тому, что excel и csv сильно отличаются внутри). с разделителем между строк, можно и свое решение написать, которое не будет сложным в реализации
Вопрос: Что будет если пк питать от АКБ?

Лучший ответ:
Ну вообще существуют специальные ИБП рассчитанные на подключение внешних батарей, в том числе и АКБ / сборок акб.
Примеров костылинга автомобильных АКБ к обычным ИБП в сети навалом, в том числе с ответами на все Ваши вопросы.

Худший ответ:
НИКАКИХ подвохов.
Все эти задачи решает ИБП.
Главный вопрос какой тип аккумулятора использовать.
Автомобильный прослужит примерно 50-100 циклов (это 1-3 месяца в условиях регулярных отключений).
Народная мудрость.