Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Стоит ли покупать NordVPN?

Лучший ответ:
Рассмотрите hidemy.name как альтернативу. Работаем с конца 2006, это уже более 13 лет и закрываться не планировали. Скидок нет, но зато есть цены в рублях, и они значительно ниже упомянутого вами сервиса. С учетом текущего курса, просто комическая разница. 

Буду рад проконсультировать вас, если появятся вопросы. Моя почта admin@hidemy.name пишите, предоставлю вам длительную тестовую подписку, чтобы вы неспешно решили для себя подходит сервис или нет.

Худший ответ:
Возможно, лучше купить ProtonVPN. Лично у меня к ним несколько больше доверия, учитывая, что в РФ их блокировали. Закрываться они точно не собираются.
Вопрос: Какой блок питания нужен для 19 HDD?

Лучший ответ:
Важны пусковые токи и сколько ватт по линиям 12В может дать БП. Не каждый блок питания способен такое предложить.

Худший ответ:
"Ведь по расчётах вроде должен" ну так сами и ответили же
Вопрос: Установил windows на жесткий диск, вставил в другой пк(на нем запоролен биос) и пк не загружается, что делать?

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

Худший ответ:
sysprep утилиту прогони прежде чем переносить.
И для сброса биоса достаточно вытащить на продолжительное время батарейку
Вопрос: Почему происходит редирект?

Лучший ответ:
Битрикс будет перекидывать, надо ловить ответ от битрикса в nginx и менять порт, но это сложно отловить, будет много граблей и я Вам не рекомендую такую схему.
Более правильно - разрулить доменными именами. Если пользователь заходит на b24.domain.com - попадает в битрикс, если my.domain.com, то на вашу страничку.

Худший ответ:
БД Битрикс24 откройте через phpmyadmin и пробегитесь по всем таблицам: везде, где встречается доменное имя портала (а это дофига где) замените его на свое 80.80.80.80:666, потом скиньте кеш браузера и днс на компе, с которого заходите - и будет работать.
Вопрос: Как файлы сайта с виртуальной машины синхронизировать с Windows?

Лучший ответ:
Погугли: virtualbox folder sharing

Худший ответ:
Если есть SSH-доступ в виртуальную машину - значит будет работать и WinSCP. Это аналог FTP-клиента, но по SSH.
Вопрос: Как спарить сложные данные JSON?

Лучший ответ:
У вас JSON кривой по ссылке. В этой строчке {"id":67,"iconImage":"image\/catalog\/style\/modile\/icons-03.png" id имеет целочисленный тип,  хотя во всех остальных местах это строка. 
Если не учитывать этот косяк в JSON, то такое можно спарсить как-то так:Кодstruct EntryList: Decodable {
  struct DynamicCodingKey: CodingKey {
    var stringValue: String
    init?(stringValue: String) { self.stringValue = stringValue }
    var intValue: Int? { nil }
    init?(intValue: Int) { nil }
  }

  struct Entry: Decodable {
    struct Content: Decodable {
      struct Subcategory: Decodable {
        let id: String
        let iconImage: String
        let name: String
        let sortOrder: String
        let type: String
      }
      
      let iconImage: String
      let iconImageActive: String
      let image: String
      let name: String
      let sortOrder: String
      let subcategories: [Subcategory]
    }
    
    let name: String
    let content: Content
  }
 
  let entries: [Entry]
  
  init(from decoder: Decoder) throws {
    let entriesContainer = try decoder.container(keyedBy: DynamicCodingKey.self)
    
    entries = try entriesContainer.allKeys.map { key in
      print(key)
      let content = try entriesContainer.decode(Entry.Content.self, forKey: key)
      return Entry(name: key.stringValue, content: content)
    }
  }
}

var entryList: EntryList?

let task = URLSession
  .shared
  .dataTask(with: URL(string: "https://blackstarshop.ru/index.php?route=api/v1/categories")!) { (data, _, error) in
    guard error == nil else { return }
    guard let data = data else { return }
    
    entryList = try! JSONDecoder().decode(EntryList.self, from: data)
  }

task.resume()

Худший ответ:
Я думаю, что QuickType поможет вам в разы быстрее сориентироваться с глубоким JSON'ом, анализируя то, что там лежит. К примеру если вы, как нормальный человек в массиве из 255 объектов можете пропустить пустое поле по какому-либо ключу - это решение поможет. Если хоть один раз такова ситуация повториться - оно поставить optional вместо обычного значения. Пользуйтесь :)
Вопрос: Как добавить кнопку на сторонний сайт?

Лучший ответ:
можно написать скрипт для greasemonkey/tampermonkey (или аналогов)
https://openuserjs.org/about/Tampermonkey-for-Android

Худший ответ:
XSS захотели?) Если на сайте с безопасностью все ок, то не получится;)
Tampermonkey подсказали, но на телефонах никак, разве что свой сервер подымать, получать страницу через сервер, дописывать свои стили и скрипты и отдавать, но тогда все равно адрес сайта будет другой, да и с сервером не все так просто)
Вопрос: Можно как-то записывать в файл json объект, а не строку?

