Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какой линукс выбрать и как правильно установить?

Лучший ответ:
Самый идеальный вариант, поставить с Netboot-образа (mini.isi) голую Ubuntu 20.04 (ещё есть 3 года поддержки впереди LTS) и на неё Openbox (OB).
Настроить OB под себя и радоваться жизни!
Ибо легковеснее OB нет ничего в природе!!!

Тот же LXDE (LXQT) основан именно на нём - на ОВ.

Я как раз публикую серию статей по установке и настройке ОВ в Ubuntu 20.04 так, чтобы сама система не тянула за собой при установке того или иного пакета сам GMOME Shell, что обычно и происходит, ибо он не нужен и, чтобы принцип - голая Ubuntu + голый ОВ оставался.

Сразу отвечу, почему 20.04, а не 22.04?
В 22.04 куча косяков пока что не разрешённых (самый веский, это то, что после установки практически невозможно установить ни один пакет штатными средствами, а только через танец с бубном), да и Netboot-образа уже нет на неё, только Server ставить, чтобы голая была...

В 18.04 вообще ОВ ставится на Ура! без каких-либо танцулек, но она уже через пару месяцев снимется с поддержки, увы...

Почитать и посмотреть можно здесь:
Часть I
Часть II

3-я на подходе.

И вообще с ОВ можно и Debian легко, а класическая Archlinux + Openbox, так вообще высший пилотаж и в основе своей все гурики Линя сидят именно на такой связке...

Но я предложил Ubuntu + ОВ, т.к. легко ставится, а Arch вы не сможете установить просто так без опыта...

Худший ответ:
Debian + XFCE отлично себя чувствует даже на машинках с 1Гб памяти. Устанавливается просто, все нужное работает сразу из коробки. Проблемы могут быть в основном с ноутбуками и их специфическим железом и дровами.
Вопрос: Какое ПО выбрать для школьных звонков?

Лучший ответ:
выбери повершелл и встроенную службу расписаний.
Или повершелл и nnCron для винды

проиграть звук из повершелла можно так
powershell -c (New-Object Media.SoundPlayer 'c:\PathTo\YourSound.wav').PlaySync();

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

Лучший ответ:
может, наивно добавить квадратные скобки в строку?
const line = '1, "221,21", "dssds", 555, "dfgfdgfdg, dd"';
const row = JSON.parse(`[${line}]`);
// Array(5) [ 1, "221,21", "dssds", 555, "dfgfdgfdg, dd" ]

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

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

Худший ответ:
Лично мой конфиг, как я пользуюсь когда надо граф стол
Ставлю debian\ubuntu minimal
Ставлю LXDE
Ставлю tightvnc server и использую :99 рабочий стол (да мне так удобно)
Ставлю сервер VNC в автозагрузку
Подключаюсь только по VNC к серверу, без всяких xRDP и этой мути(меня устраивает)
Открываю нужные входящие в фаерволле, остально всё закрываю. Доступ до ssh и VNC только с моего внешнего IP.   Фаерволл - iptables
Вопрос: В чём разница между setTimeOut(myfucn,1000) и setTimeOut(myfunc(),1000)?

Лучший ответ:
Разница в том, что запись :
setTimeOut(myfunc(),1000)
Неправильная.

Так как, в setTimeout функцию нужно передавать, а не вызывать.

Худший ответ:
Во втором случае функция вызывается, в первом передаётся ссылка на неё.
Вопрос: Дисплеи одинаковой высоты win11?

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

Худший ответ:
Одинаковые мониторы использовать
либо одинаковое разрешение установить
Вопрос: C чего начать seo продвижение сайта в 2022 году?

Лучший ответ:
с самого сайта

быстр, мобайл френдли, струкрутрирован

