Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как применить множество фильтров на входящий поток?

Лучший ответ:
Еще например вот так можно
type FReader struct {
	reader io.Reader
	filter func([]byte) (int, error)
}
func NewFReader(r io.Reader) *FReader {
	return &FReader{r, func(p []byte) (int, error) { return len(p), nil }}
}
func (fr *FReader) Filter(filter func([]byte) (int, error)) *FReader {
	return &FReader{fr, filter}
}
func (fr *FReader) Read(p []byte) (n int, err error) {
	n, err = fr.reader.Read(p)
	if err == nil && fr.filter != nil {
		n, err = fr.filter(p)
	}
	return
}
тогда можно написать
chainreader := NewFReader(myreader).Filter(myfilter1).Filter(myfilter2).Filter(myfilter3)https://play.golang.org/p/rakSV5kgqR9

Худший ответ:
 имея массив фильтров Не надо фильтры ложить в массив)

обработать входящий поток так, чтобы не было блокировок и в input находился обработанный поток после применения последнего фильтра? Каналы вам в помощь.

То есть, по аналогии с применением pipe в командной строке. Да-да, каналы вам в помощь) Они примерно так и работают.

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

Лучший ответ:
Во-первых, стоит посмотреть в сторону котлина, а не джавы.
Во-вторых, всё изучается одновременно. 
В-третьих, никакой "библиотеки движка" не существует. Есть Android SDK, есть либа поддержки androidx, есть куча сторонних либ.
в-четвертых, Android Studio это IDE. Как ты планируешь писать код и что-то изучать без IDE не очень понятно(да, есть фрики, которые что-то там пишут в текстовых редакторах, но это непродуктивно).

Худший ответ:
Есть различные roadmap, например вот и вот.

Возможно на первых этапах помогут в выборе направления.
Вопрос: Как сделать left join, если во второй таблице есть условие, которое убирает позиции из первой таблицы?

Лучший ответ:
Написать нужное условие в ON

Худший ответ:
SELECT t1.art,  

sum(
           case when t2.date > CONVERT(DATE,'01.01.2021') then t2.sales else NULL end
) as Условие1,
sum(
           case when t2.date < CONVERT(DATE,'02.02.1989') then t2.sales else NULL end
) as Условие2

FROM table1 as t1 
LEFT JOIN table2 as t2
ON t1.art = t2.art
GROUP BY t1.art
Вопрос: Можно ли заменить разъём MicroUSB на USB Type-C?

Лучший ответ:
1. Просто так снять micro и впаять на его место typeC не получится — посадочные площадки у этих разъёмов не совпадают. 
2. Нужно будет добавить резистор на линию CC, чтобы устройство определялось как slave и могло получать питание через typeC

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

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

Худший ответ:
Вполне возможно, что скрипит корпус из-за люфта (неплотной подгонки деталей корпуса друг под друга). Не страшно.
Вопрос: Windows 10. При установке ПО постоянно выявляются битые файлы, с чем может быть связанно?

Лучший ответ:
Начните с проверки оперативной памяти. Программа Memtest 86+, запустите на длительный срок, например на ночь.

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

Лучший ответ:
Держи и держи

Худший ответ:
Попробуйте это простое решение:
const Breadcrumbs = ({ ...rest, match }) => (
  <span>
      <Link to={match.url || ''} className={match.isExact ? 'breadcrumb active' : 'breadcrumb'}>
          {match.url.substr(match.url.lastIndexOf('/')+1, match.url.length)}
      </Link>
      <Route path={`${match.url}/:path`} component={Breadcrumbs} />
  </span>
)
Вопрос: Стоит ли начинать карьеру в SEO?

Лучший ответ:
Идти в сеошники, все равно как идти в шаманы.  Как в шаманизме постучал эдак по бубну и пошел дождь, а эдак снег.  Исключительно опытный путь,  методы проб, ошибок и экспериментов.  Тоже самое и в сео.  

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

Но вы всегда будете как эйнштейновый человек вне ведении истинной картины:
«В нашем стремлении понять реальность мы отчасти подобны человеку, который хочет понять механизм закрытых часов. Он видит циферблат и движущиеся стрелки, даже слышит тиканье, но он не имеет средств открыть их корпус. Если он остроумен, он может нарисовать себе некую картину механизма, которая отвечала бы всему, что он наблюдает, но он никогда не может быть вполне уверен в том, что его картина единственная, которая могла бы объяснить его наблюдения. Он никогда не будет в состоянии сравнить свою картину с реальным механизмом...»
«Эволюция физики» А.Эйнштейн, Л.Инфельд.

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

