Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Где лучше применять функциональное программирование в JavaScript?

Лучший ответ:
ФП - где не требуется хранение состояния, а нужно лишь значение результата. (иначе ООП).

Худший ответ:
Привет.
В данный момент я слегка упарываюсь по ФП. И на самом деле это и хорошо и плохо одновременно.
Хорошо потому, что заставляю мозг думать немного иначе (привет рекурсия), плохо потому, что не все задачи поддаются решению в ФП стиле. К тому же рекурсия на больших данных переполняет стек, а хвостовую рекурсию пока реализовали только в сафари (прощай рекурсия). Однако функции, которые априори будут работать с маленьким размером данных я, иногда позволяю себе написать в рекурсивном виде.
К слову про RxJs. Я "̶н̶е̶ ̶ч̶и̶т̶а̶л̶,̶ ̶н̶о̶ ̶о̶с̶у̶ж̶д̶а̶ю̶"̶ , не изучал его, но слышал, что в библиотеке всё построено на ФП, и это одна из моих целей к изучению.
Как с ФП так и с ООП можно решать определённые типы задач. И порой код выглядит очень усложнённым, если  мы пытаемся применить ФП для решения ООП задачи и наоборот.
Отчасти нам повезло, что js позволяет делать и так, и эдак, и не заключает нас в рамки использования какой-то одной концепции.Забавная статья про ФП и ООПОчень годный цикл из трёх докладов на тему ООП, и почему оно нам нужно. Здесь Антон рассказывает о том, что такое доменная сложность, и этот доклад очень повлиял на моё восприятие ФП и ООП подходов. Теперь, если нужно принять решение, какой подход использовать, я спрашиваю себя, с какой доменной сложностью я столкнулся.
Согласитесь, что до возникновения определённых требований(пока не представляю каких), нет смысла реализовывать функциональность сложения чисел с использованием ООП.Я даже не знаю как это правильно реализовать на ООП...class Sum {
    static sum(a, b) {
        return a + b;
    }
}

class Sum {
    constructor(a, b) {
        this.a = a;
        this.b = b;
    }
    
    sum() {
        return this.a + this.b;
    }
}При том, что в функциональном стиле это arrow function в одну строкуconst sum = (a, b) => a + b;А в haskell это вообще великолепно:sum :: Int -> Int -> Int
sum a b = a + b
Есть, кстати, великолепный учебник по Haskell.
В качестве эпиолга могу сказать лишь то, что скажет любой нормальный программист: пишите понятный код. Не важно в каком стиле он написан, важно чтобы он:решал поставленную задачубыл легко поддерживаемым
Вопрос: Как получить данные через интернет от компьютера?

Лучший ответ:
какие данные? с какого сервера?
непонятен вопрос
если прямой ответ - запросом с сервера на нужные данные,которые есть на ПК)

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

