Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему inline функция не компилилируется?

Лучший ответ:
Почему так происходит?
Потому что стандарт С11 (9899:201x 6.7.4:7, черновик доступен тут) говорит следующее про спецификатор inline:

Any function with internal linkage can be an inline function. For a function
with external linkage, the following restrictions apply: If a function is declared
with an inline function specifier, then it shall also be defined in the same translation
unit. If all of the file scope declarations for a function in a translation unit include
the inline function specifier without extern, then the definition in that translation
unit is an inline definition. An inline definition does not provide an external
definition for the function, and does not forbid an external definition in another
translation unit. An inline definition provides an alternative to an external
definition, which a translator may use to implement any call to the function
in the same translation unit. It is unspecified whether a call to the function uses
the inline definition or the external definition.
Самое главное тут -- в середине: инлайн-реализация не предоставляет и не запрещает реализацию со внешней линковкой, и в последнем предложении: транслятор волен сам выбирать, какую реализацию функции использовать -- инлайновую или со внешней линковкой.
Поскольку ты написал так:
inline void some_inline_func(uint32_t num)
{
    . . .
}
ты тем самым реализовал инлайн-версию этой функции, но не реализовал версию со внешней линковкой. А транслятор выбрал (вернее ты ему подсказал выбрать, опцией -O0) использовать реализацию функции со внешней линковкой, поэтому ты получил ошибку от линковщика.

Вариантов решения этой проблемы примерно 3:
- определить функцию следующим образом:
extern inline void some_inline_func(uint32_t num)
{
    . . .
}
Такая функция будет доступна из других единиц трансляции.

- либо определить функцию следующим образом:
static inline void some_inline_func(uint32_t num)
{
    . . .
}
Такая функция будет доступна только для данной единицы трансляции.

- оставить в этом исходнике всё как есть, а в каком-нибудь другом определить следующую функцию:
void some_inline_func(uint32_t num)
{
    . . .
}
Это самый дурацкий вариант, поскольку эти две реализации могут не совпадать и в зависимости от выбора транслятора ты можешь получить разное поведение.

Худший ответ:
Вот так у меня получилось
#include <stdint.h>

static inline uint32_t
some_inline_func(uint32_t num) {

}
Вопрос: Как синхронизировать горутины?

Лучший ответ:
Горутины синхронизировать/обмениваться данными можно при помощи каналов.
У вас не очень удачный пример для обучения.
Обычно есть горутина или несколько, которые получают данные и пишут их в канал и есть горутина или несколько, которые будут читать из канала.
Читающие горутины будут получать данные из канала в той последовательности, в которой они туда попали.
Ближе к реальности пример будет выглядеть вот так.
Одна горутина пишет данные в канал, а две горутины по очереди извлекают данные.
package main

import (
    "fmt"
    "sync"
    "time"
)

func main() {
    var wg sync.WaitGroup

    num := make(chan int, 1000) // 1000 - размер буффера канала

    wg.Add(1)
    go func() {
        for i := 0; i < 1000; i++ {
            num <- i
            fmt.Printf("write to channel: %d\n", i)
            // задержка нужна только на время теста
            time.Sleep(100 * time.Microsecond)
        }
        close(num)
        wg.Done()
    }()

    wg.Add(1)
    go func() {
        for {
            val, ok := <-num
            if !ok {
                break
            }
            fmt.Printf("goroutine 1 got: %d\n", val)
        }
        wg.Done()
    }()

    wg.Add(1)
    go func() {
        for {
            val, ok := <-num
            if !ok {
                break
            }
            fmt.Printf("goroutine 2 got: %d\n", val)
        }
        wg.Done()
    }()

    wg.Wait()
}

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