Отдельно замечу, что 1000 долларов для Москвы - это работа, которую не стоит жалеть оставить. Я бы даже сказал что определенно стоит посмотреть в другие области, пока не поздно.
Вопрос: Информация для мозга во время перерывов между программированием в течение рабочего дня?

Лучший ответ:
Просто нужен рабочий режим.

Например, с 10 до 17 работаю и ничем другим не занимаюсь. До и после - что угодно, любые развлечения по желанию (можно и снова поработать, если хочется, но в рабочее время отвлекаться нельзя). Также можно выделять время не по часам, а по результату - не отвлекаться, пока задача не выполнена.

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

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

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

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

Худший ответ:
Если затягивает поставьте будильник или напоминалку какую-то
Вопрос: Как передать данные в другую активити в Android-приложении?

Лучший ответ:
В современном андроид приложении должна быть одна активити. Больше можно, но обычно не нужно, и нужно чётко понимать, зачем. Экраны разруливаются фрагментами(Fragment).
Данные в активити можно передать внутри интента(Intent).

Худший ответ:
Intent (основной)
Static поле у activity (нельзя)
SharedPreferences
базы данных
Использование внутреннего хранилища
Использование внешнего хранилища
ViewModel
Шина
Вопрос: Почему персонаж подымается по стене при прыжке?

Лучший ответ:
if(Input.GetButton("Jump")){
Надо проверить, что контроллер стоит на земле и может от неё оттолкнуться для прыжка.

Сейчас вы проверяете, что контроллер находится рядом со стеной, землёй или полом.

Худший ответ:
Привет, попробуй решить проблему этим способом https://youtu.be/B3g-utBGflo
Вопрос: Как передать большой файл через сокеты на Python?

Лучший ответ:
Легко. Читаешь блоками и отправляешь. Размер файла не важен.

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

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

Худший ответ:
Сам нашёл решение.
Через библеотеку telethon 
InviteToChannelRequest
GetDialogsRequest
Вопрос: Как систематизировать знания?

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

Порекомендую практику: писать (свой) проект, параллельно читая код другого «хорошего» проекта. Списывать, копировать — понимая.

Если сталкиваетесь с невиданным явлением, термином, продуктом, паттерном — остановиться, погуглить, разобраться. Спросить.

Худший ответ:
Просто начните писать большой учебный проект, а ту теорию, которую вы учите попытайтесь синтетически включить в свой проект. Это самое лучшее решение по моему опыту.
Вопрос: Отличие локальных групповых политик?

Лучший ответ:
gpedit.msc - управляет всеми локальными политиками (если они не покрываются доменными политиками)
secpol.msc - управляет только разделом Security Settings локальных политик (если они не покрываются доменными политиками)

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

Лучший ответ:
Заходите в корень, делаете du -hs *. Смотрите вывод, захотите в каталог, который много, на ваш взгляд, занимает, повторяете команду.

Ещё есть ncdu, она поудобнее, но нужно отдельно ставить.

P.S. - обычно первый подозреваемый садовник логи.

Худший ответ:
Выполни ncdu /
Дальше действуй по ситуации.
Вопрос: Как вывести список подключенных библиотек к проекту?

Лучший ответ:
Джава ничего не знает о системах сборки. В джава есть пакеты. Где они конкретно лежат джава не знает.
Можно попробовать парсить classpath, но я бы на это не поставил.
Парсить можно примерно так:
ClassLoader cl = ClassLoader.getSystemClassLoader();

        URL[] urls = ((URLClassLoader)cl).getURLs();

        for(URL url: urls){
        	System.out.println(url.getFile());
        }

Худший ответ:
Почти все современные среды разработки в дереве проекта (Project=>External libraries) показывают зависимости.
Но успех мероприятия сильно зависит от того как проект создавался. Для maven-сборщика
это точно работает.  Для других - надо смотреть.
Вопрос: Гугл не даёт войти в аккаунт с помощью selenium python. Что делать?

Лучший ответ:
пожалуйста используйте юзер агент как у браузера например

options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36")

Худший ответ:
Гугл не любит ботов 
используйте антидетект браузеры к примеру gologin.com 
И то даже с ними не всегда все хорошо
Вопрос: Как запомнить действия пользователя на сайте?

Лучший ответ:
Нужно использовать сессии/cookie.
Я бы посоветовал, перед тем как что-то писать, дочитать базовое руководство по PHP.

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

Лучший ответ:
Как вариант, можете посмотреть в сторону partial

>>> def total(a=5, *b):
       return(a, b)

>>> total_first_fixed = partial(total, 5)

>>> a, b = total_first_fixed(6)
>>> a
5
>>> b
(6,)
>>> a, b = total_first_fixed(1, 2, 3)
>>> a
5
>>> b
(1, 2, 3)

Худший ответ:
по-моему нельзя, потому как порядок важен total(a, *b, **с)
a - обязательный аргумент, *b - кортеж аргументов
**с - именованные аргументы (словарь)
сам пользовался этим редко, мне обычно хватает явных аргументов
Вопрос: Ноутбук начал притормаживать, как устранить проблему?

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

Худший ответ:
друг , сделай стандартные действия почисти винду , можешь даже сбросить её до заводских настроек с сохранением файлов . 
Исходя из того , что ты задаешь такие вопросы , для чистки лучше тебе отнести его в сервис и термо тебя заменят и охлаждение почистят (там же медное 99%) 
Там легко можно при разборе повредить шлейфы питания видюхи дескретной и гг
Вопрос: Почему метод не возвращает значение?

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

Худший ответ:
public int giveBalance(int amount) {
     return amount;
}

Вот, так надо получить переменную. А дальше вывести в консоль
int a = giveBalance(10);
System.out.println(a);
Вопрос: Почему приложение на IOS печатает текст справа налево?

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

Худший ответ:
Проблему решил.
Оказалось все дело в том, что на инпуте был стиль user-select:none
Вопрос: Зачем нужно формирование PDF для карточки товаров?

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

Худший ответ:
Для Клиента. Для подготовки пакета документов для начальства )))
- прибегаешь к начальнику и говоришь - Надо 60К руб. на покупку 
1) ... 2) ... 3) ...
И даешь распечатанные  страницы товара или пересылаешь PDF файлы на почту.
Исключительно для некого удобства клиента. Попробуй зайти в интернет магазин, выбрать товар и распечатать. Вылезет 10 страниц всякой ерунды и пол страницы описания товара. Как клиенту мне это не удобно )))