Худший ответ:
От тематики сильно зависит, если тема узкая и конкурентов мало, то достаточно описанного Dimonchik'ом, если конкурентов много, то также, как и раньше - качественные ссылки, упоминания в соц. сетях, хороший дроп-домен. Также можно пользоваться Google Indexing API, в последнее время гугл плохо загоняет страницы в индекс, через этот инструмент можно бесплатно и быстро загонять страницы в поиск, правда не всегда работает.  Под яндекс есть похожий инструмент, называется IndexNow, но его пока не пробовал.
Вопрос: Может ли материнка убить аккумулятор?

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

Худший ответ:
Контроллер заряда аккумулятор возможно. ранше их ставили в акумы щас на матери распаивают
Вопрос: Определение по картинке?

Лучший ответ:
По поводу сравнения картинок
from skimage.metrics import structural_similarity
import cv2

def orb_sim(img1, img2):
  orb = cv2.ORB_create()
  kp_a, desc_a = orb.detectAndCompute(img1, None)
  kp_b, desc_b = orb.detectAndCompute(img2, None)
  bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)

  matches = bf.match(desc_a, desc_b)
  similar_regions = [i for i in matches if i.distance < 50]  
  if len(matches) == 0:
    return 0
  return len(similar_regions) / len(matches)


img1 = cv2.imread('test_img1.jpg', 0)
img2 = cv2.imread('test_img2.jpg', 0)
orb_similarity = orb_sim(img1, img2)
print(f"Фото схожи на:  {orb_similarity}")
Код достаточно хорошо работает с необработанными изображениями. 
И по поводу распознавания текста, конечно можно, полно уже готовых решений,  OpenCV и Гугл в помощь

Худший ответ:
Проверить одинаковые ли картинки можно с помощью Pillow
Кодfrom PIL import Image

#Открываем картинки

img1 = Image.open("img1.png")
img2 = Image.open("img2.png")

def same_imgs(img1, img2):
    size1 = img1.size #Получаем размер картинки (ширина, высота)
    pixels1 = []
    for x in range(size1[0]):
        for y in range(size1[1]):
            pixels1.append(img1.getpixel((x, y))) #Добавляем цвета по каждой координате

    size2 = img2.size #Получаем размер картинки (ширина, высота)
    pixels2 = []
    for x in range(size2[0]):
        for y in range(size2[1]):
            pixels2.append(img2.getpixel((x, y))) #Добавляем цвета по каждой координате

    if pixels1 == pixels2: #Проверяем равны ли все цвета
        return True
    else:
        return False

print(same_imgs(img1, img2))

img1.close()
img2.close()
Вопрос: Существует датчик угла наклона по двум осям?

Лучший ответ:
Ну что-то такое с обвязом из микроконтроллера и POE

Худший ответ:
Мачта с антенной установлена на крайне нестабильной почве.
3 оттяжки?

Ну что-то такое с обвязом из микроконтроллера и POE ..... Если не нравится этот гироскоп...
А зачем тащить целый гироскоп, если достаточно акселерометра? Или нет?
Если так, то готовый модуль может обойтись около 100 зелёных: https://ru.mouser.com/ProductDetail/Analog-Devices...

Ну или сделать самому, что для радиолюбителя не должно быть сильно заковыристо: https://ru.mouser.com/Sensors/Motion-Position-Sens...
Вопрос: Перекрещена работа программ Windows 7?

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

DriverPack - отборная параша. Зачем засирать свеже установленную винду?

И куда вы гонитесь за количеством переустановок? Почему я годами не переустанавливаю винду и она работает у меня стабильно?

Любые проблемы с ПК начинают решать с диагностики железа, а не с переустановки ОС.

Худший ответ:
с чем это связано?Судя по формулировке вашего вопроса, вы не в курсе того, что вот уже два года поддержка Win7 прекращена. Совсем прекращена, даже антивирусные базы для встроенного Защитника не обновляются.  Причём MS предупреждала о прекращении поддержки задолго до события.
Прекращена работа программЕстественно, производители софта и оборудования сразу перестали заниматься обновлениями и делать драйверы под "семерку" для нового оборудования. Скажем, если вы станете продолжать пользоваться Win7 (а принудительно вас никто с неё сгонять не будет - пользуйтесь, если сможете), то обновить, например, браузер Хром до современной версии у вас уже не получится - вам вылезет именно такое сообщение: "Прекращена работа программ".
Так что ваша проблема, с одной стороны, куда глубже, чем "винда чего-то глючит", а с другой - сильно проще.
Вопрос: Что лучше использовать, WPF или Winforms?

