Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какой менеджер заметок есть, чтобы можно было поставить серверную часть на свой сервер?

Лучший ответ:
https://github.com/zadam/trilium или Mediawiki

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

The product is Microsoft SharePoint Server. With sharepoint, you can sync onenote cross multiple devices including macOS, ios and android.

ну или напишите свой
Вопрос: Как сделать ссылки в диалогах, как в TES Morrowind?

Лучший ответ:
Можно использовать стандартный пакет TextMeshPro.
Текст размечаем маркапом с тегом link:Link <link=56><color=#FF88FF><b>example</b></color></link> text.
И где то на сцене цепляем свой скрипт компонента:
public TextMeshProUGUI text;

private void LateUpdate()
{
    if (Input.GetMouseButton(0) && text != null && Camera.main != null)
    {
           int i = TMP_TextUtilities.FindIntersectingLink(text, Input.mousePosition, Camera.main);
           if (i > -1 && text.textInfo.linkInfo.Length > 0)
           {
                Debug.Log("## " + text.textInfo.linkInfo[i].GetLinkID() 
                    + " - " + text.textInfo.linkInfo[i].GetLinkText());
           }
    }
}

Худший ответ:
Звучит как обращение к какой-то структуре данных(базе данных), весь текст заранее записан в неё, а ссылка хранит id строки, по которому ты получаешь текст. Как вариант, можно сделать словарь(https://metanit.com/sharp/tutorial/4.9.php) Слово будет являться ключом, по которому получается id, по которому уже ищется текст.
Вопрос: Как в результатах запроса колонку превратить в строку?

Лучший ответ:
Если известно количество устройств (и соответственно количество колонок в итоговой таблице) - можно. Пример для 4 устройств:
CREATE TABLE data(
  device INT NOT NULL,
  date DATETIME NOT NULL,
  metric NUMERIC(10,2) NOT NULL
);

INSERT INTO data VALUES (1, '2022-01-01 00:00:00', 2.34),
(2, '2022-01-01 00:00:00', 1.23),
(3, '2022-01-01 00:00:00', 3.82), 
(4, '2022-01-01 00:00:00', 0.45),
(1, '2022-01-01 01:00:00', 2.00),
(2, '2022-01-01 01:00:00', 1.82),
(3, '2022-01-01 01:00:00', 3.09);

SELECT date, SUM(d1), SUM(d2), SUM(d3), SUM(d4) FROM (
SELECT date,
CASE WHEN device=1 THEN metric ELSE NULL END AS d1,
CASE WHEN device=2 THEN metric ELSE NULL END AS d2,
CASE WHEN device=3 THEN metric ELSE NULL END AS d3,
CASE WHEN device=4 THEN metric ELSE NULL END AS d4
FROM data
) nested
GROUP BY date;

https://sqlize.online/sql/mysql80/68e677a2fc577e6c...

Худший ответ:
Если известно количество устройств (и соответственно количество колонок в итоговой таблице) - можно. Пример для 4 устройств:
CREATE TABLE data(
  device INT NOT NULL,
  date DATETIME NOT NULL,
  metric NUMERIC(10,2) NOT NULL
);

INSERT INTO data VALUES (1, '2022-01-01 00:00:00', 2.34),
(2, '2022-01-01 00:00:00', 1.23),
(3, '2022-01-01 00:00:00', 3.82), 
(4, '2022-01-01 00:00:00', 0.45),
(1, '2022-01-01 01:00:00', 2.00),
(2, '2022-01-01 01:00:00', 1.82),
(3, '2022-01-01 01:00:00', 3.09);

SELECT date, SUM(d1), SUM(d2), SUM(d3), SUM(d4) FROM (
SELECT date,
CASE WHEN device=1 THEN metric ELSE NULL END AS d1,
CASE WHEN device=2 THEN metric ELSE NULL END AS d2,
CASE WHEN device=3 THEN metric ELSE NULL END AS d3,
CASE WHEN device=4 THEN metric ELSE NULL END AS d4
FROM data
) nested
GROUP BY date;

https://sqlize.online/sql/mysql80/68e677a2fc577e6c...
Вопрос: Можно ли найти удаленную стажировку / работу в сфере Data Science если ты новичок и не живешь в городе?

Лучший ответ:
не студент технической специальности , у меня нет опыта в сфере
1. Нет.
2. Нет.
3. hh.ru.

У меня есть конкретная цель получить финансовую независимость
С такими целями вам в IT делать нечего.

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

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

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

Лучший ответ:
Можно начать с простых действий.
1. Поискать в логах Windows события около моментов создания папок.
2. Выполнить проверку файловой системы (проверку диска) штатными средствами.
3. В панели управления посмотреть, какие программы были установлены недавно; нет ли там чего-то непонятного китайского происхождения (например, китайский антивирусник, "чистильщик диска", "чистильщик реестра", "оптимизатор" и т.п.) - могло быть установлено вместе с другим ПО.

Худший ответ:
Папки могут быть далеко не пустыми, там могут быть скрытые файлы.

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

Лучший ответ:
Ну потому что ты фигню написал.
th_bot = Thread(target=pyrobot(), args=())
th_userbot = Thread(target=aiobot(), args=())
Ты пытаешься запустить в качестве потока значение, возвращаемое функцией pyrobot(). А так как она уходит в цикл и значения не возвращает, то далее ничего не происходит. До вызова конструктора Thread() дело не доходит. С aiobot() аналогично.

Еще раз:
pyrobot() - вызов функции
pyrobot - ссылка на функцию

EDIT:
Оба бота - асинхронные на базе asyncio, им для работы нужен цикл-реактор (event loop). Вообще не факт, что хорошая идея запускать их в потоках.
Тут есть два варианта, сразу даже не скажу, что проще.
Вариант А, лобовой: каждый бот создаёт своё собственные реактор через asyncio.new_event_loop(), потом задаёт его как текущий для своего потока через asyncio.set_event_loop(loop). Если ботам не требуется взаимодействовать, то это может быть проще. Если требуется... будут проблемы. Два реактора в одной программе - это не хорошо.

Вариант Б, адекватный: 
И вызов app.run(), и вызов executor.start_polling(dp, skip_updates=True) скорее всего под капотом создают асинхронную функцию (корутину), и запускают её в реакторе. Тогда ты можешь обойтись без потоков, заставив обоих ботов работать на одном реакторе. Нужно будет зарыться в доки, или даже глянуть исходники.

Например, для пирограмма написано такое:
When calling this method (app.run()) without any argument it acts as a convenience method that calls start(), idle() and stop() in sequence. It makes running a single client less verbose.
Т.е. вместо вызова app.run() ты можешь изменить код так:
async def pyrobot():  # обрати внимание, теперь функция асинхронная!
    print("pyro started")
    @app.on_message(filters.chat("some_chat"))
    async def print_pyrogram():
        print("Pyrogram")
    # это вместо вызова app.run(), как написано в доках.
    await app.start()
    try:
        await app.idle()
    finally:
        await app.end()
Затем делаешь аналогичный трюк с aiobot(). Нужно посмотреть в доках на аиограм, как именно.

И потом запускаешь обоих ботов кодом вида...
asyncio.run(asyncio.gather(pyrobot(), aiobot()))

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

Лучший ответ:
Тоесть Вы хотите коробочку с дисплеем которую можно использовать постоянно включенной и подрубать переодически к ней внешние диски? Или её надо к заказчику возить?

Нового за 10к щас ненайдете, адекватного

Что внутри должно быть? тоже диски какие то?

Я бы тогда предложил собрать миниПК просто... эт самый дешовый вариант выйдет

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

а так можно поискать неттоп типа Intel NUC или китайский аналог подешевле типа https://www.aliexpress.com/item/4000803728605.html
к нему ещё портативный монитор тысяч за 10.
итого тыщ за 20 можно собрать лёгкую и компактную машинку которую можно кинуть в сумку и взять с собой.

Ну или ноутбук с достаточным количеством портов, часто делают 2 полноразмерных, плюс один в виде type-c.
из дешевых - HP 14s-dq3003ur

А из старья запросто, любой старый комп лишь бы был разъём pci-e, в него карту расширения с USB3.0 портами и лей что хош, туда же можно вкорячить нсеколько картридеров, чтоб сразу с нескольких карточек сливать данные
Вопрос: Как разместить сайт не по корневой ссылке?

Лучший ответ:
Тупо создаётся папка forum и туда кладётся содержимое форума

Худший ответ:
Запрос обрабатывает веб-сервер, он и принимает решение что делать дальше — передать «в React» или «в WordPress». React, разумеется, запросы на /blog перехватывать не должен.
Вопрос: Как выводить числа на семисегментный дисплей в Microprocesor Simulator 5v32?

Лучший ответ:
цифра три на левой части дисплея имеет код 9Е и чтобы вывести результат сложения 1 + 2 мне надо 3 как-то преобразовать в 9Е
Типовое решение этой задачи -- через таблицу преобразования, где индекс -- это то, что нужно отобразить, а содержимое -- это то, что нужно записать в порт для отображения. Для вывода цифр от 0 до 9 и вашего дисплея таблица будет такой: 0xfa, 0x0a, 0xb6, 0x9e, 0x4e, 0xdc, 0xfc, 0x8a, 0xfe, 0xde.

Худший ответ:
Microprocesor Simulator 5v32
Следовало это в заголовке отразить :)

