Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему рекомендуют использовать Vuex как прослойку для работы с API (через axios)?

Лучший ответ:
Vuex  используется  как хранилище.  Компоненты как его потребители. 
Это позволяет разделить приложение на слои и не смешивать логику и отображение и упрощает тестирование.
И типичный пример. 
У вас есть 3 компонента на 1 уровне посты, паджинатор и фильтр

причем паджинатор и фильтр дублируются. То есть вместо простого отображения вам нужна и логика и оповещения контрола высшего уровня. Кошмар!

Худший ответ:
Не знаю, зачем так делают, но предположу, чтобы иметь относительно одинаковый вариант получения данных, независимо от компонентов. Если с сервера запрашиваются данные об авторизированном пользователе или еще что-то, что не подразумевает изменения в зависимости от параметров запроса, то наверное логично делать это через экшны стора. Но вот списки, которые подразумевают фильтрацию и пагинацию вообще только проблемы создают. Например, компонент берет список из стора и отображает его. Потом мне понадобилось в попапе те же сущности вывести, но с другой фильтрацией - все - список первого компонента затерся вторым. Так что с такой практикой надо очень аккуратно.
У нас на работе изначально пошли по пути данных в сторе, потом это выпилили.
Еще минус в том, что данные с сервера в сторе реактивные, хотя для данных, полученных с сервера это обычно не требуется и влияет негативно на производительность. В случае использования composition api такие данные лучше хранить в shallowRef сущности и обновлять ее целиком при получении новых.
Вопрос: С чего продолжить изучение C++?

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

"до Jr учиться" -  до тех пор, пока вас на эту должность согласятся взять.  Может вас сейчас уже кто-то выберет, а может вы столь "способны" к программированию и у вас такие "софт-скилзы", что и через три года никто не согласиться. Тут уж все зависит от вас.

"Если да, то примерно сколько времени стоит уделять в день на учебу, а после на практику?"   -  если вы собрались учиться по будильнику а не по интересу,  то тут все равно, сколько вы штанов протрете.  И не "после на практику" -  а наоборот "практику в первую очередь" (см. выше).

Какие есть сайты для практики ЯП? -  вы точно учили уже программирование? Или только формально книжки листали? Не понимаю, как можно хоть какое-то время действительно учить (!!) программирования и  не знать ответа на такие вещи.

И да, стоит ли учить дополнительный ЯП  -  стоит. Вот только те, кто действительно хочет стать программистом -  те таких вопросов, как правило,  не задают.  А учат не потому что им так сказали, а потому что им интересно учить и второй язык, и третий. Но они  сначала разбираются зачем именно им нужен тот-или иной язык, и его изучают, а не торгуются на тему "а какие у меня будут плюшки, если я изучу еще один язык".

Худший ответ:
Мое никому не нужное мнение:
Работу с gui, сокеты, встраивание скриптовых языков, компиляция опен соурс проектов, некоторое знание C, github, управление памятью и т.д и т.п. Видеоролики: из более менее обьясняющик видел только у begin end и то, с некоторыми неточностями. Не помешает.

P.S. Вам нужно учить больше не сам ЯП, а их логику т.к она у них похожа, пример: окно на winapi C++ и pascal
Вопрос: Какой язык программирования используется для написания портативных OS и UI?

Лучший ответ:
Вот только на скринах не ОС, да и не нужна она на таком девайсе. 
А язык - в целом любой, поддерживаемый целевой платформой. Но т.к. там обычно микроконтроллер - то вполне вероятно с/с++ используются.
А если уж реально нужна ОС и мощностей хватит - то либо какой нить из линуксов, либо вообще android. 
Свои ОС под девайсы пишутся крааайне редко

Худший ответ:
Очень часто на таких устройствах стоит винда)
Ну вообще на Си вполне можно подобное писать
Вопрос: Как происходит сравнение в JS?

