Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как сделать музыку на сайте так же как в вк?

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

1) Хранилище. По примерным оценкам в мире в цифровом виде около 500 000 000 оригинальных музыкальных композиций. Учитывая ремиксы и каверы - можно смело брать миллиард. Средний вес композиции среднего качества - 5 Мб. То есть порядка 5 петабайт, если хранить не в лучшем качестве. Учитывая что это должно иметь какое-то резервное хранение (у нас тут серьезный сервис все-таки), умножаем на 2 (10 петабайт). При стоимости около 2 центов за гиг в месяц, 10 000 000 Гб *  $0,02 = $200 000 в месяц хранение. Ну, бюджетненько в целом.

2) БД, которая хранит данные обо всех этих композициях. Стоимость хранения будет поменьше, но думаю к 20-50К все равно где-то выйдет. 

3) Другой вопрос - где брать эти данные, так как не все музыкальные файлы содержат полное описание композиции. На перебор 1 миллиарда записей и сортировки их по жанрам, альбомам, исполнителям, дате выпуска и т.д. уйдет некоторое время. Допустим 50% композиций будут иметь нормальное описание, остается все те же 500 миллионов композиций на обработку. Пусть на каждую понадобится 2 минуты работы, внести данные в поля (хотя их еще как-то найти надо, но допустим), тогда получим 1 миллиард минут. Это 1900 лет работы, или 16 666 667 часов. Час работы самого дешевого индуса - 3 бакса/час. 16 миллионов * 3 - давайте округлим до 45 миллионов. Даже если сократить этот пункт в 10 раз - выйдет под 4 миллиона. Рабский труд сегодня дорог как никогда...

4) Теперь платформа которая будет всем этим ворочать, так как у нас в сервисе должны же какие-то пользователи завестись вроде. Ну, на сервера можно смело отложить небольшую сумму, тоже где-то 20-30К, для начала сойдет.

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

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

По итогу на год: 
$200 000 * 12 = $2 400 000 хранилище
$20 000 * 12 = $240 000 бд
$20 000 * 12 = $240 000 сервера приложения
$4 000 000 работы
Итого: чуть меньше 7 миллионов баксов.

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

Можно посмотреть в каталог MuzicBrainz https://ru.wikipedia.org/wiki/MusicBrainz
Вопрос: Какую книгу посоветуете, чтобы понять принципы программирования?

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

Но если всё-таки хочется теории, то можно почитать "Код" Петцольда. Если хочется совсем по-взрослому, то "Структура и интерпретация компьютерных программ" Абельсона и Сасмана.

Худший ответ:
Я-бы сразу сказал что тебе нужен обычный учебник типа "Информатика и вычислительная техника". Там это все будет объяснено. Таких книг много на книжных рынках и барахолках.

Но мы живем в современном мире и тебе скорее всего вслед за этими абстрациями все равно надо будет пользовать язык. Например язык Go или C++. Вот тогда бери сразу книжку по языкам и читай в их ракурсе.
Вопрос: С чего начять новичку в СИ?

Лучший ответ:
Си можно начать изучать с книги "Язык программирования Си" Кернигана и Ритчи. Или с "Head First C" (я начинал с неё). Потом можно почитать про новые фичи стандарта c11.
Если вы хотите низкоуровневым программированием заниматься, то для начала нужно прочитать "Архитектура Компьютера" Таненбаума. Ещё есть очень хорошая книга "Цифровая схемотехника и архитектура компьютера" от Сары и Дэвида Харрис.
Потом читать спецификации на железки, под которые вы хотите писать код.

Худший ответ:
Я советую начать со спецификации, например ANSI C.
Вопрос: Game dev/mobile в России. Как стать разработчиком?