Лучший ответ:
ст. 2, Федеральный закон от 29.12.2012 N 273-ФЗ (ред. от 30.04.2021) "Об образовании в Российской Федерации"
Для целей настоящего Федерального закона применяются следующие основные понятия:
35) просветительская деятельность - осуществляемая вне рамок образовательных программ деятельность, направленная на распространение знаний, опыта, формирование умений, навыков, ценностных установок, компетенции в целях интеллектуального, духовно-нравственного, творческого, физического и (или) профессионального развития человека, удовлетворения его образовательных потребностей и интересов и затрагивающая отношения, регулируемые настоящим Федеральным законом и иными нормативными правовыми актами Российской Федерации.
(п. 35 введен Федеральным законом от 05.04.2021 N 85-ФЗ)
Если строго по закону, то те, кто отвечает на вопросы - тоже типа просветители.
И разговор в метро в каком магазине лучше картошку покупать - просветительская деятельность.
И сайт Ваш уж тем более. Вы же собираетесь удовлетворять образовательные потребности, распространять знания и опыт?
Пока рано говорить о правоприменении закона.
Проект постановления правительства, реализующий резонансный закон о просветительской деятельности, будет доработан с учетом поступивших после общественного обсуждения предложений, сообщило Минобрнауки России.
https://www.interfax.ru/russia/765999

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

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

Худший ответ:
ос, я так понимаю, виндовс ??
пропиши на той машине, с которой стучишься в почтовик.
%нужный ип% %нужный домен%
в файл hosts и тогда нужный домен всегда будет резолвится в нужный ип в обход всех днс-систем.
Вопрос: В чем «вкус» react?

Лучший ответ:
В связи с этим у меня вопрос, чем же обоснована такая популярность этой библиотеки у работодателей?Если вы программируете 3 месяца то скорее всего не поймете. React или другой фреймворк изначально подразуевает то, что код хорошо делится по модулям и компонентам, что очень удобно, в обычном js нужно принимать больше усилий чтобы добиться этого. Также есть много готовых решений из коробки, которые уже были отлажены другими более опытными людьми.
а модульность со мной сыграла злую шутку (прочитал, что хорошим тоном считается разбивать проект на мельчайшие модули, разбил свой, через пару недель я просто почти забыл, что от чего у меня зависит и какой модуль у меня что тянет за собой и главное куда тянет! Видимо вы попробовали выучить реакт за неделю, потом потом на 2-3 недели ушли заниматься своими делами и не трогали его и "внезапно" всё забыли. В целом можно писать комментарии для пояснения. Модульность как раз наоборот упрощает чтение кода и если правильно всё называть и прописывать, то в небольших проектах до 5-10к строк можно будет без проблем разобраться за пару дней тому кто не писал это код.
P.S. Возможно вам лучше выложить вопрос с сылкой на ваш проект и вам подскажут что не так вы сделали, будет полезнее.

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

если ты хочешь работать в индустрии то придется привыкнуть
если ты инди-разработчик то делай свою архитектуру и пиши код как тебе удобно
я такой разраб - и я не понимаю в чем смысл этих фреймворков

сайты действительно очень тормозные на фреймворках - но всем наплевать
главное в капиталистической индустрии - стандартный фреймворк
чтобы не зависеть от разработчика - чтобы можно было уволить любого и взять нового
 в этом секрет
Вопрос: Где найти практику DevOps? Как влиться в DevOps?

Лучший ответ:
1. Становитесь нормальным админом.
2. Засираете мозг облаками, гибкими методологиями разработки, оркестрацией оркестраторов, автомасштабированием и т. д.
3. Деградируете до состояния "я рулю всем на высоком уровне, что там под капотом облака - мне не важно".
4. Идёте работать на модно называемую должность, где даже близко не понадобится вся крутота из п. 2.

Худший ответ:
В общем виде вопрос ровно такой же, как и для любой другой профессии. Но! Сейчас devops - это по сути одна из ступеней развития сис.админа. Соответственно работаешь админом, изучаешь автоматизацию деплоя и софт.скилы (навыки общения то бишь, работа девопса - это достаточно много общения с коллегами, выяснения у программистов чего им надо, обучение их тому, что ты сделал, а еще qa, а еще другие админы...) и дальше размещаешь резюме и ищешь работу уже по этому направлению. Курсы курсами, а на практике что? k8s себе на виртуалках разворачивал? Gitlab например поставил, попробовал в нём настроить gitops, ci/cd? Через ансибл развернул что-то?
Вопрос: Какой взять микрофон, чтобы не захватывал кондей, шум на улице, етц?

Лучший ответ:
можешь юзать тот что у тебя есть, но слегка пошаманить с тулзами. Чуть морока, зато бесплатно.
Нужно скачать что-то что умеет делать виртуальные аудио устройства, по типу VB-cable, зароутить микро в любую DAW (Reaper, к примеру), в давке обрезать шум любым noise gate'ом (бывают и встроенные и отдельные, в рипере не помню есть ли встроенный, там же, кстати, сможешь скомпрессить и проэквализировать звук как нужно), и направить выход из давки в нужный приемник звука. Гуглить что то по типу "fl studio to discord".
Потому что все юсб микрофоны фуфло, честно говоря, что динамика что конденсы, плюс ко всему они сами не умеют резать шум - это не их задача, а звукорежиссера или архитектора изоляции помещения.

Худший ответ:
Я думаю что это не есть задача микрофона. Скорее всего нужен какой-то цифровой фильтр настроенный именно на ваш кондей и на ваш промышленный шум.

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

Лучший ответ:
вместо значка интернета появился монитор с шнуром
Монитор со шнуром это значок интернета по кабелю. А Ваш значок интернета это значок вай-фая. Насколько я понимаю и так всё работает, и беспокоиться не о чём

Худший ответ:
Сбросьте настройки IP-адреса и DNS-серверов для всех сетевых интерфейсов. В командной строке введите ncpa.cpl, появится окно с Вашими сетевыми интерфейсами. Кликаем на первый из них правой кнопкой мыши -> Свойства, выделяем строку "IP версии 4...", жмём "Свойства", выбираем "Получить IP-адрес автоматически" и "Получить адрес DNS-сервера автоматически". И так для каждого сетевого интерфейса.
Также советую поудалять все сторонние антивирусы и фаерволы, перезагрузить роутер.
Вопрос: Как работает SSL TLS сертификат?

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

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

Да-да, все PKI - оно про доверие :) Мы безусловно доверяем всем корневым центрам, но самопальному сертификату не поверит никто.
Вопрос: Как подключить жёсткий диск и не потерять данные?

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

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

