Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Данное поведение провайдера это норма?

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

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

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

Почему пришел ответ? Скорее всего этот хост 188.***.172 использует адрес 192.168.40.41 для внутренней маршрутизации типа iBGP, OSPF или это его адрес в DMZ зоне. И какой-то админ отдает этот маршрут ( 192.168.40.0) в мир, а провайдер пропускает) Криворуких хватает)
Вопрос: Как сделать приватные поля в ларавеле?

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

Не пытайтесь делать то, что не понимаете, через лет 5 будет понятно, а пока делайте как в доках написано, про простому.
А бизнес логику в отдельные классы выносите. Пока ПО для боингов писать не начнёте, вам хватит.

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

Худший ответ:
UPD Как правильно заметил товарищ vism я тут немного чуши написал по инерции. Не посмотрел куда дал ссылку.  Там в примере главная проблема что человек из репозитория снова таки возвращает саму элокуент модель, а хорошо бы DTO - Data Transfer Object. Посмотрите пакет от Spatie https://github.com/spatie/data-transfer-object.

А в целом ответить на ваш вопрос легче было, если был бы ясен контекст. Зачем приватные поля? Возможно все проще перевести в данные у вас, и это логику "защиты" перенести на уровень валидации. Тогда и ставить ничего не нужно, просто в валидации, где нужно, проверяйте входящие данные и выкидывайте ошибку. Здесь будет и гибкость(где нужно разные влаидаторы) и "магия" Ларавел в целом сохраняется коробочная.
/---
Это потому, что Laravel  в качестве ORM использует Eloquent, который  сделан по паттерну ActiveRecord. Многие считают его антипаттерном. Оставим срачи за рамками.
Вам подойдёт внедрения подхода с паттерном репозитория .
Вот простой пример, будет понятно куда копать и как действовать:
https://www.twilio.com/blog/repository-pattern-in-...
Вопрос: Как рассчитать расстояние между объектами с динамическими X и Y?

Лучший ответ:
Так пойдёт?


Худший ответ:
Расстояние между объектами должно быть одинаковым
Одинаковым по отношению к реальному миру? Тогда забейте на разрешение экранов и тупо пилите под одно разрешение, которое вам надо, а на маленьких экранах оно просто не будет вмещаться в монитор. Иначе я не понимаю как можно сохранять расстояние, когда девайсом могут являться хоть часы, хоть плазма. 
Или всё-таки имеется ввиду процентное соотношение?
Вопрос: Можете покритиковать мой код?

Лучший ответ:
1) (Вкусовщина) стиль наименования не самый удачный. И переменные и функции называются одинаково - каждое слово с большой буквы без разделителей. Во всех массово применяемых стилях обычно переменные, функции и константы называются по разному. Например, переменные можно называть log_password. Функции и так оставить с большой буквы, а константы - полностью большими буквами.

2) обилие вложенных if. Практикуйте ранний выход. Например в Login() можно сделать так:
if (Data.is_open()) {
  std::cout << "Ошибка. У вас нет аккаунта" << std::endl;
  return;
}

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

3) Бесконечные рекурсивные вызовы - это плохо. Рано или поздно программа упадет с закончившимся стеком.
У вас Menu вызывает Login, который опять вызывает Menu. Да и сам Menu тоже.

Лучше сделать в Menu бесконечный цикл (while(true)) и или выходить из программы через exit(), или возвращать из Login, что надо завершаться и тогда в Menu делать break.

Худший ответ:
Мда. Любители крестов - мозохисты. Я-бы так написал.

using namespace std;

cout << "-Меню-\n";
Лаконично? 

И зачем вам такой перевод строки?
Что, хотите под DOS и Mac сразу писать? Готов спорить что не грозит.

А это что?
LogPassword == Password
Пароли так никто не проверяет. Есть функция которая сверяет хеши паролей. Потому что их не хранят никогда.
В базе тоже их не хранят.

А это что?
std::ofstream Data("Data.txt");
Всё пишем в один файл? Всех пользователей? И файл переписывается?
Вопрос: Как вернуть ДАВНО удаленное окно Оперы?

Лучший ответ:
Никак

Худший ответ:
Для обычно пользователя - никак. 

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