Лучший ответ:
Не знаю насчет россии. Но я-бы шел сразу в корпорацию. Любой ценой. На позицию подмастерья. Менти. Или самого младшего джуна. Через пол-года резюме улучшается и уже можно быть твердым джуном.  И подыскивать новое место. Зарабатывать одному - утопия. Нужно быть адски продуктивным чтобы покрыть риски этого нестабильного рынка работ. Тоесть фактически работать 2х или 3х больше чтобы кушать. Нужно очень много коммуницировать с опытными. Звучит неприяно - но надо им ездить по ушам. Сначала вас буду гнать и ругать. Но это не имеет значения. Запоминайте все. Каждое слово старшего в команде разработки во много раз ценнее форумов или онлайн тренингов. Тренинги - это седьмая вода на киселе. Они продают не то что вам надо. А то что надо - только в той корпорации где вы сидите. Я-бы отдал больше денег за 1 час беседы с экспертов чем за 30 дней каких-то курсов. Курсы вообще редко дают то что нужно. Они уже давно стали просто индустрией заработка. 

Готовые проекты выкладывайте в публичный доступ. В них пока нет никакой ценности. Не бойтесь что украдут. Современный опенсорц - это кладбище ненужного никому кода. Код вообще не важен. А важна всегда идея + человек который ее знает и может развивать.

Худший ответ:
Как стать разработчиком?
Учиться и работать, набираться опыта. Очевидно же?
Куда выкладывать готовые проекты с целью заработка?
В сторы. Очевидно же?
Вопрос: Нормальная ли температура процессора i7 11700 — 75 градусов?

Лучший ответ:
75 градусов - ок
95 - многовато.
Если тротлинга нет - нормально.
3d news тут можно посмотреть как он показывает себя с другой системой охлаждения.

Худший ответ:
Решил проблему, может кому пригодится.

1) Выровнил до зеркала башмак радиатора
2) Термопасту заменил на Arctic Mx 4

В стресстесте 78 градусов против 93
В Киберпанке 61 против 75
Вопрос: Не устанавливается библиотека easyocr, в чем проблема?

Лучший ответ:
Ну вам собственно говоря красным по черному (или какому у вас там) собственно пишет куда пойти и что глянуть.
Собственно сама ссылка fixing-conflicting-dependencies подсказывает что у вас конфликт каких-то библиотек.
Собственно смотрите какие библиотеки установлены у вас и какие требуются для easyocr - и соотвественно подходите к решению проблемы.

Худший ответ:
Вам же английским по красному указано - "fixing-conflicting-dependencies" - это значит, что нужно подчинить зависимости (возможно у вас установлены библиотеки(необязательно Python), которые конфликтуют между собой - но это не точно).

В таком случае нужно первым делом перейти на сайт библиотеки, и прочитать инструкцию по установке (так как, что-то мне подсказывает, что вы смотрели "уроки" на YouTube по данной библиотеке.)

https://github.com/JaidedAI/EasyOCR
Вот что там написано:
Note 1: For Windows, please install torch and torchvision first by following the official instructions here https://pytorch.org. On the pytorch website, be sure to select the right CUDA version you have. If you intend to run on CPU mode only, select CUDA = None.
 Не думаю, что вы проделали этот шаг.
Вопрос: Почему typescript не видит пременные окружения?

Лучший ответ:
Читаем внимательно

Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
  Type 'undefined' is not assignable to type 'string'.
Разгадка
process.env.DB_NAME может быть типа string или undefined, так как не факт, что переменные определены, а то место, куда DB_NAME вставляется ожидает строго строку.

Решение
Нужно проверять значение process.env.DB_NAME до того как оно будет передано конструктору:
export const DB_NAME = process.env.DB_NAME ?? "default_database";


Худший ответ:
надо было просто вот так написать import { Sequelize } from 'sequelize-typescript';
export const db = new Sequelize(
          `${process.env.DB_NAME}`,
          `${process.env.DB_USER}` ,
          `${process.env.DB_PASSWORD}`,
          {
              host: 'localhost',      
              dialect: 'postgres', 
              models: [__dirname + 'models']
          }
);
Вопрос: Не прошивается esp8266, что делать?

Лучший ответ:
Не прошивается esp8266, что делать?
читать сообщение об ошибке, вот это:
Arduino\libraries\ESP8266HttpClient-master/SerialResponse.h:15:10: fatal error: Delay.h: No such file or directory
разбираться с разницей между "не прошивается" и "не компилируется".

Худший ответ:
он тебе черным по белому пишет, что нет файла, который ты пытаешься загрузить в esp (если я правильно понял)
Вопрос: Wake-On-Lan не будит комп после отключения от сети, возможно ли решить проблему?