Лучший ответ:
Как вариант, можно воспользоваться тем же JSON.stringify, но с дополнительными параметрами:fs.writeFileSync('file.json', JSON.stringify(data, null, '\t'));

Худший ответ:
Ну, вообще, ничего страшного в этом нет, это норма. Ну если уж прямо надо красивый JSON вывести - то перед сохранением строки - прогоните её через этот самый бьютифаер.
Например: https://www.npmjs.com/package/json-beautify
Вопрос: Как вам такая сборка?

Лучший ответ:
Что-то упущено из дисковой системы. 120 гиг ssd - это всё?
DVD точно нужен? По-моему, это уже пережиток.
Блок питания стоит поискать поавторитетнее.

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

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

Худший ответ:
Много их - Jira, YouTrack, GitLab - эти все точно поддерживают кодстайлинг.
Вопрос: Как спарсенные данные Python выгрузить на чужой сайт?

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

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

Лучший ответ:
react dev tools + redux dev tools + console.log + webpack-bundle-analyzer вам для начала за глаза.

Худший ответ:
console.log и alert спешат на помощь! а где они не справятся, зовите Гаечку в лице react-dev-tools
Вопрос: Nokia 7.1 заряжается выше максимального значения (3060 мА•ч). Как это возможно?

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

Худший ответ:
Если заряда хватает на час работы, то батареи наступил конец
Вопрос: Как деплоить сайт на laravel? Для каких целей существует Maintenance Mode?

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

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

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

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

Лучший ответ:
packagist.org, github.com. Написать на habr.com обзор.

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

Лучший ответ:
Как этот процесс автоматизировать? Смотря что считать автоматизацией.

Встать в B1, нажать =A1, встать в C1, нажать =A2, выделить от B1 до С3 и протянуть вниз, скрыть столбец A. Готово.
Вот это считается автоматизацией или не считается?

Худший ответ:
Предложу далеко не идеальный вариант, но можно будет сделать быстро. В ячейку b1 пишете формулу =A2, и протягиваете формулу до конца листа\значений. Потом формулу можно превратить в значение, и по столбу А отфильтровать пустые строчки и\или строчки с *https*, и удалить их при необходимости. Получите требуемый список
Вопрос: Как написать код на пайтоне который проверяет наличие текста в текстовом файле?

Лучший ответ:
Если я вас правильно понял
pswrd = input()
with open("passwords", "r") as f:
    data = f.read()
    if pswrd in data:
        print("here")
    else:
        with open("passwords", "a") as f2:
            f2.write(f"{pswrd}\n")

Худший ответ:
Почему list(input())?
Вопрос: Почему в JS первые слова пишут с маленькой буквы, а последющие с большой?

Лучший ответ:
Это просто соглашение по именованию методов/функций, camelCase
Для каждого языка свой style guide, но они +- одинаковые везде

по JS можете почитать style guide AirBnb

Худший ответ:
CamelCase.
Все переменные с маленькой. Имена классов с большой, а экземпляры классов снова с маленькой.
Два слова подряд чтоб выделить пишут вместе, а большой буквой выделяют, чтоб легче было читать.
Вопрос: Почему не срабатывает условие (event.type и event.target)?