Задача тут получается в том, чтобы преобразовать число в сигнал для вывода на этом дисплее.

Как можно увидеть, каждый бит на PORT 2 отвечает за разные сегменты дисплея.
Первые 7 - за сами сегменты в порядке: Верхний, Верхний-Левый, Нижний-Левый, Нижний, Нижний-Правый, Центральный, Верхний-Правый.
Последний бит отвечает за выбор одного из двух дисплеев. 0 - первый, 1-второй.

Вот так можно вывести 33:
Start: 

; Чистим первый знак
MOV AL, 0
OUT 02 

; Чистим второй знак
MOV AL, 1
OUT 02

; 3 на первый
MOV AL, 9e
OUT 02

; 3 на второй
MOV AL, 9f
OUT 02

END

Преобразовать одно в другое можно разве что тупым сопоставлением:
1=06
2=B6
3=9E
4=4E
5=DC
6=FC
7=86
8=FE
9=DE
0=FA

Которое можно представить в виде процедуры с кучей CMP и JNZ:
Код

Start: 
MOV AL, 0
OUT 02 


MOV AL, 1
OUT 02

; Для примера выведем 42
MOV AL, 4 ; Первая цифра
CALL 30
OUT 02

MOV AL, 2 ;Вторая цифра
CALL 30
OR AL, 1 
OUT 02