Лучший ответ:
Зачем вообще выключать ПК если он Вам нужен по удаленке? не отключайте его и всё
Проблема с включением после света - в БИОС есть настройка, которая может включить ПК при подаче питания

ПыСы вообще для ПК вредно, отключаться часто "пропаданием" электричества. Советую купить бесперебойник

Худший ответ:
Поставьте в биосе включаться при подаче электричества или last state. Будет включаться всегда или если бы включен.

WOL работает в определенных режимах питания, только при корректном завершении работы, насколько мне известно
Вопрос: Как правильно менять cms?

Лучший ответ:
Не надо ничего сносить.
1. Можно устанавливать разные cms в разные директории вебсайта
2. Можно создавать отдельные VirtualHosts для каждой CMS и у себя в hosts файле прописывать придуманные к ним домены.

Худший ответ:
на хостинге - создайте ручную резервную копию.
удалите контент(каталог сайта)
залейте в public_html новую CMS. пропишите БД.
не понравится - восстановите бекап.

на VPS ответ зависит от испольуемого вами ПО CP
Вопрос: Замена MongoDB?

Лучший ответ:
Отличный повод избавиться от этого нелепого недоразумения и начать использовать нормальную БД.
Если речь идёт о базе данных, то выбор огромный:  mysql, postgres, sqlite, sql-server, oracle
Можно выбрать себе СУБД по вкусу, спланировать структуру БД вместо той оргии с гетерами, которая применяется в Монге и начать пользоваться.
Если речь идет об in-memory key-value storage то выбор поменьше, о тоже есть - redis или подзабытый уже нынче мемкеш.

Худший ответ:
Рекомендую https://www.cockroachlabs.com
Вопрос: Нкжно ли заменять теги i, b, em, strong на стили форматирования css?

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

Смотрите как здесь применяют https://ahrefs.com/blog/ru/audit-obratnyh-ssylok/

В статье эти теги почти в каждом абзаце. Такое форматирование в контенте должно помочь оптимизации. Не надо выделять ключевики более 1-2 раз.

Здесь написано когда и как надо применять https://webref.ru/layout/advanced-html-css/semanti...

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

Лучший ответ:
Читать учебник.

Худший ответ:
Что делать? Да нельзя так делать. Вторая страница любого учебника. Нужно явно указывать, что если money больше или равно 100 и money меньше или равно 500!
money = 600
if money >= 100 and money<= 500:
    print('Yes!')
Вопрос: Отслеживание новых записей в бд в реальном времени?

Лучший ответ:
Самое простое - периодический запрос клиентом обновлённой информации.
Более сложное - websocket + вызов скрипта из БД по триггеру AFTER INSERT.

Худший ответ:
Богдан. Обычно реляционные БД так не работают. Клиент - спрашивает. БД отвечает. Обратное не делают обычно.

Отслеживание новых записей - это технически сложная задача потому что нужен буфер и умножение этого буфера на количество подписчиков. Тоесть приходим к полноценной MQ-системе. Обычно БД конфигурируется так что лишних ресурсов на это нет. Да и зачем БД рассылвать уведомления когда это задача сервера приложений. 

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

Лучший ответ:
На маршрутизаторе настраиваете проброс портов и пользователи подключаются по рдп, а в адрес указывают:
<внешний адрес>:порт1
<внешний адрес>:порт2
и т.д. 
Каждый порт будет перекидывать на нужный сервер на 3389 порт.

Худший ответ:
VPN конечно же, так же альтернатива проброса подключений через разные порты - это каскадирование rdp подключений.

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

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

p.s. это решение может являться костылем, но зато позволяет в принципе не трогать настройки фаервола на роутере, т.е. при появлении новых пользователей, не понадобится туда лезть
Вопрос: Реально ли мне (подростку) зарабатывать в интернете?

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

Худший ответ:
Для начала надо делать портфолио своих работ
Вопрос: Как решить эту задачу на C#?

Лучший ответ:
Тут вам помогут: https://freelance.habr.com/

Худший ответ:
Площадь параллептпеда на расход краски делённая на 1000 . Ну коммон загуглите это
Вопрос: Сильно ютуб грузит процессор и почему?