Лучший ответ:
У вас сразу классическая ошибка новичка в условии:
if (event.type = "click") {
вместо оператора сравнения === вы используете оператор присвоения =

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

let elem = document.getElementById('elem');
elem.addEventListener('click', function(e) { 
  if (e.target.tagName === 'UL') {
    let li = document.createElement('li');
    li.innerHTML = 'text';
    elem.appendChild(li);
  }
  if (e.target.tagName === 'LI') {
    e.target.textContent += '!';
  }
})
Вопрос: Как из строки вытащить оператор «+»?

Лучший ответ:
Если по простому - разбивайте строку через regexp.
String text = "5+(2-3*8/10)/123=ERR";
		Pattern pattern = Pattern.compile("[+|\\-|\\*|/|=|\\(|\\)]");
		Matcher matcher = pattern.matcher(text);
		
		int prev = 0;
		while(matcher.find()) {
			String operator = text.substring(matcher.start(), matcher.end());
			String operand = text.substring(prev, matcher.start());
			System.out.printf("Operand: '%s', operator: '%s'\n", operand, operator);
			prev = matcher.end();
		}
		if(prev > 0 && prev < text.length()) {
			String last = text.substring(prev, text.length());
			System.out.printf("Last: %s\n", last);
		}

Operand: '5', operator: '+'
Operand: '', operator: '('
Operand: '2', operator: '-'
Operand: '3', operator: '*'
Operand: '8', operator: '/'
Operand: '10', operator: ')'
Operand: '', operator: '/'
Operand: '123', operator: '='
Last: ERR
Ну а если по взрослому - то вам в antlr -  https://www.antlr.org/ или javaCC - https://javacc.github.io/javacc/

ЗЫ. для antlr есть фал грамматики для калькулятора - https://github.com/antlr/grammars-v4/tree/master/c...
И на почитать - https://www.baeldung.com/java-antlr

Худший ответ:
Если ты имеешь в виду разделить строку на символы по знаку, то тебе нужен метод split(String regex):

String a "5+3";
String[] a1 = a.split("");
System.out.println(a1[0]);
System.out.println(a1[1]);
System.out.println(a1[2]);

Вывод:
5
+
3

Поясняю: метод split(String regex) разделяет строку по символу(-ам), который ты поставишь в качестве аргумента. Возвращает этот метод массив из полученных строк. Если ты вставишь в виде аргумента пустую строку, то он вернет массив из символов строки "5+3": {"5", "+", "3"} ! А дальше ты сможешь сделать с ними уже что захочешь)
Вопрос: Как идентифицировать устройство?

Лучший ответ:
1. Если стоит задача получать уникальный идентификатор для каждого браузера/устройства, который обращается к сайту, то для этого хорошо подходит технология Web Fingerprint.
Почитать о ней можно на вики.
Готовая релизация на JS: https://github.com/Valve/fingerprintjs2
2. Если нужно определять вид устройства с которого зашел пользователь (ПК, iPhone, смартфон на андроиде), то можно смотреть в user agent, как правило там есть информация о браузере пользователя и платформе, пример использования на JS.
3. Если же речь в вопросе идет о хранении идентификатора сессии пользователя, то cookies или localStorage.

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

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

Например, банально, кроме console.log(a); можно добавить console.log(html); сразу после того, как в этой переменной что-то должно появиться. Если появилось, то значит что-то не так после этой строки. Если не появилось, то что-то не так до этой строки. Из всевозможных ошибок мы сразу убираем половину.

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

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

Худший ответ:
в html не html, а объект request

request('https://google.com', function (error, response, html) {
    if (!error && response.statusCode == 200) {
        const $ = cheerio.load(html);

        const a = $('body').text();

        console.log(a);
    }
});
Вопрос: Как продавать скрипт и плагины к нему по лицензиям?

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

Худший ответ:
Для Joomla есть бесплатный компонент SW JProject. Он позволяет организовать скачивание скриптов по лицензионным ключам. Если Ваш скрипт позволяет обновляться, то можно на его же базе сделать сервер обновлений. Для продажи есть связка с популярным магазином JoomShopping.
Вопрос: Когда использовать useCallback, useMemo и useEffect?

Лучший ответ:
useEffect - это хук, который позволяет использовать сайд эффект. В классах его аналогом было использование componentDidMount, componentDidUpdate и componentWillUnmount. В нем можно делать подписки, отправлять запросы управлять анимацией и т. д.
const [data, setData] = useState(null);

useEffect(() => {
  const controller = new AbortController()
  fetchData(controller.signal).then(setData)

  return () => controller.abort()
}, [fetchData, setData])