Лучший ответ:
Инициализируйте num изначально
int num = 0;
P.S. Дело в том что блок finally выполяется в любом случае, а если я введу вместо числа слово из трех букв то сначла отработает кетч на несоотвествие типа, а потом мой *** попытается перевести в дабл и возвести во вторую степень.
Правильно этот код было бы написать как-то так
Console.Write("Введите целое число -> ");
            int num;
            try
            {
                num = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Ваше число в квадрате -> " + Math.Pow(Convert.ToDouble(num), 2.0));
            }
            catch (FormatException)
            {
                Console.WriteLine("Несоответствие типа.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

Худший ответ:
А теперь переведите ошибку. И подумайте что должно вывестись в консоль в том случае, если Convert вызовет исключение. Какое будет значение num?
Вопрос: Что надо знать юристу в IT?

Лучший ответ:
Пробуйте, кто же мешает-то? А чтобы понять чем придется заниматься - ну попробуйте отвечать на вопросы тега "Юриспруденция в ИТ". 

Что может понадобиться:
Авторское право
Доменные споры
Все, что касается вирусов и вмешательства в работу компьютерных систем
Закон Яровой
Закон о суверенном Рунете
ПДн
Все что относится к Роскомнадзору, законности и незаконности блокировок
Все что относится к VPN, Tor, I2P 
Торренты

В тырнете можно найти множество практики по делам такого вида.

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

Лучший ответ:
Не надо никакого indexOf:

const text = [ 'hello, world!!', 'fuck the world', 'fuck everything' ];

$('селектор заголовков').click(function() {
  const index = $(this).data('index') || 0;
  $(this).text(text[index]).data('index', (index + 1) % text.length);
});
https://jsfiddle.net/v0q9ys31/

Худший ответ:
В чём ошибка исходного кода:
Во всех заголовках присутствует в конце зачем-то единица.
И поэтому при очередном клике, раньше других срабатывает одно и то же условие,
где ищется '1' и заголовок становится 2 - click again!1

Как лучше
Где-то сохранять, какой из заголовков виден сейчас.
Не текст заголовка — тексты могут частично совпадать и indexOf() начнёт ошибаться — а номер заголовка.

0xD34F подсказал как всегда красивый, правильный и лаконичный вариант.

Ещё можно держать переменную, указывающую на очередной заголовок:const headers = ['Мойте руки', 'Сидите дома', 'Помогайте соседям', ];
let currentHeader = 0;
$('#header').on('click', function() {
  $(this).text(headers[currentHeader]);
  currentHeader += 1;
  currentHeader %= headers.length;
});
Вопрос: Есть ли полноценная история Java-апплетов?

Лучший ответ:
Не очень понятен смысл этого доклада. Вроде как it-археология еще не появилась как наука.
Java Appletts, ActiveX, Macromedia/Adobe Flash - это всё технологии которые умерли и браузеры их не поддерживают. В этом будет основная проблема при написании доклада. Некуда смотреть во время demo. Документация по ним скорее всего есть в архивах oracle.com (sun.com) надо просто искать мануалы от 90х 2000х годов на сайте производителя. Думаю что можно найти очень много старых электронных pdf книжек на эту тему.

Худший ответ:
https://www.vice.com/en_us/article/8q8n3k/a-brief-...Я делаю доклад в университете и часть моей темы - это история Java-апплетов. Проблема в том, что полноценно я как-то не могу ее найти. На том же Хабре есть лишь история самой Java, но не про апплеты, про них как-то супер мало.
Ну так её много и разрозненной и не в русском сегменте интернета.
Придётся собирать по крупицам, проводить своего рода расследование, переводить, копить ссылки на источники. С 1995 года. Зарубежные компьютерные журналы, патенты, исследовательские статьи, противостояния корпораций. Так чтобы взять книгу и там все написано (подробная история) в случае с докладом не пройдёт, все сам, все сам. По-настоящему. Тем более апплеты уже того давно немного мертвы и никому не нужны, даже больше о них хотят забыть и не вспоминать даже создатели технологии. 
Раз уж инфы в вики недостаточно.
Вопрос: На какие курсы по python пойти?

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

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

Лучший ответ:
Производная частного равна разности произведения производной числителя на знаменатель и произведения числителя на производную знаменателя, деленной на квадрат знаменателя.
(1/(1 + е^-х))' 
= (1' * (1 + е^-х) - 1 * (1 + е^-х)')/(1 + е^-х)^2 #по формуле производной частного
=( 0 * (...) - 1' + (е^-х)' )/(1 + е^-х)^2 #по формуле производной суммы
= (- e^-x * (-x)')/(1 + е^-х)^2 #по формуле производной экспоненты
= (e^-x)/(1 + е^-х)^2 
Дальше
f(x) = 1/(1 + е^-х)
 (e^-x)/(1 + е^-х)^2  
=  (e^-x)/(1 + е^-х) * 1/(1 + е^-х) 
= (e^-x)/(1 + е^-х) * f(x)
= (-1 + 1 + e^-x) / (1 + e^-x) * f(x)
= (-1 + (1 + e^-x)) / (1 + e^-x) * f(x)
= ((-1 / (1 + e^-x) + (1 + e^-x)/(1 + e^-x)) * f(x)
= (1 - (1/(1 + e^-x))) * f(x)
= (1 - f(x)) * f(x)
То есть это никакой не "другой способ вычисления производной в МЛ", это просто преобразования производной этой конкретной функции.
Подробнее изучить в учебнике по математике за 8-11 класс.

Худший ответ:
Это обычная производная сложной функции, почитайте вот эту статью и следующие за ней, чтобы научиться работать с производными, это вам в любом случае пригодится.
https://mathprofi.net/kak_naiti_proizvodnuju.html
Вот ответ на вторую часть вашего вопроса: 
https://towardsdatascience.com/derivative-of-the-s...
Просто эквивалентные преобразования, не более.
Вопрос: Существуют ли CDN для PHP библиотек?

Лучший ответ:
composer — это пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении.

PEAR (акроним от английских слов PHP Extension and Application Repository) — это библиотека классов PHP с открытым исходным кодом, распространяемых через одноименный пакетный менеджер. В стандартную поставку PHP входит система управления классами PEAR, которая позволяет легко скачивать и обновлять их.
(это более старый и низкоуровневый механизм, но до сих пор применяется в некоторых системах)

Этот ваш пример
$code = file_get_contents('https://cdnphp.com/blablabla.php');
eval($code);
Можно заменить даже на include, только не забыть изменить настройку allow_url_include.
Но таким образом вы во-первых откроете потенциальную дыру в безопасности, во вторых, оно же будет скачиваться при каждом исполнении скрипта? То есть добавится задержка. Логично было бы сохранять файл локально в какую-то папку. А что если у него вышла новая версия?.. И вот вы уже изобретаете свой вариант композера.

Худший ответ:
Бывают ли CDN для PHP скриптов?
Github / Gitlab / packagist.org (composer)

Существует ли похожая практика для PHP или никто так не делает из-за небезопасности запуска удаленного PHP кода?
За такое в угол и на гручку. За eval - тоже.
Вопрос: Как работает (arg)=>(arg)=> и т.д?

Лучший ответ:
Это называется "стрелочная функция" https://developer.mozilla.org/ru/docs/Web/JavaScri...(arg) => arg
это то же самое что иfunction (arg) {
  return arg;
}
аarg => arg => arg;
это то же самое чтоfunction(arg) {
  return function(arg) {
    return arg;
  }
}
Последний пример не имеет особого смысла потому что первый arg никак не учитывается в дальнейшем.
У стрелочных функций есть одна особенность, отличающая их от обычных функций: стрелочная функция получает тот контекст this, где она была объявлена. За это их все безумно любят и предпочитают использовать вместо обычной function.

Худший ответ:
А что вам непонятно в этой записи? 
Стрелочная функция, которая возвращает стрелочную?
Вопрос: Как вы читаете незнакомый код?

Лучший ответ:
Наткнулся недавно на статью.
Почему программисты ненавидят работать с чужим кодом? 
Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на объект, а там кроме недостроенного здания: огромный вентилятор (размером со здание), большой воздушный шар и комната набитая швабрами. Почесав голову, ты разбираешь этот хлам и доделываешь лабораторию. Сдаешь объект ученным, но через 5 минут они выбегают с криком: "УТЕЧКА ЯДОВИТОГО ГАЗА!!!".
— Как так–то, б..ть! Должно же работать! — в отчаянии кричишь ты и звонишь прошлому прорабу:
— Вася, у нас ядовитый газ потёк! В чем проблема?
— Не знаю, должно было все работать. Что–то в проекте менял?
— Немного, швабры вынес...
— Швабры потолок держали!
— Что??? Что, б...ть, извините???
— Говорю, швабры потолок держали. Над ними цистерны с газом были. Очень тяжелые, пришлось в комнату снизу швабры напихать.
— Ты хотя бы записку на двери повесил бы, что швабры для держания потолка! У нас тут ядовитый газ течет! Что нам делать?
— Включай вентилятор. Он сдует газ с острова.
— Я его, б...ть, демонтировал сразу же!
— Зачем?
— Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик бл...ских ПРОТИВОГАЗОВ?
— Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.
— Вася, я убрал твой вентилятор! Мы тут задыхаемся!
— Херли вы тогда там делаете? Садитесь на воздушный шар и у..бывайте!

Худший ответ:
Есть два способа
1) Пошагово под отладчиком выполнить программу
2) Написать тесты для приложения
Первый проще, второй правильнее.
Вопрос: Почему при монтировании пустого контейнера в VeraCrypt он чем то уже занят?

Лучший ответ:
Файловая таблица NTFS.

Худший ответ:
может System Volume Information и подобное?
Вопрос: Семантическая верстка или div?

Лучший ответ:
div это безликий элемент не имеющий смысловой нагрузки. 

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

Если это закрытый ресурс, какой-нибудь дашборд или типа того, куда не зайдут ни роботы ни незнакомые люди, то можно и div. 

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

Худший ответ:
Зависит от задачи
Вопрос: Как убрать незашифрованную страницу?

Лучший ответ:
Во-первых, редирект с HTTP на HTTPS настроить, как посоветовали выше, а во-вторых, добавить заголовок Strict-transport-security, чтобы браузеры после первого открытия сайта запомнили это и при последующих открытиях сайта автоматом подключались по HTTPS, не дёргая лишний раз HTTP.

Худший ответ:
Как сделать так, чтобы при вводе обоих вариантов, загружалась страница с защищённым соединением?
Включить редирект на https.
Ты не уточнил какой сервер, поэтому Пример для nginxserver {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name _;
	return 301 https://$host$request_uri;
}
Вопрос: 3Ds Max или Maya?

Лучший ответ:
Новичку не нужна ни "майка", ни макс. Новичку будет достаточно Blender 3D: бесплатный, быстрый, злой.
Забейте вы на все эти курсы, что предлагают стать 3D  дизайнером за неделю, освоив такой-то из вышеупомянутых продуктов. Во-первых, вопрос денежный: видели сколько стоит лицензия на то и другое? На курсах обычно предлагают скачать и установить 30-дневный триал, или (в крайних случаях, если студент говнится и задаёт неудобные вопросы) дают ему студенческую версию с годовой лицензией. Но это круговая порука, и что вы будете делать, когда станете работать сами на себя? Вариант с этими двумя хорош, когда вы получаете работу в студии, которая уже владеет и софтом, и (что очень важно) мощными рабочими станциями, на которых этот софт можно запускать с комфортом. Во-вторых, я честно не представляю, зачем новичку может понадобиться 3ds Max или Maya. Все базовые возможности есть в бесплатных редакторах типа того же Блендера. Плюс у него сейчас очень разраслось коммунити, и найти уроки (даже на русском) вообще не проблема.

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

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

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

Худший ответ:
Самый простойmysql -uПОЛЬЗОВАТЕЛЬ -pПАРОЛЬ БАЗА ДАННЫХ <<EOF
SQL_ЗАПРОС_1
SQL_ЗАПРОС_2
SQL_ЗАПРОС_N
EOF
не забываем экранировать спец символы
Вопрос: Где можно посмотреть практики написания хороших тестов для laravel?

Лучший ответ:
В общем можно посмотреть у  Jeffrey Way на https://laracasts.com
Еще мне нравилась его книга правда наверное она не много устарела.

Начал копаться и вот здесь не понимаю каким образом в шаблон эндпоинта подставляется конкретный id. https://github.com/austintoddj/canvas/blob/master/...к
Покопался и открыл для себя тоже кое что новое..
В ссылке есть ниже метод и у него сверху мета тэг @dataProvider
Что это такое почитать об этом можно здесь

Что касательно true way or laravel way - это все относительно.
Например в этом проекте от тестирует отношения в моделях, это скажем прям такое..
Потом он тестирует консольные команды..интересно зачем?
Конечно можно все протестировать, но какой в этом собственно смысл?
Организация папок - это тоже дело щепетильное, как и название методов и переменных.

Мне больше нравиться подход DDD. Как правило в проекте чаще всего меняются бизнес требования а не инфраструктура.
Что может произойти вероятнее - поменять базу данных или поменять алгоритм начисление денежных средств?
Так вот тестирование доменной области намного оправдание чем тестирование отношений модели в Eloquent.
Ладно, что - то я разошелся, короче говоря, пишите тесты -> набирайтесь опыта -> рефакторинг -> пишите тесты.

Худший ответ:
В программировании можно какие угодно "бест практики" выдумывать в бесконечных вариациях. Я бы не смотрел на эти изобретения. В доках все понятно написано. Http тесты тестируют http запросы и больше ничего, список ассертов приведен и тд. Тесты не пишут для бест практик и "покрытия", их пишут, чтобы они тебе были нужны как разработчику, фиксировали нужный функционал и работали. А не тесты ради тестов. По структуре все просто - одинаковые объекты, конфиги и тд (как, например у него здесь везде дублируется primaryPost) - в setUp тест класса если во всех тестах или выносится в TestCase/трейты и дальше тесты. Каждый запускается с нуля, за редким исключением прописываются зависимости через @depends. И тесты нужно писать до разработки(тдд). Иначе это будет фигня, а не тесты. Или скорее всего не будут т.к. "покрывать" существующий функционал это очень утомительно и неинтересно. В отличие от тдд, с которым разработка легка и приятна.
Вопрос: Изоляция данных — следует ли внешней системе-поставщику данных знать о внутренних идентификаторах системы-потребителя данных?

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

Худший ответ:
"Ну конечно, естественно, само собой разумеется - нет!" (Гэндальф в русском переводе).
Эта область называется "инкапсуляция", и это самые азы архитектуры.
Вопрос: Сетевое лазерное МФУ, подскажете оптимальный вариант? И как включить его в локальную сеть?

Лучший ответ:
Подключите проводом в коммутатор или роутер (если порты есть свободные) По поводу модели - на вкус и цвет (мне нравятся Kyocera)

Худший ответ:
Kyocera ECOSYS M2040dn
Не идеальная модель, но на текущий момент, в классе SOHO, лучший вариант за вменяемые деньги.
Вопрос: Как не попасть в «неправильный» PHP?

Лучший ответ:
 нормальной архитектурой, качеством кода, нормальным современным процессом с CI/CD и т.д.
От говнопроекта не застрахован никто, вне зависимости, php, java, c#, js, brainfuck...
Чаще всего архитектура, качество кода и вот это вот все развито там, где это критично для бизнеса и бизнес понимает, либо пишем нормально, либо жопа. Но таких, к сожалению, мало. Можете на собесе спросить, какой даунтайм допускается и как часто они происходят. Если адунтайм в минуту надо согласовывать за неделю и более - скорее всего об качестве пекутся. Если даунтайм в пол часа не особо проблема - всем нас*ать))