Лучший ответ:
Расппишу вам подробно происходящее. В первой строке происходит создание переменной и ее инициализациия, а именно переменной a присваивается ссылка на указанный вами массив из двух элементов(5 и 7). Во второй строке вы создаете переменную b и присваиваете ей ссылку на массив который находится в переменной a. Так как вы указали, что переменная b ссылается на тот же массив, что и a, то логично, что все манимуляции которые будет происхолить с массивом будут "отображатся" в двух переменных(Например: удалите элемент, добавите элемент или отсортируете массив каким-то обрзаом). В строке a==[5,7] логично, что возвращается false,т.к для компьютера это совершенно разные элементы, хотя для нас они идентичны(Мы видим, что [5,7] должно равнятся [5,7]). Ну, а в строке a == b, как я уже описал выше они ссылаются на один и тот же массив, поэтому мы и получаем в ответ true.

Худший ответ:
https://habr.com/ru/post/218061/ а так же https://habr.com/ru/post/138272/
Вопрос: Зачем base в этом методе?

Лучший ответ:
Чтобы отработал конструктор базового класса, иначе не создать объект.

Худший ответ:
короче все только частично ответили на вопрос...

ответ такой.

если конструктор родительского класса не содержит параметров, то он может не вызываться в конструкторе дочернего класса, в противном случае он должен вызываться с помощью base(parameters*)
Вопрос: Есть ли какой то список что нельзя использовать в 2022 году при разработке с поддержкой IE 11?

Лучший ответ:
Чтобы не перепечатывать каждое свойство в caniuse
doiuse?

Худший ответ:
Есть ли какой то список что нельзя использовать в 2022 году при разработке с поддержкой IE 11?
IE 11 xD как бы это не звучало. Дебажить в нем не сможешь. Пользоваться современными инструментами, для разработки, не сможешь. Исправлять баги никто не будет.
Вопрос: Совместимость памяти и SSD с мат. платой ASUS?

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

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

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

Худший ответ:
%us показывает использование отдельного процессора (пользовательскими процессами, такими, как apache, mysql и т.д.) до максимального значения, составляющего 100%. Таким образом, если в четырехъядерном процессоре 1 процесс использует 100% CPU, это даст значение %us, равное 25%. Значение 12,5% для 8-ядерного процессора означает, что занято одно ядро.
Устаревшая статья)

вот такой  ответь тоже получил от телеграм пользователя @ky3bmu4
Вопрос: Есть ли роутера свой личный IP?

Лучший ответ:
в домашних роутера, адрес роутера обычно "Основной шлюз"

Худший ответ:
Скажу больше у роутера их минимум 2. 
Первый внутренней сети, в вашем случае 192.168.129.106.
Для маски \24 адрес ройутера экзотический, выглядит, как будто его настраивали руками. 

И адрес другой сети (провайдера) с которой он связывает вашу сеть.
Вопрос: Яндекс.Практикум C++ Что я делаю не так?

Лучший ответ:
Вся проверка должна быть query[i] == ' '

to_string(32) - вернет вам "32" вместо пробела. Тогда уж можно делать (char)32 или static_cast<char>(32). Но ' ' - все равно лучше.

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

Худший ответ:
Нашёл ответ!
В конце функции main надо было дописать: cour << query.size() << endl;
Код:
#include <iostream>
#include <string>

using namespace std;

int main() {
    string query;
    getline(cin, query);
    
    // выведите все индексы символов, следующие за словами
    for (int i = 0; i < query.size(); i++){
        if(to_string(query[i]) == to_string(32)){
            cout << i << endl;
        }
    }
    cout << query.size() << endl;
}
Вопрос: Почему медленно грузится локальный сайт?

Лучший ответ:
Если это Mikrotik CHR и лицензия "free", то скорость интерфейсов ограничена 1 Мбит/с
1 Мбит/с = 128 Кбайт/с
3.8 МБайт = 3891,2 Кбайт
3891,2 Кбайт / 128 Кбайт/с = 30,4 сек (в идеале)
А реально так и будет ~35 сек

Худший ответ:
По умолчанию в Router OS лимитов нет. да и на что по вашему там лимиты?

Проверяете скорость загрузки откуда? с того же ПК где и сайт размещен?
Вопрос: Как обновить git для windows?

Лучший ответ:
Download and install Git for Windows 2.37.2(2) [N/y]?