Есть минусы: 
1) Разметку для печати надо делать отдельную. Затраты на разработку.
2) Клиент распечатает, но купит не у вас )))

Если планируется работать с Физлицами смысла не вижу. Может быть редкий случай когда распечатка помогает найти нужный товар в магазине-складе.
Вопрос: Вирус генерирует htaccess и заражает сайт на wordpress. Как исправить?

Лучший ответ:
генерирует файлы htaccess во всех папках
Удалить их можно через SSH, командой ниже, только путь на свой поправьте и убедитесь, что нужный(-е) htaccess(-ы) не снесёте:
find /home/.../papka_saita -type f -name ".htaccess" -delete
Вот расшифровка обфусцированного кода, изучите, возможно, поможет разобраться: https://pastebin.com/C4dk2WAX

Но по-хорошему, совет выше верный - удаляйте краденое, перезаливайте сайт, обновляйте имеющееся, перепроверяйте оставшееся.

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

Лучший ответ:
Токен не видно при передаче. Или ты не знаешь про https?

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

Если у тебя рефреш токен есть то хакер обменяет пару токенов и токены юзера станут заюзанными. Юзер использованный токен попытается заюзать если зайдет на сайт. Это как раз сигнал того что токены спи#дили и нужно сбросить все сессии этого пользователя.

Худший ответ:
Идея токена в том, что он идентифицирован, т.е. привязан к сессии.

Иными словами, вы пришли в банк, показали паспорт, и больше у вас не просят паспорт до ухода. Если кто-то украдёт ваш паспорт или вы придёте в другой день, то нужно будет снова предъявить документ.

p.s. 
Поэтому проблема не в том, что токен видно. Проблема в том, что сессию можно подделать.
Вопрос: Есть ли какие-то методы написания кода, когда надо смешать php и html в одной строке?

Лучший ответ:
Основная претензия к php  это спагетти код . Используйте шаблонизаторы и разделяйте логику и отображение