Худший ответ:
подключить диск, звгрузить винду, посмотреть че она хочет сделать - если форматировать диск - выключить винду, запуститься с liveCD какого нить, можно linux, и уже смотреть что там на диске

винда не могла сама испортить Вам диск от регистратора, она 100% спросила что делать, Вы ответили "да", она диск и форматнула)

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

Лучший ответ:
Диапазон от 194.58.80.0/24 до 194.58.95.0/24 - лучше. Он извне (на внешнем интерфейсе) накрывается одним маршрутом.

194.58.80.0 .. 194.58.95.0 = 194.58.80.0/20
194.58.72.0 .. 194.58.87.0 = 194.58.72.0/21 + 194.58.80.0/21

Впрочем, лучше - провайдеру. Потребителю - глубоко пофиг.

PS. Конечно, пофиг вообще всем. Но это единственная разница, которую мне удалось отыскать.

Худший ответ:
Ваш вопрос не имеет смысла, классовая адресация окончательно устарела примерно к 2006му году и сейчас не используется, вопрос "Перечислите записи в таблице маршрутизации маршрутизатора 1 для обоих адресных блоков, при этом вам следует использовать как можно меньше записей в соответствии с принципом бесклассовой пересылки." на бесклассовую адресацию, но само задание скорей всего взято из учебника 90х, когда классы еще  использовались, поэтому сети упомянуты как относящиеся к классу, фактически это задание на суперсети (такое понятие существовало примерно с 1992 по 1993 год, в 1993м году уже появилась полностью бесклассовая адресация) . Класс не может быть лучше или хуже определенного CIDR, классовая и бесклассовая адресация это два разных подхода к распределению адресного пространства. Сравнитьвать имеет смысл только CIDR и классовую адресацию в целом, CIDR очевидно лучше т.к. дает более гибкий подход к маршрутизации и распределению адресов.
Вопрос: Почему тормозит Ubuntu?

Лучший ответ:
Рабочий стол бубунты по умолчанию очень прожорлив
Советую поставить lxde или xfce
Можно линукс минт с соответствующим рабочим столом