Лучший ответ:
Для сложных проектов лучше использовать WPF

Худший ответ:
Все visual studio от 2010 версии используют WPF.  Думаю, технологии можно доверять,
Windows forms лучше выбирать для приложений которые планируете запускать на старых системах. На новых, лучше WPF. 
WPF сложнее в изучении, но более гибкий в плане построения интерфейса + удобные биндинги.
Технология развивается с 2006 года. За это время уже много для неё написали (контролы).
Вопрос: Выделенный сервер для установки «своего» windows server?

Лучший ответ:
В любом месте арендуешь сервак на месяц, где можно подключиться по KVM + смонтировать свой ISO образ
Подключаешься по KVM - ставишь винду)

Худший ответ:
Можете посмотреть тут - https://bitweb.ru/dedicated-server-ru
Там можно выбрать Windows.
Вопрос: Как обрабатывать на бэкенде случайные множественные запросы с фронтенда?

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

Если фронт трогать можно, то есть разные варианты:
https://habr.com/ru/company/yandex/blog/442762/

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

Если же фронтэнд трогать нельзя, значит бакэнд должен как то идентифицировать дубляж данных. Самое простое (если это позволяет бизнеслогика) - хранить в сессии хеш (точнее список таковых за последние несколько секунд) последнего запроса на изменение данных с фронтэнда и игнорировать те, у которых он повторяется. Почему нужно хранить список, потому при использовании ajax и проблемах с интернет, запрос может заметно подзадержаться, пользователь может перейти на другую страницу (SPA или использование web worker) отправить там запрос и перейти снова к первоначальной, и отправить повторно.
Вопрос: В чем отличие ACL от Firewall?

Лучший ответ:
Вы сравниваете тёплое с мягким.

Firewall - это программа или комплекс программ, выполняющая фильтрацию на основе правил. В т.ч. на основе ACL.
ACL - это правило либо блок данных для правила. В т.ч. это может быть и правило для Firewall.

Худший ответ:
ACL входит в состав фаерволла. Это один из способов ограничения
Фаерволл это не только ACL, это большой связанный комплекс различных «программ»
Вопрос: Как реализовать авторизацию в sql на питон?

Лучший ответ:
Вот этот код работает можешь оптимизировать его под себя
я не нашел ответ в интернете искал около 2-ух дней
здесь регистрация и авторизация!

import sqlite3