; ----- DIGIT TO SEGMENT -----
ORG 30

CMP AL, 00
JNZ ONE
MOV AL, FA
RET

One:
CMP AL, 01
JNZ Two
MOV AL, 06
RET

Two:
CMP AL, 02
JNZ Three
MOV AL, B6
RET

Three:
CMP AL, 03
JNZ Four
MOV AL, 9E
RET

Four:
CMP AL, 04
JNZ Five
MOV AL, 4E
RET

Five:
CMP AL, 05
JNZ Six
MOV AL, DC
RET

Six:
CMP AL, 06
JNZ Seven
MOV AL, FC
RET

Seven:
CMP AL, 07
JNZ Eight
MOV AL, 86
RET

Eight:
MOV AL, FA
JNZ Nine
CMP AL, FE
RET

Nine:
CMP AL, 09
JNZ err ; Если это и не 9, то просто сваливаемся в ошибку
MOV AL, DE
RET

err:
HALT
; ----- END OF PROCEDURE -----



UPD:  придумал более лаконичный способ, где коды каждого символа записаны в ОЗУ (мб можно красивее)
Код
JMP Start
DB fa; 0
DB 06; 1
DB b6; 2
DB 9e; 3
DB 4e; 4
DB dc; 5
DB fc; 6
DB 86; 7
DB fe; 8
DB de; 9
DB ee; A
DB 7c; B
DB 70; C
DB 3e; D
DB f4; E
DB e4; F

Start:
MOV AL,0
OUT 02 

MOV AL,1
OUT 02

MOV AL,42
CALL 40

PUSH BL
POP AL
OUT 02

PUSH CL
POP AL
OUT 02

; ----- DIGIT TO SEGMENT -----
; INPUT: AL
; OUTPUT: BL, CL

ORG 40
PUSH AL
POP BL
PUSH AL
POP CL
AND BL,F0
SHR BL
SHR BL
SHR BL
SHR BL
AND CL,0F

ADD BL,2
ADD CL,2

MOV BL,[BL]
MOV CL,[CL]
OR CL,1

RET
; ----- END OF PROCEDURE -----


END
Вопрос: FPS упал в два раза в Windows 10 (по сравнению с Win7), в чем проблема?