useCallback и useMemo предназначены для оптимизации. useCallback получает на функцию и массив аргументов, и возвращает одну и туже функцию, до тех пор, пока аргументы не изменились. useMemo отличается тем, что он возвращает не саму функцию, а результат её выполнения. По большому счету они являются взаимозаменямыми.
Таким образом, useMemo используется для сохранения результатов тяжёлых вычислений, например обработка массива.
const data = useMemo(() => array.map(mapper).filter(predicate).reduce(reducer), [array])
А useCallback используется, когда важна постоянность ссылок на функцию. Например, когда мы передаём ссылку в компонент,  который использует React.PureComponent или React.memo, или, когда функция используется в качестве аргумента в других хуках
const handler = useCallback(() => {
  // что-то сделать 
}, [])

useEffect(() => {
  handler(value)
  // если не использовать useCallback, эффект будет срабатывать постоянно 
}, [handler, value])

Худший ответ:
Лучше внимательно изучить доку, она переведена на русский, а то можно упустить суть
https://ru.reactjs.org/docs/hooks-effect.html
Вопрос: Как отправить данные на другую страницу и перейти на неё при помощи php?

Лучший ответ:
Тот код, в котором вы собрались делать "редирект" - это скрипт, вызванный обращением СЕРВЕРА Робокассы к вашему СЕРВЕРУ. 
Причем произойти это обращение может через три часа после того, как клиент давно ушел с сайта, решив, что заплатить у него не получилось, только деньги сняли (потому что у какого-нибудь Мегафона пробка на серверах).

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

Худший ответ:
Костыль не нужен.

curl умеет и post отправлять и follow redirect.
Вопрос: Какие есть сервисы контроля удаленных сотрудников?

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

Худший ответ:
Всем спасибо, остановился на bitcop нужный функционал присутствует и цена устраивает
Вопрос: Обязательно ли высшее образование ИБ-исследователю?

Лучший ответ:
Я бы сказал "Да", но скажу "Зависит от конторы и ваших навыков".
А "корочку" иметь не помешает.

Худший ответ:
А мне даже интересно стало. Как можно ПРОДЕМОНСТРИРОВАТЬ свои достижения в области ИБ? В программировании - понимаю.  В DataScience - понимаю. Даже в сис.админстве  -  более менее понимаю. А вот в ИБ? 
И еще вопрос, а какие у вас достижения, которые могут перевесить образование?
Вопрос: Как настроить кеширование в браузере на WordPress?

Лучший ответ:
Проверяй на хостинге, включены ли модули - mod_headers
илиmod_expires
Если не найдешь такую кнопку, найди кнопку Связь с ТП
Один клиент долбился-долбился сам, htaccess лопатил вдоль и поперёк, неделю наверное колошматил этот несчастный файлик...
Потому что зажал пару тысчонок)))Но нет, раскошелили его..
Нажали на кнопку в панели хостинга. 
Перезагрузили сервер.
Гугл зачислил сайт в разряд шоколадных.Нонче зарабатывать стало труднее, клиенты научились гуглить и яндексить, ох тяжко....

Худший ответ:
У вас shared hosting? На таком хостинге очень сложно добиться высоких очков производительности.
Выкладывайте сайт на VPS и настраивайте веб-сервер.
Вопрос: Есть ли приимущества у Ruby перед PHP?

Лучший ответ:
руби умер, пора смириться, по крайней мере в СНГ, никаких преимуществ сейчас у него нет

Худший ответ:
Ruby для тех кто любит побыть один
я не шучу. наверно действительно шансы работать одному с крутым заказчиком гораздо выше чем на каком-нибудь C++, не говоря о чем-то еще более популярном и удобоваримом. только найти бы такого заказчика... вряд ли на зеленых сайтах фриланса)
Вопрос: Может ли начальник внутренним приказом установить размеры штрафов?

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

Худший ответ:
Может ли начальник внутренним приказом установить размеры штрафов?Нет конечно.
Размеры штрафа установлены законом. 
Начальник какой-либо организации своим приказом закон не перепишет.
Вопрос: Как называется такой режим работы Linux?

Лучший ответ:
Тебе нужен tmux

Худший ответ:
2) можно поменять если очень хочется - https://askubuntu.com/questions/1124397/how-do-i-i...
3) у меня всего одна консоль и я не могу переключаться - вряд ли. Я работаю с кучей сервером - всегда работает.
Вопрос: Установка Win10 на новый SSD, с одновременной работой старого HDD, будут ли коллизии?