Но это все много времени и еще больше денег
Вопрос: Как отменить несколько коммитов в форкнутом репозитории?

Лучший ответ:
git clone <адрес твоего форка>
cd <...>
git reset <commit hash того коммита, до которого хочешь откатиться>
# можно оставить всё в мастере, но тогда надо предыдущую команду вызывать с --hard и сделать потом git push --force
# а можно создать новую ветку через git branch и git checkout и потом запушить её через git push

Худший ответ:
git clone <адрес твоего форка>
cd <...>
git reset <commit hash того коммита, до которого хочешь откатиться>
# можно оставить всё в мастере, но тогда надо предыдущую команду вызывать с --hard и сделать потом git push --force
# а можно создать новую ветку через git branch и git checkout и потом запушить её через git push
Вопрос: Как посмотреть общую историю Гугл переводчика?

Лучший ответ:
Чужую историю, разумеется, посмотреть нельзя. А своя здесь: https://myactivity.google.com/item?product=58

Худший ответ:
Можно покопаться в истории браузера, дело в том что каждый перевод попадает в историю браузера, так как сам текст размещается в ссылке:
https: //translate google com/?sl=en&tl=ru&text=hello&op=translate

это значит, можно либо вручную пощелкать в поиске, отфильтровав его по google translate либо копаться в sqlite базе данных places.sqlite простым запросом select url from moz_places where url like 'https://translate.google.com%' и поковыряв ссылки (для firefox), ну а а для chrome есть расширения по экспорту истории в csv.
Вопрос: Как можно вызвать метод, если он отличается от предыдущего на 1 цифру?

Лучший ответ:
Да у вас фигня какая-то. Должно быть
void Round(int roundIndex)

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

Можно архитектурными решениями обойтись - сложить методы/классы в контейнер, и итерироваться по ним.
КОд не дам )
Вопрос: Как организовать зависимость связей SQL?

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

Худший ответ:
Добрый день! 
Правильно ли я понимаю что связывание таблиц по внешним ключам мне в данном случае не нужно, так как постоянных связей в данном случае нет?
Предположу, что да. Хотя для более точного ответа было бы неплохо увидеть полную задачу.
В данном случае вы ищете строку с конкретным id и производите ту или иную операцию. Притом у вас, насколько я понял, хим. элементы разбросаны по 3-м таблицам. Если вы не можете логически связать эти таблицы между собой, то скорее всего связи через FK и не нужны.
И этот вопрос касается больше тега SQL, нежели тега Java
Вопрос: Как перебросить видеокарту в виртуальную машину?

Лучший ответ:
Papkindoctor, 
Proxmox.
Официальный гайд-вики:
https://pve.proxmox.com/wiki/Pci_passthrough

Мои статьи на эту тему (для ноутбука и для ПК):
https://habr.com/ru/post/575654/
https://habr.com/ru/post/437598/

Видеоролик с результатами проброса mobile GTX1660ti Max-Q в ноутбуке:
https://www.youtube.com/watch?v=6pzdkXqI4sU
Видеоролик с результатами проброса GTX1070 на десктопе:
https://www.youtube.com/watch?v=wjlmWHJiEug

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

Худший ответ:
Hyper-V насколько я помню умеет
Вопрос: В чём отличие делегата от события?

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

Да, события, это тоже, частично, делегаты

Худший ответ:
Держите https://metanit.com/sharp/tutorial/3.14.php

https://learn.microsoft.com/ru-ru/dotnet/csharp/pr...
Вопрос: Linux: как выполнить копирование части логов из файла в новый файл по нескольким фильтрам?

Лучший ответ:
Вам поможет regexp (регулярные выражения), после того, как напишите регулярку, выводите файл -> фильтруете -> результат вывода фильтрации перенаправляете в новый файл. По типу:

grep -e "регулярка" old_file.log > new_file.log

Худший ответ:
почитайте про sed, как раз под вашу ситуацию

sed -n '/19:00,/21:00/{/11.11.11.11\/111/p}' file.log > newfile.log
Вопрос: No boot disk has detected + bootmgr вместе, как починить?

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

Худший ответ:
На флешку плохо записали windows. Я переделал через формат USB-HDD+, флешка как Windows определилась и пошло.
Вопрос: Ошибка с foreign key?