Вас спрашивают, хотите ли вы установить новую версию? Нажмите "y" (от yes) и enter

Худший ответ:
Нужно нажать на кливатуре буковку y.
Вопрос: Как найти что то похожее на это?

Лучший ответ:
CSS. Это база

Худший ответ:
Ну вот к примеру, но это библиотека :) и если я правильно понял о чем ты вообще https://github.com/zalog/placeholder-loading
Вопрос: Сущевствуют ли унарные операторы php?

Лучший ответ:
Потому что в php для конкатенации используется точка, а не плюс.
<?php
$a = 0.5;
$b = "0.5";
$c = $a . $b;
echo $c; // "0.50.5"

Худший ответ:
оператор конкатенации ('.')
<?php
$a = 0.5;
$b = "0.5";
$c = $a.$b;
echo $c;

run php online
Вопрос: Где изучать symfony?

Лучший ответ:
Я буду более конкретен
https://symfony.com/doc/current/the-fast-track/ru/...
Все буквально на блюдечке подано. Даже про докер и git вскользь есть, просто бери и делай проект.

Худший ответ:
У них весьма достойная документация:

https://symfony.ru/doc/current/index.html

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

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

Лучший ответ:
l = [ "0" , "абрикос" ,"арбуз" , "тарелка" 
l[3] = "ложка"

Худший ответ:
Через метод списка index(value) находим индекс элемента в списке. По индексу меняем значение элемента.
Вопрос: Как мне составить код: падающий объект должен удалятся при касании пола в Unity?

Лучший ответ:
Добавь метод OnTriggerEnter, кинь скрипт на объект который будет удалятся, выбери пол нажми на кнопку с тегами и выбери add tagу тебя откроется окно и там ты добавь тег floor ну или можешь по другому назвать в скрипте в методе OnTriggerEnter напишиvoid OnTriggerEnter(Collider other)
{
if(other.gameobject.tag == “floor”)
{
Destroy(this)
}
}

Худший ответ:
Видел урок, в котором для этого использовались лучи. Проводим луч от прошлого положения к нынешнему и если на его пути пол, удаляем.( в этом случае, объект удалится даже при высокой скорости) Там это использовалось для пуль.
Вопрос: Разница CompareTo() в IComparable и Equals() в IEquatable?

Лучший ответ:
IComparable предназначен для установления отношения порядка между объектами, реализующими этот интерфейс, ну или грубо говоря, для сортировки. Т.е. когда для двух данных объектов А и Б вы можете утверждать, что А < Б ИЛИ А == Б ИЛИ А > Б.

IEquatable предназначен для установления отношения равенства. Когда для двух данных объектов А и Б вы можете утверждать, что А == Б или А != Б.

Далеко не для всех типов данных вы хотите и можете устанавливать отношение порядка, в то время как для большинства типов с value-семантикой вы захотите иметь отношение равенства/неравенства. Это настолько частая и необходимая вещь, что записи в C# автоматически реализуют для вас IEquatable.

Худший ответ:
IComparable - больше/меньше
IEquatable - равен/не равен
Вопрос: Для каких целей используется C# на Web сайтах?

Лучший ответ:
В основном бэкенд на asp net и asp net core.
Кто-то ещё делает фронтенд на Blazor
Ну и ещё есть шаблонизатор - Razor

Ну и ещё есть легаси - WebForms

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

Лучший ответ:
https://www.jetbrains.com/idea/
CE подойдет

Худший ответ:
в дальнейшем с Androidтак андроид или все таки джава? 

На прочих сайтах рекомендуют много редакторовтри это много? из них один с абсолютной популярностью

не привыкать к неподходящему редакторуони все подходящие

андроид студия для андроида, idea для джавы
плюсы и минусы расписаны в статьях которые ты якобы читал
Вопрос: Какие опен соурсные vpn устойчивы к dpi?

Лучший ответ:
Против DPI хорошо подходят VPN с обфускацией, таких (хороших) не очень много. Из мне известных могу посоветовать TunnelBear, помимо него есть Xeovo, который использует протокол Shadowsocks, помогающий многим странам обходить подобные блокировки. Но не только VPN вам поможет обойти блокировки по DPI. ValdikSS, например, создал один из лучших сервисов - (Goodbye DPI) https://github.com/ValdikSS/GoodbyeDPI, гайдов и обзоров на него достаточно, поэтому проблем с тем, как использовать - возникнуть не должно. Помимо его сервиса у него в репозитории указаны похожие сервисы для обхода DPI блокировок.

Худший ответ:
Если расскажете, каким образом реализован DPI - можно будет прикинуть список подходящих.
Вопрос: Браузер отправляет данные на сервер MTS?

Лучший ответ:
Так MTS - ваш провайдер?
Сотовые операторы больше других провайдеров любят перехватывать трафик с целью добавления рекламы.

Худший ответ:
какой-то сайт впихнул себя в Service Workers и теперича джава-скрипта ентого сайта выполняется в твоем браузере в фоновом режиме.
обычно подсовывают всплывающие окошки с новостями и рекламой.
ищи как вычистить говно из твоего браузера.
Вопрос: Отличается ли принцип написания back-end'a от принципа написания мобильного приложения?

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

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

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

"321" // строка "321"
+"321" // число 321
+"123".split('').reverse().join('')  // 321
- примерно такой же, только негативит аргумент.

Использование этих выражений внутри тернарного оператора никак не делает их особенней )

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