С одной стороны в требованиях были знания стильно-модно-молодежных Redis, Symfony понимания Git-Flow, Agile и т.д. и там же указаны - знание WP 1С-Битрикс. Как это можно понимать?
Это некомпетентность составившего вакансию, не более.

Как то, что придется занимать разно плановыми задачами?
Задайте вопрос рекрутеру))

Если выделить суть вопроса - как отличить компанию в которой можно будет вырасти в PHP разработчика, а не веб мастера.
Задайте несколько вопросов:
0. Вы продуктовая компания?
1. Что с их точки зрения легаси, какой его процент в проекте и как часто возвращается технический долг?
2. Какой процесс разработки от начала и до конца?
3. Какие стандарты и требования используются?
4. Какое покрытие тестами?

Худший ответ:
если работаешь админом может посмотреть в сторону dev-ops?
Вопрос: Можно ли это переписать на ООП? И как примерно всё это можно распределить по классам?

Лучший ответ:
Попробуйте натянуть этот функционал на несложный фреймворк вроде laravel - да, он не идеальный, но как по мне лучше начать делать хоть как-то, а потом постепенно разбираться, как писать ООП красиво.
Items, users, images - могут стать классами моделей, где описаны их свойства и методы для их получения/записи.
Из function_images можно написать модуль (условно говоря папочку с набором классов-сервисов), где будет описана логика ресайза отдельно, логика обрезки отдельно и т.д.