а так скорее всего Диск помер у Вас

Худший ответ:
Убунту фигня лагучая. Ставь Fedora, счастье тебе будет.
Вопрос: Как завернуть существующую БД postgresql в docker контейнер?

Лучший ответ:
Нельзя запихивать базы в контейнеры. Да и СУБД не желательно.

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

Лучший ответ:
1. Узнать требования к никнейму
Официальная документация требует:
Символы:  A-z (регистр не важен), 0-9 и "подчеркивание"
Длина: 5-32
2. Описать регулярку:
const validTelegramNickname = /^[A-Za-z\d_]{5,32}$/;

Худший ответ:
Попробуйте:
.*\B@(?=\w{5,64}\b)[a-zA-Z0-9]+(?:_[a-zA-Z0-9]+)*.*
https://regex101.com/r/J97QQu/2
Вопрос: Как автоматизировать выполнение sql-запросов?

Лучший ответ:
Зависит от СУБД, а не от IDE. Есть ли в СУБД планировщик запросов по расписанию.
А универсальный способ - это наличие любой среды выполнения, способной вызывать скрипт по расписанию - хоть shell, хоть cron + php/python, хоть планировщик windows + любой exe со скомпилированным запросом.

Худший ответ:
Вам определенно нужен девопс который автоматизирует вам выполнение ваших скриптов по календарю. Добавит дашборды с графиками и прочее.

DataGrip насколько я понимаю это среда разработки. Тоесть она активна пока у вас крышка ноутбука отрыта. Закрыли - всё. Капец все планам. 

Поэтому девопс и еще раз девопс.
Вопрос: Как ускорить старый сайт?

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

Команда разработки с которой работаем по нашему сайту предложила переписать сайт полностью и перенести на 1С Битрикс. Смущает цена, сумма близкая к миллиону, во многом из за объёма сайта.
 Сайт работает? Работает. Трафик идет? Идет. А если они его переделают, будет ли сайт работать и будет ли трафик идти? Вот тут уже не факт. Есть еще такая штука, как СЕО и реклама, которые тоже очень сильно влияют на трафик и конверсию. Как говорится "работает? не трогай". По предложению могу сказать что да, цена несколько завышена, но надо смотреть что конкретно они предлагают там.

Есть ли какие-либо более простые и бюджетные решения для получения более высоких показателей скорости?
Да, для этого достаточно найти одного грамотного веб-разработчика, который умеет правильно оптимизировать сайты и у него есть опыт работы с WP. В целом, могу сказать что дизайн у сайта вполне нормальный и скорость загрузки и работы приемлемая. Из того, что можно сделать для оптимизации (например раз, два):

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

Ну и плюс проверить, что там и как на сервере - достаточно ли производительный сервер, правильно ли настроен, есть ли кэширование и прочее.

Худший ответ:
1. Если сайт оптимизировать нормально, то это практически переписать половину бэкенда сайта. Либо как сделают некоторые оптимизаторы, будут ухищрениями оптимизировать под Pagespeed, скрывая от гугла скрипты, чтобы он их не увидел при загрузке. 
2. Переписать сайт можно на том же WP, без использования конструктора и 34 плагинов (даже не представляю зачем столько понадобилось и сколько это дыр в безопасности сайта). Сколько работаю с WP всегда удивлялся как делают так через одно место сайты на заказ, абсолютно не интересуясь как потом расширять/оптимизировать. В варианте переписать сайт заново главный плюс что сайт будет проще в поддержке + если требуется сразу можно поправить дизайн если что то не устраивает. Но цена близкая к миллиону похоже на обычный развод (как и переписать его на битрикс), сайт не настолько крупный и сложный и даже близко не стоит столько.
Вопрос: "Умение профилировать и отлаживать свой код без использования функции dd/var_dump" — это как?

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

Худший ответ:
Это называется словом "трассировка". 
Пошаговое выполнение программы средствами IDE, с контролем значений всех переменных.
На определенной строке программы ставится специальная метка, брекпойнт.
Дойдя до неё, интерпретация кода остановится, и дальше можно будет выполнять каждую строчку по одной, видя при этом значения всех переменных. Причем именно всех, а не только тех, которые ты добавил в дд.
То есть трассировка средствами IDE удобнее, быстрее и даёт больше информации, чем ручное колупание с вардамп.