db = sqlite3.connect("data.db")
sql = db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS "users" (
    "username"  TEXT,
    "password"  TEXT)""")
db.commit()


def reg():
    username = input("username>> ")
    password = input("password>> ")
    sql.execute(f"SELECT username, password FROM users WHERE username = '{username}' AND password = '{password}'")

    if sql.fetchone() is None:
        sql.execute(f"INSERT INTO users VALUES (?,?)", (username, password))
        db.commit()
        print('You have registered')
        login()
    else:
        print('Такая запись уже существует')
        for i in sql.execute('SELECT * FROM users'):
            print(i)

def login():
    username = input("username>> ")
    password = input("password>> ")
    a = sql.execute(f"SELECT username, password FROM users WHERE username = '{username}' AND password = '{password}'")
    db.commit() 
    if not sql.fetchone():
        print("Нет такой записи")
        for i in sql.execute('SELECT * FROM users'):
            print(i)
        reg()
    else:
        print('Welcome')
    
login()

Худший ответ:
global db
global sql???

1) Не используйте f-строки!
sqlite3 — DB-API 2.0 interface for SQLite databases 
Конкретно обратите внимание на:
Usually your SQL operations will need to use values from Python variables. You shouldn’t assemble your query using Python’s string operations because doing so is insecure; it makes your program vulnerable to an SQL injection attack (see https://xkcd.com/327/ for humorous example of what can go wrong).

2) Обычно, при регистрации пароль хешируется и добавляется в базу хеш, а не пароль. Потом при авторизации пароль опять хешируется и этот хеш сверяется с хешем в базе.

Что конкретно у вас не получается? Сверить значение со значением в базе?
Вопрос: Как удалить письма старше определенной даты на MS Exchange 2019?

Лучший ответ:
с помощью PowerShell:
Поиск и удаление писем в ящиках Exchange Server (M...

Худший ответ:
В Admin center создать нужную Retention Policy и назначить ее на почтовые ящики.
Вопрос: Каким бесплатным SSL воспользоваться, когда Let's Encrypt более не работают с Российскими доменами?

Лучший ответ:
Let's Encrypt работает с российскими доменами
2 дня назад обновлял сертификаты

Худший ответ:
letsecrypt работает, попробуй получить не в isp и потом уже залить его туда
Вопрос: Реализация проекта поэтапной диагностики, как лучше?

Лучший ответ:
Вроде бы, тут древовидная структура описывает все пути. Несколько вопросов в корне, затем идёт, видимо, ветвление. Описать такую можно списком, где у элемента есть ссылки на родителя и на дочерние элементы. 
Что-то типаconst knowledge = [
  {id: "0", title: "Как начать пользоваться сервисом", description: "", prev: null, next: ["0.0", "0.1" ]},
    {id: "0.0", title: "Упрощенная инструкция", description: "для новых пользователей", prev: "0", next: []}
    {id: "0.1", title: "Продвинутая", description: "для клиентов, чьи познания больше", prev: "0", next: []},
  {id: "1", title: "Пользуется ПК", description: "", prev: null, next: ["1.1", ]},
  {id: "2", title: "Браузер Google Chrome", description: "", prev: null, next: ["2.1", ]},
  {id: "3", title: "Версия последняя", description: "", prev: null, next: ["3.1", ]},

];
Состояние страницы характериуется текущим активным элементом: показан он и возможные дальнейшие пути, и известно, куда вернуться шаг назад. Если в один вопрос можно прийти несколькими путями, надо запоминать в массиве пройденный путь, и тогда шаг назад брать из него.

Худший ответ:
Есть два варианта. Первый - воспользоваться каким-нибудь конструктором квиза, ведь, по сути, это он. Второй - прописать всё ручками.
Каждая кнопка - это post-форма, можно на ту же страницу.  В hidden-поле нужно записать ответ, а номер стадии лучше передать в url (чтобы можно было вернуться к предыдущей стадии просто по ссылке). Сама кнопка - submit. Ответы на прошлые вопросы лучше записывать в cookie. В зависимости от этих данных формируются новые формы. А в конце вместо форм - конечные результаты.
Вопрос: Как защититься от метода CloseConnection?

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

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

Лучший ответ:
заявлена возможность подключения до 122 дисков. Как это реализовать
Выделите полчаса на то, чтобы погуглить различные словосочетания, включающие в себя слова "expander" и "backplane". 
Это то, что вам нужно как в плане железа, так и в плане знаний. Если вы раньше никогда не работали с подобным оборудованием, то хотя бы базово однозначно стоит разобраться, иначе потом могут быть неприятные сюрпризы.

Докупать нужные железки надо б/у на eBay, авито, хламаде, и т.п.

старому SAS-контроллеру
Обязательно обратите внимание на вот эту статью KB, т.к. к вашей плате она тоже относится: https://www.broadcom.com/support/knowledgebase/121...

If a drive larger than two TeraBytes in capacity is used with an LSI 3Gb/s SATA+SAS HBA, you will not be able to use the remaining capacity beyond 2TB.
Я бы не особо полагался на выделенную жирным часть цитаты, а по умолчанию полагал, что диски больше 2 ТБ использовать нельзя. Если всё же хотите рискнуть, то необходимо предварительно провести тщательную проверку поведения с большими дисками. 
В противном случае однозначно станете нашим клиентом, а с учётом того, для каких RAID'ов обычно используют такие железки, и какие повреждения ожидаемы, ещё и с непредсказуемым исходом.

Также обратите внимание, что по-моему, у вас RAID-контроллер, их работа обычно отличается от HBA-адаптеров.

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

Лучший ответ:
Тачпадом смахиваете четырьмя пальцами на экран с музыкой и лайкаете, смахиваете обратно. Да, на макоси. И в линухе. Секундное дело.

Худший ответ:
Наверно, надо искать тут.
Вопрос: Как найти ментора в разработке на Python?

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

опытные разработчики такие же



SO + книги всех индусов с Пакта, про паттерны там и прочие модули что где когда - Питон же широченно применим, отсеешь непрофильное, закрепишь и в итоге:

будешь вот таким

Худший ответ:
1. Начинаешь искать работу
2. Находишь с более опытными разрабами
3. Устраиваешься
....
PROFIT!!!
мало того что платить не надо так еще и тебе платят
Вопрос: Как научиться делать безшовные фоны?

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

Худший ответ:
В родительском ресурсе https://habr.com/ есть очень хорошие статьи на эту тему. Поищи с тегами tile, textures, game e.t.c.
Вопрос: У всех был такой начальный период изучения языка?

Лучший ответ:
а ты думал люди со знанием жс сразу рождаются?

конечно кому-то даётся легче, кому-то сложнее. 
но рулит только практика.

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

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

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

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

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

Худший ответ:
Указывать в качестве дефолтного шлюза что-нибудь несуществующее.
Вопрос: Как добавить ТХТ запись через SSH?

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

Прописывать запись нужно не самом сервере, а в DNS диджиталоушена, так что ssh не поможет.

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

Лучший ответ:
Самый адекватный вариант - тупо спросите "можно воспроизвести звук?". Уверен что 99,9% пользователей не будут рады левым непрошенным звукам на сайте, через что бы они там не выводились...

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

А также отследить, что наушники подключены по bluetooth?

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

Но определить тип подключённого аудиоустройства в jack - нереально.

Вот например лично я постоянно перевтыкаю наушники и колонки.
Аудиокарта никак физически не может определить, что в неё вставили, ибо jack чисто аналоговый.
Только в настройках пользователь может руками указать, что он использует, но это особо ни на что не влияет
Вопрос: Почему биндить в PDO надо обязательно переменную?

Лучший ответ:
Ну вообще-то в сообщении об ошибке всё сказано. C bindParam можно использовать только переменные. Потому что биндинг идёт по ссылке (by reference). А на строку, вписанную прямо в коде, ссылку не поставишь. В этом случае надо использовать другой метод
$b=$pdo->prepare(" INSERT INTO `main` SET tel=:tel");
$b->bindValue(":tel", '79998887766');
или вообще передавать данные сразу в execute():
$pdo->prepare(" INSERT INTO `main` SET tel=:tel")->execute(["tel" => '79998887766']);
и всё будет работать

Худший ответ:
Потому что при таком подходе можно переиспользовать подготовленное выражение - один раз prepare + bind'ы и потом множество раз execute()
$tel = '79998887766';

$b=$pdo->prepare(" INSERT INTO `main` SET tel=:tel");
$b->bindParam(":tel", $tel);

$b->execute();

$tel = '5454545454';
$b->execute();

$tel = '1231231233';
$b->execute();
Вопрос: Какой фреймворк выбрать для моей задачи (пример сайта в вопросе)?

Лучший ответ:
Подобные веб-приложения называются SPA (single page application).
Такие сейчас, в основном, делают при помощи одного из: Angular, React, Svelte, Vue. (Самые популярные - Angular и React. Самый наименее популярный - Svelte.)

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

Худший ответ:
Раз ты написал вверху питон, то возьми для backend, framework - FastAPI/SQLAlchemy и PostGreSQL - fast становится все популярнее, а остальные 2 уже де факто стандард. Бакенд заверни в докер/docker compose !