Худший ответ:
например вместо файла function_items.php будет Class Items и всё что в этом файле будет в одном классе, так?  
Нет, совсем не так, но для начала можете и так попробовать. Затем берите любой популярный фреймворк и пробуйте в нем, заодно изучай как реализует те или иные вещи фреймворк.
Но это тогда, когда будете хорошо знать процедурный программирование.
Вопрос: Могу ли я поставить ОЗУ частоты, которая больше чем позволяет процесор?

Лучший ответ:
Да, можете.
Да, будет.

Худший ответ:
Твой чипсет не поддерживает разгон ни памяти, ни процессора)) Intel же
Вопрос: Как отключить USB порт на компьютере (вместе с питанием)?

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

Если нельзя разбирать - выломайте. Это самый надёжный вариант.

Худший ответ:
из чего-нибудь по типу Диспетчера устройств или специального софта
Только в комбинации с какой-нибудь ардуиной с релюшкой, которая будет разрывать цепь питания по команде
Вопрос: Почему используются сравнения «задом наперед», например, false == obj.prop.subProp?

Лучший ответ:
Это называется Yoda-style.
 true/false переменной по ошибке случайно не присвоить чтобы.
Слева значение это будет в условии если, компиляции на стадии ошибку получишь ты.

Худший ответ:
Это защита от стрельбы себе в ногу при использовании убогих систем.
if(x=1) прокатит вместо if(x==1), а вот if(1=x) отвалится почти везде
Вопрос: Как сделать так чтобы дискорд бот воспринимал команду из 2х слов?