Лучший ответ:
YouTube использует кодеки AV1 и VP9, аппаратную обработку которых ни ваша видеокарта, ни интегрированное в процессор видео не поддерживают, поэтому они декодируются на процессоре.
Можете использовать различные ухищрения для блокирования AV1/VP9 и включения H.264, но потеряете в качестве видео.

Худший ответ:
Для решения проблемы можно использовать сторонний видеоплеер для воспроизведения видео вне браузера — на устаревших машинах это обычно позволяет смотреть потоковое видео в разрешении 720p, в то время, когда в браузере такое разрешение воспроизводится с "заиканиями".
Можно использовать как и "голый" mpv в связке с yt-dlp/youtube-dl, так и полноценные GUI-приложения: SMPlayer + SMTube либо Minitube, а также GTK YouTube viewer (использует YouTube API в отличие от предыдущих).
Вопрос: Как разорвать области видимости во вложенных замыканиях?

Лучший ответ:
Смотря чего от вас хотят. В принципе, достаточно var на let заменить в цикле.

или замыканием https://jsfiddle.net/DelphinPRO/uyoa9d5f/
Или то же самое, только по другому https://jsfiddle.net/DelphinPRO/uyoa9d5f/1/

Худший ответ:
Смотря чего от вас хотят. В принципе, достаточно var на let заменить в цикле.

или замыканием https://jsfiddle.net/DelphinPRO/uyoa9d5f/
Или то же самое, только по другому https://jsfiddle.net/DelphinPRO/uyoa9d5f/1/
Вопрос: Плавное появление сверху ul списка (width, height = 100%)?

Лучший ответ:
Здравствуйте!
Вы можете посмотреть Рабочий пример

Дело в том, что если вы используете display: none/flex, плавной анимации не будет.
В примере выше, мы используем значение высоты (как и у вас), только добавляем самому меню overflow: hidden, чтобы скрыть содержимое.

Худший ответ:
Смотрите:
Лично я делаю так - для "гамбургера" и списка делаю див, объединяющий их двоих, потом, будем считать, что этот див будет назван .dropdown, создаем ему ширину с высотой и ставим в том месте где и гамбургер, пишем: 
.mob-links {
    transform: scaleY(0);
    transform-origin: 0, 0;
    transform-duration: 1s;
}

.dropdown:hover .mob-links {
    transform: scaleY(1);
    transform-origin: 0, 0;
    transform-duration: 1s
}
(а потом прописываете анимацию для самого "гамбургера" через .dropdown:hover, чтобы он активировался только вместе со списком)
Вопрос: Бесконечный цикл useEffect?

Лучший ответ:
Всё от того, что вы не желаете знать про жизненный цикл компонентов. Разберем по порядку, что происходит.
1 компонент смонтировался
2 срабатывает useEffect - он всегда срабатывает после того как готово DOM дерево.
3 в useEffect срабатывает useState
4 изменение состояния обязывает реакт сделать ререндер
5 тут ключевой момент, компонент уже был смонтирован, поэтому происходит только его обновление - и вот тут useEffect ведет себя по разному. Если у него нет массива зависимостей - то он опять сработает и всё будет повторятся с 3-го пункта. Если же у него есть массив зависимостей - то он сработает только если после рендера обновления изменилось значение в этом массиве.
Значит вам нужно как минимум указать newSendedMessage в этом массиве. НО! У вас есть и другая функция, которая изменяет стейт - sortMessages. Её тоже нужно указать в массиве зависимостей, если не хотите пропускать обновление при изменении receivedMsg. Но если просто поместить эту ф-ю в массив зависимостей - то опять получите бесконечный перерендер - потому что ф-я каждый раз будет разная (она пересоздается каждый раз во время обновления). Есть разные варианты как это исправить - или завернуть sortMessages в useCallback (у которого должен быть массив зависимостей с receivedMsg) или перенести саму ф-ю sortMessages внутрь useEffect и вызывать там. Тут вам решать какой вариант подходит логике вашего компонента больше.

Худший ответ:
Как минимум, внутри sortMessages всегда вызывается setArUsersMessages(arMess), потому как массивы не равны по ссылке. Это приводит к перерендеру.