В РНР этим занимается xdebug в связке с IDE

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

Лучший ответ:
ну всё е просто -

оцениваешь свой час работы, или месячную плату при полной занятости

и приблизительно оцениваешь время на разработку и тестирование
с запасом раза в полтора-два

разработка и дизайн - процесс непредсказуемый и дорогой
поэтому у нормальных дизайнеров девиз такой:

дорого долго прекрасно

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

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

И умножь получившееся время на ЗП, которую ты предполагаешь получать.
Вопрос: Какую версию WinPE Сергея стрельца выбрать?

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

Алгоритм -> у вас клиент у которого умерла 7рка, запускаете winpe 10тку стрельца, далее выбираете заранее скаченный образ 7рки который лежит у вас в корневой папке Winpe, запускаете программу восстановления > указываете раздел > указываете образ 7рки.

Худший ответ:
Используй ventoy, и грузись напрямую из iso/vhd и тд, хоть стрельца, хоть другие PE, хоть установщики виндов.
Ну или создай свое меню для загрузки на базе grub4dos но это чутка сложнее.
Новые стрельцы не всегда работают со старыми системами. У меня всегда 2 варианта их, старый допустим 5летней давности и современный.
Вопрос: Как сделать чтобы бот удалял определённое сообщение в группе?

Лучший ответ:
Вызываете метод https://core.telegram.org/bots/api#deletemessage
Передав в него нужные параметры (id чата и id сообщения), *бот удаляет*

Худший ответ:
words = message.text.split()
for w in words:
    if(w=='попа'):
        bot.delete_message(message.chat.id, message.message_id)
        break
Вопрос: Сможет ли Ansible вот такое?

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

Некоторые вещи можно делать косвенным путём, копируя и генерируя конфиги, запуская свои кастомные команды через таск shell, итд итп. Например, конфигурить sudo можно через создание файла с нужным содержимым в /etc/sudoers.d, не трогая основной конфиг.

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

Худший ответ:
до повершелла - всё можно сделать башскриптом (соответственно и ансиблом)
дальше - не силён
Вопрос: Где найти материалы по обнаружению патологии в мед.изображении на языке C#?

Лучший ответ:
Задача распознавания образов (а именно так звучит на самом деле постановка) имеет очень мало отношения к C#. 
Я-бы советовал автору вообще забыть про C# а искать сверточные (convolution) нейронные сети которые ищут в картинках нечто знакомое на любых (на всех языках разработки). Когда стоит такая амбициозная задача - то нужно вообще забыть про язык и мыслить категориями математики и известрых алгоритмов НС.

Задача сразу скажу - сложная. И на 99% - кастомизируемая. Тоесть вы не найдете готовых шаблонов или походов к решению. Вы будете почти все делать самостоятельно. Особенно в части обучающей выборки и методики обучения. И в части выбора качества модели. 

С высокой вероятностью вы найдете примеры похожих решений на Python/OpenCV.- Ваша задача будет заключаться в поиске полезного что можно почерпнуть из готового метода. И уже потом адаптировать под C# что можно из этого стека. Но опять-же ... C# здесь совершенно вторичен.

Худший ответ:
Добавлю к  mayton2019 
Как-то давным-давно занимался анализом изображений для агниографии с ангиологами :)
То, что к языку обработка изображений имеет десятое место, уже сказано.
А первое место - погружение в материальную область - медицину.
В общем, Вам прямая дорога к врачам-специалистам, которые будут говорить, что и как они хотят видеть. И чем вот это вот снимок отличается от вот того вот, и как бы его так бы представить, чтобы вот это вот было четче, контрастнее, цветастее... Какие плотности оставить, какие подсветить, какие выделить цветом, какие убрать...
Другими словами:
 - ищете материал: снимки, видео, описания, сравнения
 - составляете use cases
 - пробуете получить хотя-бы в ручном режиме области интереса...

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