Лучший ответ:
Сделать команду clear с параметром и игнорировать, если параметр не равен all:

@bot.command(name='clear')
async def clear_all(ctx, arg=None)
  if arg != 'all': return
  ...

Худший ответ:
Используйте группы.
@bot.group()
async def clear(ctx):
    """Строка помощи к [p]clear"""
    ...

@clear.command(name="all")
async def _all(ctx):
    """Строка помощи для [p]clear all"""
    ...
Вопрос: Как поменять комментарии коммита из файла?

Лучший ответ:
Прошу помочь с оптимизацией данного скрипта.
Избавиться от цикла, перенеся логику внутрь команды передаваемой в --msg-filter. Примерно так:

#!/bin/bash

fille="$1"

cmd=

while read -r line; do
  source=$(echo "$line" | awk 'BEGIN { FS = "," } { print $1} ');
  target=$(echo "$line" | awk 'BEGIN { FS = "," } { print $2} ');
  cmd="${cmd}s,$source,$target,g;"
done < "$file"

git filter-branch -f --msg-filter "sed -e '$cmd'"

Худший ответ:
А разве это возможно? Git позволяет изменить только последние коммиты, схлопнув их в 1 коммит (amend).

Или можно полностью создать новый репо и перенести туда все изменения по 1 штуке.