Худший ответ:
В простейшем случае используют ечо-шорткод<a href="<?=$url?>">Страница</a>, в более организованном коде предпочтение отдается шаблонизаторам (блэйд, смарти, хотя последний морально устарел). 
Хотя от конкатенации и прочих нюансов это сильно не спасает, просто готовьте строки не в отображении, а в логике.
Вопрос: Почему на хабре удаляются комментарии?

Лучший ответ:
Комментарий может быть удалён модератором, если он нарушает Регламент Сервиса

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

Лучший ответ:
Создать объект (словарь) где ключи – элементы массивов, а значения – число, сколько раз встретились.
const counter = {};

// пройти по массиву, заполняя counter
arr.forEach((el) => counter[el] = (counter[el] || 0) + 1);
Получится что-то типа {
  555: 1,
  30167380: 2,
  496903611692199: 1,
  245970100361652: 2,
  711023259278888: 2
}

Худший ответ:
Создать объект (словарь) где ключи – элементы массивов, а значения – число, сколько раз встретились.
const counter = {};

// пройти по массиву, заполняя counter
arr.forEach((el) => counter[el] = (counter[el] || 0) + 1);
Получится что-то типа {
  555: 1,
  30167380: 2,
  496903611692199: 1,
  245970100361652: 2,
  711023259278888: 2
}
Вопрос: Заправка или покупка картриджа?

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

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

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

Лучший ответ:
> хочется понять насколько сложно сделать апдейт на 3 версии.

Несложно. Отличия минимальны. В рамках одной мажорной версии вообще никаких проблем. Тут вопрос даже не в трудностях, а в том, что оставаться на 7.0 это вообще не вариант. 
Только переезжать надо на 7.4, потому что поддержка 7.3 прекращается через месяц.

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

Худший ответ:
Хотел бы дополнить ответ выше - переписывать код непосредственно из-за переезда с PHP 7.0 версии не придётся. Но обновление PHP может повлечь за собой обновление других библиотек, интеграция или интерфейсы которых за эти годы могли уже поменяться.

Но даже в таком случае первый вариант должен быть в приоритете - на актуализацию кодовой базы закрывали глаза уже 4 года, не стоит усугублять ситуацию.
Вопрос: Как убрать выведение сообщения err1?

Лучший ответ:
Во-первых, нужно не if ... if ... if ... print(), а if ... elif ... elif ... else: print()

Во-вторых,
if c != "множення" and "додавання" and "віднімання" and "ділення" :
Очень многие совершают эту ошибку. Так НЕ работает.
Код вида if x != 2 or 3: эквивалентен if (x != 2) or (3 != 0):, что, в свою очередь даёт if (x != 2) or True:. А что угодно or True даст True, т.е. условие будет всегда выполняться.
Правильно - if x != 2 and x != 3:  или if x not in (2, 3): 
Для своей задачи приспособишь по аналогии.

Худший ответ:
if c != "множення" and "додавання" and "віднімання" and "ділення" :
    print(err1)
в данной записи это выражение не проверяет, входит ли в c в список допустимых названий операций.  Получается, что с сравнивается с Умножение, получается результат True или False.  Следующее выражение это  логическое and с двумя операндами. Первое это логическое True или False, второй это "додавання".  Затем результат снова идёт в выражение and со следующим словом и тд.

См. про скобки и последовательность логических операций в питоне, а также про in и any
Например,
if c not in ("множення" , "додавання" ,"віднімання" , "ділення" ):
Вопрос: Dial Patterns для FreePBX?

Лучший ответ:
от 4760000 до 4809999_893047[6-9]XXXX
_8930480XXXX

6500000 до 8999999_89306[5-9]XXXXX
_8930[78]XXXXXX

Вот скрипт, который у меня периодически генерирует новый список экстеншинов региональных операторов для Asterisk в ael-формате. 
https://github.com/Rsa97/Other/blob/main/asterisk/...

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

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

Худший ответ:
Если промышленные манипуляторы, то языки Codesys. Там есть текстовый язык ST, похож на Паскаль. Есть версия 2 и 3. В последней есть интерфейсы и классы (не уверен, что кто-то применяет).
Но можно использовать и графические: CFC (функциональные схемы), SFC (граф состояний).
Некоторые контроллеры (ПЛК) позволяют использовать и C/C++ (вроде, B+R (Bernecker-Rainer), Австрия).