А вообще, много чего странного в коде. Например, сообщения есть и в props.arSendedMessage, и в стейте компонента. Выглядит как полная анархия (мать порядка).
Вопрос: Почему EventListener отрабатывает, в то время как запущен большой цикл?

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

Худший ответ:
https://github.com/azat-io/you-dont-know-js-ru/blo...
Для console.log нет спецификаций и требований, разные браузеры реализуют ее по-разному.  Ввод-вывод сам по себе медленный и может блокировать другие программы, поэтому для браузера может быть эффективнее обрабатывать вывод в консоль в фоне, пока выполняются следующие команды.
Вопрос: Можно ли пк сделать в роли роутера и что из этого будет в итоге?

Лучший ответ:
Да, можно. Не редко на таком компьютере ещё и WEB-сайт организации крутится, почта там, DNS-ы, защитный FIREWALL, и всё остальное, что должно быть доступно из Интернет. Ну и можно заодно как файловый сервер для локальной сети настроить, тоже можно.

Худший ответ:
МОжно, если умеете готовить. Если не умеете - будет огромная дыра в инет)
можно использовать роутер, вместо свитча, достаточно убрать с енго функцию роутера и сделать из него управляемый свитч (отключить dhcp и всё это настроить на первой машине), иначе получите 2 разделенных подсети
ПыСы - от Ддос Вас это всё равно не спасет, проще сайт на VPS поставить
Вопрос: Где черпать знания об AppKit?

Лучший ответ:
Дык - https://developer.apple.com/documentation/appkit

Худший ответ:
А чем SwiftUI не устраивает?
Вопрос: Как итерировать fileList?

Лучший ответ:
if (typeof this.files?.length === 'number') {
  // А тут уже цикл
}

Худший ответ:
Если длинна неизвестна, то так:
for (let n in this.files) {
    if (this.files[n] instanceof File) {
        console.log(this.files[n]);
    }
}
Вопрос: Насколько эффективно последовательное соединение (по подзарядке) powerbank?

Лучший ответ:
Так себе идея, потому что каждый выход от банка снабжен  DC-DC преобразователем, который будет съедать себе, в рамках своего КПД, от 7 до 15% энергии.

А в зарядной цепи может вообще линейный стабилизатор стоять, у которого КПД как такового нет - всю "лишнюю" энергию он добросовестно переведет в тепло.

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

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

Лучший ответ:
есть 2 сайта это microsoft.com сугубо пользовательский

https://docs.microsoft.com/ru-ru/windows/win32/api...

внутренние потроха

и до кучи у них огромная библиотека по всем продуктам https://docs.microsoft.com/ru-ru/

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

Лучший ответ:
Использовать цикл с ключом /D:
for /d %%D in (C:\1\*) do  move "%%D" C:\2\

Худший ответ:
посмотрите 
ROBOCOPY 
https://docs.microsoft.com/en-us/windows-server/ad...

Ключи /mov или /move 	решат вашу задачу?
Вопрос: На что правильно вешать hover событие?

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

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

Лучший ответ:
Реляционная база данных — база данных, основанная на реляционной модели данных. 
Реляционная модель данных (РМД) — логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики, как теория множеств и логика первого порядка.
Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной (от англ. relation — «отношение»).
Пусть дана совокупность типов данных T1, T2, …, Tn, называемых также доменами, не обязательно различных. Тогда n-арным отношением R, или отношением R степени n называют подмножество декартовa произведения множеств T1, T2, …, Tn.
Отношение R состоит из заголовка (схемы) и тела. Заголовок представляет собой множество атрибутов (именованных вхождений домена в заголовок отношения), а тело — множество кортежей, соответствующих заголовку.
Вообще это моветон - отвечать на вопрос цитатами из вики, но чёрт возьми, эти статьи русской википедии хороши, даже добавить нечего.
Выводы сами сделаете? Помогу вам: бессхемная реляционная база - это автомобиль, у которого убрали колёса, двигатель и кузов. Это ещё автомобиль или уже нет?

Худший ответ:
По-идee большинство NoSQL баз данных и есть безсхемные, каждая запись имеет право иметь свою структуру в определенных рамках