Лучший ответ:
Возможно банальная нехватка оперативной памяти (
windows 7 в дефолотном конфиге требует от силы 200-300мб, когда как 10-ка кушает легко пару гигабайт, и требования упираются в оставшуюся, именно вот эти неравномерные кадры пока все не прогрузится это и означает (но не всегда)

Еще вероятнее - медленный диск.
Плюс в win10 запущено много лишних служб, очень много, хорошо нагружают ДИСК, а он у тебя hdd, что прямо так противопоказано для 10-ки.

Маловероятно но, можно отключить свистоперделки в интерфейсе (прозрачности, тени, плавные прокрутки,..)
win+pause (свойства системы) -> дополнительно -> Параметры быстродействия -> обеспечить наилучшее быстродействие (позже если сработает поэкспериментируй там не все надо отключать)
Но повторюсь видеокарта у тебя норм, поэтому это не может быть причиной.

Если все указанное выше - мимо, то вероятнее всего причина в драйверах. Что nvidia что amd с каждой новой версией драйверов понижают производительность (буквально) старого железа, вынуждая потребителей покупать новое железо (что последние годы выглядит как издевка). Этот процесс медленный, слабозаметный, но его сразу обнаружили майнеры, но они могут заниматься перепрошивкой биос карты или перейти на linux где производительность все еще максимальная, а тебе придется либо перебирать старые версии драйверов, либо вернуться на windows 7

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

Win10 вот эта https://rutracker.org/forum/viewtopic.php?t=6081245
установила версию Compact
Ставила на отформатированный раздел.
Лишних программ не ставила.
Ставь нормальную версию: 
https://www.microsoft.com/ru-ru/software-download/...

Тестирую FPS в Apex Legends стандартным AMD счетчиком
Настройки везде одинаковые :
в Win7 средний 90 FPS
в Win10 средний 45 FPS
еще при старте матча наблюдаются остановка кадра и не подгружаются сразу некоторые детали потом все идет рывками с полной остановкой кадра и поднятием до 50 FPS
Либо где-то настройки не одинаковые, либо драйвер какой-то не стоит.
Файл подкачки по 8гб на каждом разделе.

А win7 как настроена в этом плане?

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

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

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

header class header
    nav class nav header__nav

где class="nav" вы описываете стили, которые применимы только к навигации, что позволяет вам помещать блок nav сколь угодно раз, и куда угодно. Аheader__nav отвечает за позиционирование navвнутри блока header, так как nav является дочерним элементом блока header.

По итогу когда вы сверстаете макет, у вас получится куча независимых блоков, и сетку + позиционирование вы будете делать уже добавляя блок__элемент = позиционирование
Вопрос: Что означает Поддержка кода?

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

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

по возможности/необходимости наращивать функционал.
Вопрос: Как получить последний элемент столбца?

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

Худший ответ:
В sql нет понятия первый/последний. Есть понятие сортировки по определенному параметру, ограничение количества получаемых строк и соответствующие методы получения строк в модуле. 
Все это является основами работы с БД и вам стоит самому в этом разобраться c помощью учебника по sql/документации по модулю sqlite (именно документация, не видосы на ютубе. Максимум статьи/w3school) - там очень много примеров.
Вопрос: Как эффективно хранить canvas попискельно в БД с последующим отображением?

Лучший ответ:
Ну как минимум за $table->string('color', 18); надо руки сразу отрывать
То есть на координатах наэкономили, 4 байта в сумме, а потом хоба - в 4 раза больше на несчастный цвет. при том что цветов там явно не больше десятка. И это не говоря уже про нормализацию.

По уму надо придумать простой бинарный протокол, который получает поток байт выравненными кусками 
2 байта х
2 байта у
1 байт цвет
4 байта юзер (и нечего жадничать, никаких BigInteger. половины населения земного шара вполне хватит)
то есть всего 9 байт. 
а не под сотню, как сейчас - ещё и завернутое в скобочки/кавычечки джейсона

Если подумать, то можно юзера сразу не передавать. Всех юзеров никто смотреть не будет, а при наведении можно и отдельный запрос послать. Тогда можно и BigInteger оставить.
Получится всего 5 байт на пиксель, то есть 10 метров на всю карту. Дофига, но подъемно. 

По пагинации это дурь какая-то. Зачем "офсет-лимиты" если уже есть четкая разбивка. 
Кто мешает запрашивать тупо построчно? Скажем, по 100 строк картинки? 10 запросов по мегабайту. 
id в этой таблице по сути вообще не нужно, только если лара без него не сможет.  Но по уму первичный ключ - это ху.

Из БД получать 2 лимона строк конечно тоже не сахар
Но можно наверное увеличить строки, хотя бы виртуально.
Вью или процедура, которая комбинирует скажем сто строк в одну 

Насчет других хранилищ я не уверен. Там же наверняка нужна будет выборка обновлений, по таймстампу. 
Но в целом с Редисом поэкспериментировать можно.

Худший ответ:
Для оптимизации загрузки landing page, можно хранить копии этой картинки в уменьшенном виде. 2000х1000 => 1000x500 => 500x250 e.t.c. Так игроделы делают для быстрого рендеринга текстур. Mip-уровни кажется называется.
Обновлять эти mip уровни можно не спеша. Через минутку.

База mysql вам вобщем-то не нужна. Картинку можно в реальном времени править atomic операциями и хранить в raw формате. Не знаю делают ли такое на PHP. Возможно вам нужен рукастый програмист на C++ или еще на каком-то языке чтобы подружить PHP с С++ и сделать сервис для этой картинки.
Вопрос: Обязателен ли нативный репетитор или можно заниматься с местным?

Лучший ответ:
не обязателен, хватит и ненатива.
главное – чтоб толковый был: не только знал чему учить, но и мог научить.

Худший ответ:
Зачем "с местным", если можно дистанционно? И зачем нативный, если всё-таки есть русскоязычные (например, в Englan4u), говорящие на английском не хуже нативного репетитора?
Вопрос: Что происходит с током в момент замыкания цепи?

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

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

Но влияние всех этих эффектов либо чрезвычайно кратковременно, либо мало по величине - поэтому его не учитывают. 

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

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

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

 можно представить себе резистор как трамай РВЗ-6, у которого одна дверь в начале кузова и одна дверь в конце. Носителям заряда очень сильно нужно пробежать трамвай строго от одной двери до другой (в тиктоке новый челлендж). Количество носителей заряда, пробежавших через трамвай в единицу времени - это прямо по определению сила тока в цепи - прямо пропорционально свойству "забитость трамвая пассажирами" - чем больше пассажиров, тем меньше бегунов-зарядов в единицу времени может через себя пропустить трамвай. Таким образом, ставя подряд несколько трамваев и проводя челлендж, можно установить закон скорости пробегания тиктокеров через трамфай, который будет по форме идентичен закону Ома.

Более того, трамвайная модель также позволяет попутно воспроизвести закон Джоуля-Ленца - пихающиеся тиктокеры будут все больше бесить публику в трамвае - вырабатывая хейт (а резистор вырабатывает тепло - heat). И при большом потоке тиктокеров трамвай взбесится (а резистор - перегорит)

Худший ответ:
Вот здесь наглядно
https://www.youtube.com/watch?v=6Hv2GLtnf2c
Вопрос: Скорось wifi не соответствует тарифу?

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

Худший ответ:
300 мегабит которые обещает роутер только теоретически.
по факту у вас диапазон 2.4 и "куча соседей" которые мешают. потому и скорость такая. меняйте роутер на модель с 5ггц (если клиент конечно умеет) и будет норм
Вопрос: Почему не происходит преобразования переменной в числовой тип?

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

Худший ответ:
Намёк понятен?
- totalPrice += product1 * productPrice1;
+ totalPrice += productQuantity1 * productPrice1;
Вопрос: Бывают ли вакансии на frontend без лайвкодинга и тестовых работ?

Лучший ответ:
Бывают. Мне один из бывших работодателей написал и позвал на проект. Даже собеседования не было.

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

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

Худший ответ:
>>Cтоит настройка на сервере, если пользователь не активен в течении 30 минут
А если пользователь активен, то запрос не выдается? Тогда тут наверное не время жизни токена менять надо.
Как-то в подобной ситуации(когда сессия не должна завершаться при неактивности) просто делал на уровне фронта запросы  раз в 10 минут(на  бэке просто заглушка для таких запросов).
Вопрос: Почему в терминале по Ctrl+r не находится команда, хотя в истории ~/.bash_history она есть?

Лучший ответ:
Потому что в .bash_history сохранено больше команд, чем в  "history". Не знаю, почему, но в bash есть две настройки:
HISTFILESIZE=10000
HISTSIZE=2000

В моем примере поиск будет по 2000 последним командам, а в файле сохранено 10000.

Худший ответ:
патаму чта, прочитай как работает поиск по  Ctrl+r
искай так
history | grep 64042