"321" // строка "321"
+"321" // число 321
+"123".split('').reverse().join('')  // 321
- примерно такой же, только негативит аргумент.

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

Лучший ответ:
Компьютер стреляет током — ваши предположения?
Стрелять в ответ.  Если не поможет,  тогда нужно включать в заземлённую розетку. Если такой нет, наймите специалистов, они сделают.

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

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

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

Лучший ответ:
java.io.FileNotFoundException: \c\Users\X\Desktop\x.txt
Вас не смущает, что нормальный путь должен выглядеть как c:\Users\...? Двоеточия нигде не потеряли? А так же лишний\перед именем диска.

Худший ответ:
Вот написано же в чем проблема:
"Exception in thread "main" java.io.FileNotFoundException: \c\Users\X\Desktop\x.txt"
\c\Users\X\Desktop\x.txt - файл не найден.
Вопрос: Зачем нужна функция?

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

Худший ответ:
Помогает решить проблему с DRY и делает код чище.
Вопрос: Сплиттер или коммутатор?

Лучший ответ:
Конечно коммутатор. Можно взять самый простой тупой хаб (не роутер) на 4 порта (вряд ли найдете меньше).

Худший ответ:
Коммутатор. Сплиттер - это немного другое.
Вопрос: Как назначить trunk порт для zyxel gs 2210-48?

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

Само слово trunk вполне может нигде не встречаться ни в web-интерфейсе, ни в руководстве.

Худший ответ:
В зюкселях просто  кровь из глаз идет, глядя на реализации vlan.  Врагу такого не пожелаешь.  Попробовать только в саппорт обратиться если.
Вопрос: Swift, Kotlin vs C++. Что нативнее для мобильных устройств?

Лучший ответ:
Могу ли я писать нативные библиотеки под iOS и Android или же есть какие-либо ограничения и костыли связанные с этим?
можно даже на ассемблере, только нет таких самоубийц. Максимум проекты для развлечения. Пока ты будешь на плюсах писать одну либу под обе платформы, другие уже напишут 10 раздельных

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

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

В конкретном случае скорее всего будет ошибка вроде «int object is not callable»

Худший ответ:
Очень страшно
Вопрос: Почему не выходит запустить html файл в docker?

Лучший ответ:
1) tomcat  - сервер web-приложений, которые написаны на яве, да и сам сервер тоже написан на яве. В нем нельзя запускать html, а можно запускать war или jar-файлы!
2) html вообще запускать нельзя! его можно только публиковать на web-сервер, который его будет отдавать. Рекомендую это делать например через nginx или apache http или nodejs.
3) не рекомендую раздавать html через tomcat, если Вы не программируете на java и связанных с JVM языками программирования (kotlin, groovy,  clojure и т.д.)