Лучший ответ:
Ну ловите его и обрабатывайте как угодно. Через try...catch.

Худший ответ:
В развитие ответа Lander 
<?php
function saveEmail($contactId, $email){
	global $pdo;
	try {
		$stmt = $pdo->prepare("
			INSERT INTO emails(contact_id, email) 
			VALUES (:contact_id, :email)");
		$stmt-> bindValue(':contact_id', $contactId);
		$stmt-> bindValue(':email', $email);
		return $stmt-> execute();
	} catch (PDOException $Exception ) {
		print_r($Exception);
		return false;
	}
}

saveEmail(166, 'no@mail.com');

Test PHP & SQL code online
Вопрос: Канонические ссылки или переадресация — что лучше для SEO?

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

Ну а если нет возможности такой реализации, то я бы посоветовал 301 редирект.

Худший ответ:
Если у вас полный контроль то зачем вы их со создаёте? Просто не делайте дубли, нынче уже все цмс это умеют
Вопрос: Актуален ли bootstrap в 2021?

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

Худший ответ:
Актуален, https://github.com/twbs/bootstrap/tags
Замен тоже хватает, гуглятся по словам CSS Framework
Вопрос: Как заблокировать определенную почту пользователю?

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

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

Лучший ответ:
Я Msi Afterburner использую, полет нормальный, даже есть аудио оповещение когда температура на процессоре выше 75.

Худший ответ:
Вот эту штуку посмотрите: https://openhardwaremonitor.org/
Балдёжная.
Вопрос: Блокировка портов 995, 587, 465?

Лучший ответ:
На маршрутизаторе никакие пробросы портов делать не нужно.
Вы инициируете подключение изнутри и работаете через NAT.
Ответа и не будет - главное чтобы соединение висело, а не рвалось сразу.
995 порт ждет SSL, которое ваш telnet клиент дать не может.

Хотите проверить - используйте openssl для подключения. 
openssl s_client -crlf -ign_eof -connect pop.gmail.com:995

Худший ответ:
Порты 465 и 995 - это smtps и pop3s соответственно. По ним сервис ждет уже установленное кем-то когда-то SSL-соединение, которое ессно telnet дать не может. Проверять такие порты можно только через openssl s_client.
587 - порт submission, порт обычного локального доставщика писем, его многие используют для передачи писем от локальной системы (вместо порта 25)
Для отправки изнутри никакие порты пробрасывать не надо - NAT все сделает сам.
Вопрос: Нужно ли дробить страницу на компоненты, которые не несут в себе никакого функционала?

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

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

Лучший ответ:
Добавить в конфиг аякса и через URL.createObjectURL отобразить картинку
xhrFields:{ responseType: 'blob' }

$.ajax({
  url: MY_URL_,
  method: "GET",
  xhrFields: {
    responseType: 'blob'
  },
  headers: {
    "Authorization": "Basic YAZRt45aWDa25wDDdFND232YFmVmb23213ffWEa5OA=="
  }
}).then(response => {
    console.log(response);
    $('#canvas').attr('src', URL.createObjectURL(response));
}).catch(error => {
   console.log(error);
})

Худший ответ:
Добавить в конфиг аякса и через URL.createObjectURL отобразить картинку
xhrFields:{ responseType: 'blob' }

$.ajax({
  url: MY_URL_,
  method: "GET",
  xhrFields: {
    responseType: 'blob'
  },
  headers: {
    "Authorization": "Basic YAZRt45aWDa25wDDdFND232YFmVmb23213ffWEa5OA=="
  }
}).then(response => {
    console.log(response);
    $('#canvas').attr('src', URL.createObjectURL(response));
}).catch(error => {
   console.log(error);
})
Вопрос: Как запускать exe автоматически при попадании на ПК?

Лучший ответ:
В такой постановке вопроса ответ - никак.

Что бы любая программа запустилась, либо ОС должна знать, что ее надо запустить в какой-то момент, либо пользователь должен ее запустить руками.
Для автозапуска можно использовать несоколько веток реестра, как пользовательских так и системных, так же можно использовать каталог sturtup в меню пуск (в вин10 его нет в явном виде в меню, но его можно найти в файловой системе) или же добавить Параметры->Приложения->Автозагрузка (это действие, по идее, добавляет записи вреестр).
Еще вариант - добавить старт приложения в шедулер, повесив его на какой-либо подходящий триггер.
После внесения соответствующих изменений и перезагрузки (или наступления триггерного события) приложение запустится.

Так же можно запустить приложение удаленно, таких вариантов довольно много. Из встроенных средств можно использовать: wmic или powershell. Тот же psexec (о котором писал  pavelsha ) и т.п. Но программа должна быть доступна на удаленном компьютере, по указываемому пути. Т.е. вы должны сначала скопировать программу на удаленный комп, а потом уже удаленно ее запускать. Как вариант - указывать сетевой путь, доступный удаленному компьютеру. Но нужно не забывать, что в случае сетевого пути, потребуется авторизация на сетевом ресурсе ... Проще скопировать локально.

Кстати, редактировать реестр можно и удаленно. Для этого есть средства из коробки. Например команда reg add - умеет это делать. Но и тут есть своя специфика.

Худший ответ:
PsExec - Windows Sysinternals 
https://yandex.ru/search/?clid=2186621&text=psexec...

Для компьютеров, которые работают в рамках домена Active Directory, есть другие способы повесить на какое-либо событие запуск скрипта или приложения, которые находятся где-то удаленно.
Вопрос: Samba. Не отображается в сети?

Лучший ответ:
Файловый сервер на Samba, видимый отовсюду

Худший ответ:
После wannacry и отключения smb1 "сетевое окружение" ушло в прошлое.

Используйте gpo для того что бы мапить сетевые диски или создавать ярлыки на нужные ресурсы.
Вопрос: Каким инструментом лучше организовать работу с IP-камерами на Qt?

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

July 10th, 2016, ffserver program being dropped(с)ffmpeg.орг/индекс.html#ffserver
..смотрел похожие классы и через QVideoWidget вышел на QMediaPlayer, который, начиная с версии Qt 5.12.2, позволяет использовать gst-pipeline при установленном GStreamer. Иными словами, в методе QMediaPlayer::setMedia(QMediaContent) можно вставить строку QUrl, содержащую обычную команду для gstreamer: 
что-то вроде этого (просто для примера):
player->setMedia(QUrl(gst-pipeline: rtspsrc location=rtsp://user:passwrd@StaticCameraIP:port/path ! rtph264depay !  h264parse ! omxh264dec ! nvvidconv ! video/x-raw, width=1920, height=1080, format=BGRx ! videoconvert !  ximagesink sync=false));
Работает хорошо, однако проверял в условиях цейтнота, поэтому столкнувшись с некоторым непонятным моментом, не нашел пока: как бороться с тем, что поток открывается в совершенно новом окне, игнорируя вызванный ранее QMediaPlayer::setVideoOutput(QVideoWidget). Возможно это потому, что у меня экземпляр QMediaPlayer не является дочерним по отношению к QVideoWidget. Но главное - работает!

Худший ответ:
Все встало на свои места неожиданно: слегка разочаровавшись в QCamera, а также обнаружив, что ffserver больше не поддерживается с июля 2016 года,..

July 10th, 2016, ffserver program being dropped(с)ffmpeg.орг/индекс.html#ffserver
..смотрел похожие классы и через QVideoWidget вышел на QMediaPlayer, который, начиная с версии Qt 5.12.2, позволяет использовать gst-pipeline при установленном GStreamer. Иными словами, в методе QMediaPlayer::setMedia(QMediaContent) можно вставить строку QUrl, содержащую обычную команду для gstreamer: 
что-то вроде этого (просто для примера):
player->setMedia(QUrl(gst-pipeline: rtspsrc location=rtsp://user:passwrd@StaticCameraIP:port/path ! rtph264depay !  h264parse ! omxh264dec ! nvvidconv ! video/x-raw, width=1920, height=1080, format=BGRx ! videoconvert !  ximagesink sync=false));
Работает хорошо, однако проверял в условиях цейтнота, поэтому столкнувшись с некоторым непонятным моментом, не нашел пока: как бороться с тем, что поток открывается в совершенно новом окне, игнорируя вызванный ранее QMediaPlayer::setVideoOutput(QVideoWidget). Возможно это потому, что у меня экземпляр QMediaPlayer не является дочерним по отношению к QVideoWidget. Но главное - работает!
Вопрос: Как работали городские локальные сети?

Лучший ответ:
Городские локальные сети существовали лишь благодаря особенности первых тарифных сеток провайдера.
Как правило, тарифы были сильно лимитированы по скорости, либо по объему трафика, но это касалось только тех случаев, когда трафик абонента шел из IP адреса, не принадлежащего провайдеру. Для обмена с внутренними IP адресами провайдер, как правило, не учитывал лимиты тарифа, и позволял практически свободно пользоваться этим преимуществом.
Второй особенностью было то, что провайдер не только мог предоставлять услуги подключения к Интернету, но и предоставлять услуги хостинга, предоставления доменного имени третьего уровня, других внутренних сервисов, например, облачный диск.
Два этих фактора давало возможность создать сайт в пределах локальной сети провайдера и разместить на нем каталог торрентов, а отсутствие тарифных ограничений внутри сети позволяло выгодно гонять peer-to-peer трафик. Таким образом это позволило жить и процветать торрентам в таких сетях.
Еще одной особенностью такого сайта торрента - был свой белый список диапазонов IP адресов в аккурат соответствующий провайдеру. Его полагалось указывать в торрент-клиенте, чтобы не хватануть тарифный трафик, если кто-то чужой зарегистрируется на сайте, и начнет что-то скачивать и отдавать.
Еще у учетной записи каталога торрента был рейтинг - соотношение отданного к скаченному, чтобы стимулировать пользователей оставаться на раздаче и создавать свои раздачи.
Сейчас такие ресурсы создавать не имеет смысла - потому, что не каждый провайдер имеет услуги хостинга, ужесточилось законодательство в отношении выкладываемого в сеть материала, тарифные планы дешевы, чтобы купить себе скорость близкую к технологической скорости канала, и нет различий какой трафик поступает.

Худший ответ:
Сугубо для себя и друзей можете сделать VPN. 254 адреса я думаю вам хватит. 
Другой вариант это реально физическая сеть. Роутер на подъезд, мосты wifi  на крышах. 
Вполне возможно, но поверьте загребетесь особенно если коммунальные службы мудаки
Вопрос: Можно ли работать с виртуалками с одного ПК в ProxMox?

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

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

Лучший ответ:
Во-первых, надо выбросить из головы эту дурь, "хачу изначально писать правильно".
Изначально надо написать хоть что-то.
Ни один сайт в мире не писался "изначально правильно". Сначала пишут рабочий прототип, чтобы хотя бы самому понять, что ты делаешь. 
Это принципиальный момент. Варианта тут только два - либо ты делаешь минимальный вариант доступными средствами и потом его развиваешь, либо сидишь на диване и рассуждаешь о самых модных веяниях и в итоге не получаешь ничего. Особенно если даже минимальный вариант реализации для тебя темный лес и загадка века.

И делать не 100500 способов оповещения, а один. 
То есть сделать таблицу подписки, в которой указано - на какое событие подписался юзер, и его айди.  

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

Одно это уже займёт вас на пару месяцев.

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

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

Худший ответ:
Это довольно просто можно реализовать через событийную систему. Посмотрите в сторону паттерна "Наблюдатель (Observer)". У вас будут подписчики на события (сервис уведомления по email, сервис уведомления в telegram и пр.), и когда наступит то или иное событие (в вашем случае, когда погода опустится ниже нуля) вам всего лишь нужно будет оповестить свои сервисы-подписчики и они уже оповестят пользователей.
Вопрос: ЖК дисплей ничего не выводит, что делать?

Лучший ответ:
1) Покрутить переменный резистор контрастности на плате i2c-адаптера.
2) С помощью скетча I2C_Scanner (загуглить, скачать) убедиться, что адрес Вашего дисплея действительно 27. Если нет, то вписать в скетч правильный адрес.

Худший ответ:
Какой модуль I²C?
Схема соединения?
Индикаторы с расширенным температурным диапазоном - требуют отрицательное напряжение на выв. 3 (контраст). Если в верхней строке не видны знакоместа - дело, вероятно, именно в этом.