Лучший ответ:
У тебя какая-то каша в голове.
> я хотел бы установить чистую ОС на новый SSD
Я бы просто склонировал раздел с системой или даже весь диск на SSD, если размер позволяет. Потом очистил бы HDD и скинул на него всё, чему не требуется большая скорость случайного доступа (изображения, музыка, видео).
> что произойдет с ОС и уже установленными программами на моем HDD
Они будут лежать на HDD. Если собираешься с нуля ставить систему, то можно даже удалить, если старую систему использвать не планируешь.
> будут ли видны эти программы на SSD
Если скопируешь файлы, то будут. Сами не переползут.
> или же надо будет как-то настраивать обоюдную работу дисков
Ну был в системе один диск, стало два.
Программы ставишь на SSD для скорости. Музычку-видосики хранишь на HDD. Стандартный усредненный сценарий использования SSD и HDD.

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

Лучший ответ:
А вы точно уверены, что

Платные варианты можно предлагать, лишь для образца, чтобы глянуть, как всё реализовать. 

Вот вам плагин E-learning ценой в 15$ для прекрасной October CMS . Вы уверены, что сделаете лучше быстрее и дешевле?

Лично не использовал данный плагин, но October CMS очень рекомендую за высокую степень ее дружественности для разработчика (под капотом Laravel).

На этой CMS можно сделать тоже самое очень гибкое на связке плагинов Shopaholic и Subscriptions for Shopaholic. Вы получите полноценный e-commerce по продаже курсов, но вот "учебную" часть нужно будет разрабатывать "с нуля". Хотя, возможно, получится подружить плагины Shopaholic и E-learning.

Худший ответ:
Самому пилить. Всё остальное полумеры. Или не подойдет или подойдет не полностью. И всё равно пилить.
Вопрос: Не могу решить задачу?

Лучший ответ:
Ну так всё правильно. Количество дней же ты НЕ СЧИТАЕШЬ.
Ты, похоже, вообще не понимаешь что этот код делает.may_2017 = [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25, 17, 19]
may_2018 = [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23, 18, 22, 23, 11]

def comfort_count(temperatures):
    k = 0
    for temp in temperatures:
        if temp >= 22 and temp <= 26:
              k = k + 1
    print(k)

comfort_count(may_2017)  
comfort_count(may_2018)

Худший ответ:
may_2017 = [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25, 17, 19]
may_2018 = [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23, 18, 22, 23, 11]

# допишите код ниже
def comfort_count(temperatures):
    count = 0
    for temp in temperatures:
        if 21 < temp <27:
            count += 1
    print('Количество комфортных дней в этом месяце:', count)
# дальше код не меняйте
comfort_count(may_2017)  # узнаем, что было в мае 2017 г.
comfort_count(may_2018)  # узнаем, что было в мае 2018 г
Вопрос: Как скачать видеофайл, если он защищён от скачивания и буферизируется с подкачиванием?

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


да ты у нас настоящий умник, Брэд.... умный... @%?ть

Как создать связку видеоплеера клиент-сервер, что б видео транслировалось фрагментами и его было невозможно скачать?
Как использовать видеоплеер, что б файл нельзя было скачать?

софт скачивает, есть тягомотина от китайцев  метров на 150  - скачивает ЛЮБОЕ включая вебок, но ставить стремно, хз что в нее напихано, я тестил через VMWare
есть ummy downloader
есть ... короче не проблема

Худший ответ:
Что можете порекомендовать?Не поверишь! Headless browser + JS + detecting timing/position variable (для "перемотки" вперёд)!
Ну и дальше - собираешь куски.
Вопрос: Как вставить программу на сайт?

Лучший ответ:
Увы и ах. Перепишите ее для веба и встройте в сайт. Причём рекомендую vue, перенести логику экселя по вычислению довольно сложной функциональности заняло примерно 40 часов. Больше времени заняло согласование с заказчиком и понимание что предметной области.

Худший ответ:
Расплывчатая суть. Нужно больше данных. 

Как контрответ к совету потратить 40 часов своей жизни:
Если во фронте требуется ввести пару тройку значений и нажать на кнопку, а на бэке висит какой-нибудь пых, то вполне можно пускать через shell_exec и получать желаемый результат.
Вопрос: Для Django на Frontend какой js использовать лучше?

Лучший ответ:
На основании своего опыта, для фронта могу порекомендовать связку HTML, CSS,  JS (es6)

Худший ответ:
Вообще пофигу