Худший ответ:
Добрый день.
Вам томкат не нужен. Это дорого и неудобно.
Вам нужен nginx.
Прочитайте вот, эту статью:
https://medium.com/code-to-express/https-medium-co...
или вот эту:
https://www.dailysmarty.com/posts/steps-for-deploy...
Вопрос: Что такое файлы core на сервере?

Лучший ответ:
Смотрим на любой core-файл с помощью утилиты file:

$ file core.666
core.666: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from '/usr/bin/foobar', real uid: 0, effective uid: 0, real gid: 0, effective gid: 0

Тут видно, что крэшился процесс foobar.

Далее с помощью:

gdb -c core.666

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

С запуском scp всё это скорее всего не связано, ну разве что core-файл остаётся от самого sshd.

Худший ответ:
Буквы "y" после второго ввода yes - результат работы команды "yes" (да, есть такая программа!). Собственно, сама по себе она выводит в терминал "y" пока не будет убита.
А вот почему она (а может и не она?) при уничтожении оставила столько файлов, непонятно. Может быть это особенность запуска yes под ssh, или падало что-то другое.
Надо по ls -l посмотреть даты создания этих файлов, и будет понятно, сейчас они создались (тогда на 90% что это yes так глюкануло), или даты разные, тогда надо разбираться...
Вопрос: Парсинг Python Как обойти защиту сайта?

Лучший ответ:
Попробуйте использовать драйвер undetected-chromedriver для Selenium. Он содержит в себе алгоритмы, позволяющие скрывать средства автоматизации браузера, тем самым становясь менее подозрительным для веб-приложения и всевозможных WAF. Возможно, что потребуется запуск браузера в обычном режиме (не headless), чтобы проходить разнообразные антибот-проверки, реализованные на фронтенде в виде JavaScript-скриптов. В таком случае, если вы запускаете программу на сервере без экрана, используйте PyVirtualDisplay для эмуляции экрана через Xvfb, например.

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

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

Худший ответ:
Это, скорее, плоские фигуры. Массивы точек, расположение и искажение которых задаётся мат. формулами.
Тут нет загораживания одной «сферой» другой: все точки видны, просто поверх друг друга рисуются. Нет «обратной стороны» Луны.

Начните с поиска подходящей визуализации одной «сферы». 

В недеформированном виде, это, наверное, просто круг, заполненный точками «по мелким клеточкам».
Точки, расстояние которых до центра не превышает порог R.

Искажение такое плавное можно получить, используя шум Перлина. Он даст плавные псевдослучайные неповторяющиеся «волны». Для каждой точки сетки считать значение двумерного шума и сдвигать точку на эти значения (x, y). Получатся волны на тряпочке )
Вопрос: Почему размер int такой?

Лучший ответ:
Так много, друг Горацио, на свете, что и не снилось нашим мудрецам...

С работает на разных платформах и даже на разных архитектурах. И размер int в этих платформах и архитектурах - он - внезапно - разный!

А работает ли там модно-стильно-молодежный Rust - я не знаю :) Я уже столько этих "убийц С" перевидал :)

Худший ответ:
int зависит от разрядности
4
8
16
32
64
128
512
зы в отличии от недоязыков C и C++ задумывались переносимыми на все платформы
так что он всегда плавающий, как и указатели просто проимите это
Вопрос: Как сделать двойную стрелочку на Css?

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

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

Лучший ответ:
if(num=>5&&num<=10){
=> - никакой это не оператор сравнения.

Вы тут функцию создаёте, а булевым эквивалентом функции является true.

Худший ответ:
num=>5 замените на num>=5.
Вопрос: Где проверить код на кроссбраузерность?

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

Вариант на по-быстрому: поставить https://www.falkon.org/download/ - он работает на webkit как и safari, а потому 90% багов совпадают.)

Худший ответ:
Скачать VirtualBox, установить OS (потребуется образ macOS), перекинуть проект и протестировать. Профит
Пример гайда по установке: https://www.geekrar.com/how-to-install-macos-big-s...
Вопрос: Что за ошибка при подключении Ubuntu?

Лучший ответ:
SSH ключ не тот. Или его нет. Или ключ тот, а хост не тот...

Худший ответ:
Что-то пошло не так (с)