Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как и для чего используется php://input?

Лучший ответ:
Данные и так передаются по POST (или GET), но есть нюансы их обработки на стороне сервера.

1. POST и GET данные в виде parameter=value&param2=val2 автоматически обрабатываются сервером и заполняются глобальные массивы $_POST/$_GET/$_REQUEST:
$_POST['parameter'] = value;
$_POST['param2'] = val2;
GET-параметры при этом ещё и автоматически декодируются по urldecode().
Через php://input можно получить "сырые" необработанные данные.

2. Методом POST можно прислать, например, объект JSON, указав 'Content-type: application/json; charset=utf-8'. При этом массив-обёртка $_POST будет пуста, тк не присылается Имя_Параметра, а присылается только Значение_Параметра, и сервер не обрабатывает такие данные автоматически.
Получить такие данные можно только через php://input, так как глобальные массивы $_POST/$_GET будут пустыми.

Худший ответ:
https://www.php.net/manual/ru/wrappers.php 
https://www.php.net/manual/ru/wrappers.php.php
отвечу сразу и на будущие вопросы)
Вопрос: Как сделать чтобы функция в которой есть задержка не останавливала выполнение всего кода?

Лучший ответ:
Задержек быть не должно. Чтобы выполнять некоторый код с какой-то периодичностью, надо генерировать события с этой периодичностью и обрабатывать их:import pygame

screen = pygame.display.set_mode((300, 200))
clock = pygame.time.Clock()
pygame.display.set_caption('Timer demo')

MOVE_DOWN_DELAY = 500
MOVE_DOWN_EVENT = pygame.USEREVENT + 1

pygame.time.set_timer(MOVE_DOWN_EVENT, MOVE_DOWN_DELAY)

dot = pygame.Rect(150, 10, 10, 10)

while True:
    clock.tick(50)

    if pygame.event.get(pygame.QUIT): break

    for e in pygame.event.get():
        if e.type == MOVE_DOWN_EVENT:
            dot.move_ip(0, 10)

    screen.fill((0, 0, 0))
    pygame.draw.rect(screen, (150, 150, 150), dot)
    pygame.display.flip()

Худший ответ:
Нужны потоки
Вопрос: Вопрос по верстке сайтов для новичков?

Лучший ответ:
PHP на данном этапе определённо лишний. Javascript как таковой тоже не сильно нужен при вёрстке. Начни с html и css.

Худший ответ:
HTML + CSS, потом JS. Emmet конечно использовать, вы же и  так запомните названия тегов, зачем каждый раз все вручную писать.
Вопрос: Как написать функцию, последовательный вызов которой f(1)(2) вернёт значение 3?

Лучший ответ:
Изучайте (полностью весь раздел):
https://learn.javascript.ru/closures-usage
В конце разобрана задача которая вам нужна

Худший ответ:
Изучайте (полностью весь раздел):
https://learn.javascript.ru/closures-usage
В конце разобрана задача которая вам нужна
Вопрос: Как подключиться к серверу через VPN с одинаковыми подсетями?

Лучший ответ:
Использовать действие netmap в nat на стороне филиала для цепочек dnat и snat. 
А по людски - корпоративные сетки делаются в 10.0.0.0/8 диапазоне.

Худший ответ:
ментальным способом

так начинающие админы делают, чтобы не ломать голову с классами сетей и вот этим вот всем
Вопрос: Увеличивает ли padding ширину блока?

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

Худший ответ:
Если задать box-sizing: border-box, то не увеличится и не вылезет за родителя (по умолчанию box-sizing: content-box). box-sizing нужно задавать элементу, который внутри (свойство не наследуется)
Вопрос: Как сделать такую сортировку?

Лучший ответ:
Для начала алфавит: let alphabet = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.split('')charcode использовать нельзя, потому что в юникоде буква "ё" идет после буквы "я". И это, похоже, навсегда.
Дальше функция, которая определяет "расстояние" между буквами.function getRange(a, b) {
  let iA = alphabet.indexOf(a), iB = alphabet.indexOf(b) // ищем на каких позициях встречаются эти буквы в алфавите
  if (iA === -1 || iB === -1) return Infinity // если вообще не встречаются - расстояние бесконечность.
  return Math.abs(iA - iB)
}


getRange('а', 'р') // -> 17
getRange('а', 'я') // -> 32
getRange('к', 'в') // -> 9
getRange('а', 'f') // -> Infinity  (и никто не мешает добавить английский алфавит)
На основе этой функции не сложно написать сортировку по расстоянию: function getClosestWord(letter) {
  return [...words].sort((word1, word2) => {
  	return getRange(word1[0], letter) - getRange(word2[0], letter)
  })
}

getClosestWord('а') // ->
["аметист", "баржа", "дом", "еж", "креветка", "каток", "кот", "лимон", "море", "морж", "нора", "рога", "рыба", "рак", "сани", "сом", "собака", "том", "танк"]

getClosestWord('п') // ->
["рыба", "рак", "рога", "нора", "собака", "сани", "сом", "танк", "море", "том", "морж", "лимон", "каток", "кот", "креветка", "еж", "дом", "баржа", "аметист"]
Дело за малым - повторять пока не закончатся слова.

Худший ответ:
не могу додуматься как сделать когда берется уже не первая буква второго слова а последующие
Отсортируйте алфавит в соответствие с условием близости букв, а затем обходите отсортированный алфавит и ищите слово, начинающееся на текущую букву.
Как отсортировать алфавит (точнее - получить отсортированную копию): получаете индекс последней буквы последнего слова, создаёте массив с последней буквой, затем делаете цикл от 1 до размера алфавита, закидываете в массив элементы исходного алфавита с индексами, равными индексу последней буквы +/- текущее значение счётчика цикла. Потом отфильтровываете из массива undefined элементы (ну или делайте соответствующую проверку ещё в цикле, тогда ничего фильтровать не надо) - алфавит готов.
UPD. Выглядеть это может как-то так.
Вопрос: Веб-разработка?

Лучший ответ:
Прежде, чем стать веб-программистом, ты должен стать просто программистом, ты же не хочешь пополнить ряды многочисленных верстальщиков на реакте, или стать как "Веб-дизайнер, программист, креативщик, сценарист" из комментария выше?
А чтобы стать программистом, начни изучать Computer Science в целом. Посмотри  гарвардский курс CS50 ,  выписывай вопросы, которые не понятны, изучай дальше. Пока молодой, учи английский язык, очень пригодится. Постарайся поступить в хороший институт на специальность близкую к названию "Программная инженерия (Software Engineering)". Если у тебя будут хорошие базовые знания, то многие дороги будут открыты.  Будет непросто, но если тебе это нравится, должно все получится.
Ну и вот тебе еще хороший web developer roadmap 2019, там тебе на долго хватит.

Худший ответ:
Я бы посоветовал начать с освоения cms; битрикс, wordpress итд. Параллельно учи php и java. И учти, если ты выбрал эту профессию ты должен быть готов к обучению на протяжении всей жизни!!! Учи все заранее хорошо, дальше будет гораздо легче. Поставь цель, написать что то стоящее,  или же стать номером один в мире по чему либо, в первом случае делай уклон на импортозамещение, большой плюс от правительства в помощь.
Вопрос: Какой верный подход при создании многостраничного react приложения?

Лучший ответ:
1. В вашем случае нет, вам же, насколько я понимаю, нужна навигация без перезагрузки страницы.
2. Забудьте на время разработки что такое JQuery и подходы которые с ним принято использовать. По поводу библиотек, экосистема react содержит множество библиотек. Так же есть смыл подключить библиотеку для ajax запросов axios/superagent/etc. Вообще, перед тем как подключать какую-либо библиотеку лучше 3 раза подумать, так как многие из них существенно увеличивают размер бандла, например, тот же moment. Для того чтобы быть в курсе того, что и сколько в вашем бандле занимает места можно подключить в prod сборку webpack-bundle-analyzer.
3. Почитайте про роутинг на стороне клиента. Для React разработки стандарт react-router.
4. SSR.

Худший ответ:
1. Если header и footer не имеют кнопок или других элементов, меняющих состояние компонентов, то можно обычной версткой, а внутрь поместить блок, в котором будет работать главный компонент приложения
2. Да, так и есть.
3. Почитайте про React Router, вкратце: страницы помещаются внутрь компонента Switch и у каждого в пропсах прописывается путь, при котором оно будет отбражено. И есть компоненты Link, которые меняют location компонента.
4. В интернете много материалов, как подружить React Router с SEO
Вопрос: Можно ли изменять Transform объекта, не меняя Transform его дочернего объекта?

Лучший ответ:
Если вам это нужно делать - то у вас проблемы с иерархией.
А вообще - ЛОКАЛЬНЫЕ координаты детей не меняются. А то что он глобально переместился - ну так коммон, для того иерархия и нужна )
А по факту - или делаете как сказал freeExec, или к дочернему применяете обратную трансформацию (движение/поворот/скейл в другую сторону на ту же величину).

Худший ответ:
1) Запоминаешь мировые координаты дочерних объектов;
2) Двигаешь родителя
3) Выставляешь дочерним объектам запомненные координаты.
Вопрос: Нарушаю ли я ООП используя partial классы?

Лучший ответ:
Нет. 
Partail классы это механизм компилятора. А ООП стиль написания программ. Понятия из разных областей и не пересекаются никак.

Худший ответ:
Если речь идёт о wpf или чем-то подобном, то так и нужно. Не трогать автоматически сгенерировано классы, а логику писать в своих (ну или автоматически созданных, но с местом для творчества).
Вопрос: Что будет, если подключить свитч вместо роутера?

Лучший ответ:
Добрый день.
Нюанс 1. Насколько защищен провайдер.
Насколько защищен провайдер. Существует несколько типов защиты:
- Защита от BPDU пакетов. Вариант 1. BPDU Guard (отключить порт, при любом BPDU пакете входящего с вашего порта).
- Защита от BPDU пакетов. Вариант 2. BPDU Filter (игнорировать любые BPDU пакеты).
- Защита по количеству MAC адресов с вашего порта: Вариант 1. Разрешить только первый MAC адрес. Остальные игнорировать.
- Защита по количеству MAC адресов с вашего порта: Вариант 2. При превышении количества MAC адресов блокировать Ваш порт.
- Защита от атаки на DHCP сервер - сколько запросов можно посылать на DHCP сервер с Вашего порта. (DHCP snooping)
- У Билайн авторизация построена интересно. Твое устройство авторизуется на WEB портале, после твою сеть добавляют в другой VLAN и ты получаешь IP адрес по DHCP. Аналог 802.1x авторизации, когда разрешенные MAC в одном VLAN, а запрещенные в другом VLAN.
- Провайдеры любят делать финт, что после запроса адреса на DHCP сервере, только этот MAC адрес получает доступ в интернет и ответ на DHCP. У других устройств ответа по DHCP нет. 

Есть очень большая вероятность, что у вашего провайдера включена защита либо 802.1x либо DHPC Snooping

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

Лучший ответ:
JavaScript: Методы асинхронного программирования

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

Лучший ответ:
Я не фрилансер, но делал бы так:
1. Если сервер не нужен - вопрос решен
2. Если сервер нужен и его делает третья сторона - вопрос решен
3. Если сервер нужен и его делать самому, то:
а) анализ функционала приложения. Если это условно говоря какие-нибудь заметки или список рецептов с сохранением на сервере для надежности, то сообщать клиенту о том, что существует сервер и для чего он нужен смысла нет. Берется бесплатный тариф firebase и готово. Можно даже держать один общий аккаунт для таких "несущественных" серверов.
б) если приложение потенциально может обрасти большим количеством данных, то объясняем клиенту, что к чему. Что данные где-то надо хранить, и это где-то называется сервер. Что на первых порах можно использовать бесплатное решение(тот же firebase), но если данных станет больше то придется переходить на платный тариф. Предлагать два варианта: либо он сам заводит этот сервер и оплачивает, либо предлагаю самому этим заниматься за стоимость сервера + дополнительные пару копеек.

Худший ответ:
1) как вы разговариваете с клиентами о серверной части, объясняя, что им нужно будет заниматься ею периодически оплачивая ?
Стоимость оплаты сервера даже на год вперёд сразу в разы меньше чем стоимость моей работы.
Поэтому никакой проблемы эта оплата не вызывает.
Чаще оставляю на своих серверах. Хорошая доплата за ничего-не-делание. Ведь оплату беру больше, чем стоит хостинг для меня. И продлевают годами и годами. Хороший дополнительный заработок.2) как вы оформляете и передаете права доступа к консолям серверной части ? К примеру, на базе сервисов Firebase.
Иногда никак не оформляю, всё на доверии.
Иногда аккаунт сразу создан на имя клиента.при этом совсем не имея понятия
Дык именно поэтому вас и нанимают, что специалист в этой сфере вы.
И ваша задачи все эти нюансы объяснить клиенту до старта проекта.Хочется же максимально бесконфликтного общения, и не разжевывать каждому клиенту что и как, и каких копеек это будет ежемесячно стоить, тем более, что это разжевывание в большинстве случаев оканчивается ничем. Т.к. или малопонятно, или "дорого" заказчику.
Напротив.
Им копейки ежемесячно неудобно.
Сразу стоимость оплаты сервера - за год называю. просишь у заказчика gmail-экаунт с паролем, на который регаешь проект
Для этого не нужно брать у него пароль.
Делаю и себя и его администратором проекта.
Ну а оплату - разумеется с его аккаунта.
Вопрос: Как связать две модели (формы) в DJANGO автоматически при создании?

Лучший ответ:
Добавлю к Yura Khlyan, maniacus26, самое просто решение, создавать запрос с страницы обращения. Напр:
obrashcenije/2 - страница с информацией об обращении
obrashcenije/2/dodat_zapros - страница с созданием запроса к конкретному обращению.
Тогда во вьюхе создания запроса, буде доступен парметр self.kwagrs['obr_id'], если урлу задать как-то так: 
что если нужно в саму форму передать объект(ид) обращения, можно в классе вьюхи черезclass ZaprosCreator(CreateView):
    form_class = ZaprosForm

    def get_initial(self):
        return {'obrashcenije': self.kwagrs['obr_id']}
Или если используется простые виды через функции, тоform = ZaprosForm(initial={'obrashcenije': self.kwagrs['obr_id']})
В форме ловитьclass ZaprosForm(forms.ModelForm):
    ...
    def __init__(self, *args, **kwargs):
        super(ZaprosForm, self).__init__(*args, **kwargs)
        self.obrashcenije = kwargs.get('initial').get('obrashcenije', None)
Ну и как вариант в форме не обрабатывать вообще обращение:class ZaprosForm(forms.ModelForm):
    class Meta:
        model = ZaprosModel
        exclude = ('obrashcenije',)
А уже во вьюхе перед сохранением формы добавитьclass ZaprosView(CreateView):
    form_class = ZaprosForm

    def form_valid(self, form):
        obj = form.save(commit=False)
        obj.obrashcenije_id = self.kwagrs['obr_id']
        obj.save()
        return super(ZaprosView, self).form_valid(form)ПС. избегайте руских названий моделей/переменных/классов, даже транслитом 

Худший ответ:
На кнопке "Запрос" поставить инпут с id обращения. Потом создать запрос:obj = form.save(commit=False)
obj.obrashchenije = request.POS.get('obrashchenije_id')
obj.save()
Вопрос: Стоит ли учить РНР в 2020?

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

Худший ответ:
Да, стоит.
И не "Пайтон", а "Питон" (да начнётся srach!).
Вопрос: Веб-сервер на ГО?

Лучший ответ:
Можно, но статику nginx просто отдаёт быстрее обычно.

Худший ответ:
потому что встроенный сервак на го не умеет работать с медленными клиентами, и сотня другая таких медленных соединений просто его отвалят, если ему не выставить правильно таймауты, но тогда будут отвалятся посетители которые например пытаются открыть сайт с телефона с медленным интернетом, 
по этому на фронт ставят nginx, причем даже там, где уже есть сервак такой как IIS или Apache,
о том как nginx обрабатывает соединения написано частично тут
https://habr.com/post/260669/
Вопрос: Выводит None при парсинге страницы. Как исправить?

Лучший ответ:
Потому что нет элемента с таким id


Худший ответ:
Элемент "profileData" можно получить следующим образом:
import requests
from bs4 import BeautifulSoup as BS
import time

url = 'https://krunker.io/social.html?p=profile&q=_Gleb_'
r = requests.get(url)
soup = BS(r.text, 'lxml')
result = soup.find("div", { "id" : "profileData" })
print (result)
Результат:
<div id="profileData"></div>
Похоже, что он заполняется после исполнения Javascript. Посмотрите следующую Javascript-функцию, которая присутствует в ответе на запрос:
function F(e, t, n, r, a, i, d, f)
Ее код слишком длинный, вставлять ее не буду.
Вопрос: Как сделать равномерное распределение во флекс контейнере с промежутками?

Лучший ответ:
Контейнеруmargin: 0 -2.5px;
Элементуmargin: 0 2.5px;

Худший ответ:
Дмитрий 
Почему просто не указать для элемента margin с помощью :not(:last-child)? или подобрать nth-child (если вдруг будет несколько строк)Понятно что margin-left кривое решение, так как придется обнулять его у крайнего элемента..item:not(:last-child) { margin-right: 5px; }
Вопрос: Общая таблица учеников онлайн школы. Есть готовые решения?

Лучший ответ:
Google Doc, а точнее Google Sheets (гуг таблицы) решают вашу проблему.
Для этого нужно расшарить её не по ссылке, а выдать доступ каждому индивидуально, по e-mail с правом на редактирование. Далее, если кто-то всё удалит за 2 секунды, то в истории документа (таблицы) вы сможете посмотреть, кто именно это сделал. Можно откатить изменения.
Далее есть такая штука, как Google Forms. Вы можете создать форму типа формы регистрации, только простую - вводишь свои ФИО и дату занятия (к примеру). Эту форму можно сконнектить с гугл таблицей, куда будут поступать данные. Саму таблицу открыть только для чтения или вообще не открывать (лишь преподавателю нужно будет ее смотреть).
Вот вам и база данных + UI. Дешево и сердито.
Я уж молчу про то, что там можно и скрипты прикрутить, если будет необходимость. Можно защищать отдельные диапазоны таблицы и т.д. Собственно, думаю, вам всё же понадобится скрипт в случае использования Google Forms. Во-первых, нужно посылать письмо, что место забронировано или что места кончились. Ведь может быть так, что два человека регистрируются одновременно, а место осталось одно. Плюс когда места кончились, нужно автоматически менять форму, чтобы она была закрыта и превращалась просто в уведомление "мест больше нет".
PWA - тоже выход. Понадобится один фрилансер (программист, желательно с уклоном в UI/UX) для создания приложения и немного денег на хостинг (12 руб в месяц). Готовых решений нет.

Худший ответ:
В google docs в таблице можно настроить права доступа
Вопрос: Разница между DNS зоной и доменом?

Лучший ответ:
Домены разбиваются на зоны, за которые отвечают индивидуальные DNS-серверы.
Домен представляет список ресурсов, объединенных одной организационной единицей.
К примеру, все домены с окончанием ".ru" принадлежат домену "ru".
Зона -  запись, определяющая делегирование ответственности за поддомены на другие DNS-серверы (запись типа NS).

Худший ответ:
зона не лагерь
дом не домен

если кратко: зона включает в себя все подмножество доменов

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

Лучший ответ:
Кто уже долгое время юзает линукс, как вам?
6 лет, полет нормальный.Удобно ли для веб-разработки
Да.Как работает Steam?
Работает.Есть ли возможность работать с MS Office( >=2007)?
Можно экспортировать документы из LibreOffice в необходимых форматах.Наслышан про Ubuntu, ее выбирать и какой версии?
Если брать Ubuntu, то только LTS (18.04 на текущий момент). Но я бы лучше взял Elementary OS.

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

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

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

Лучший ответ:
Прикоснуться к экрану смартфона двумя пальцами и потянуть в разные стороны. 
Тренируйтесь.

Худший ответ:
Никогда этого не делал, но вроде есть обработчики тач событий
Вам по идее нужно поймать 2 'touchmove' и проверять, чтобы координаты  расходились в противоположные по оси от этих точек координат стороны, ну а дальше если условия есть зум или анзум. В идеале вам бы еще как то определить цену расстояния т.е насколько будет приближено изображение если от исходных точек(их значит нужно кэшировать) пройдено определенное расстояние.
upd: https://developer.mozilla.org/en-US/docs/Web/API/P...
upd: https://developer.mozilla.org/ru/docs/Web/CSS/touc...
Вопрос: Как прочесть файлик при помощи PHP?

Лучший ответ:
Если формат верный, и это действительно XML - new SimpleXMLElement($data);

Худший ответ:
если это xml, то <?php
// Файл test.xml содержит XML-документ с корневым элементом 
// и по меньшей мере элемент /[root]/title.
  $xml = simplexml_load_file('test.xml');
а если произвольный файл то можно использовать регулярные выражения примерно так: 
$src = file_get_contents('~/Documents/file.txt');
echo $src;
if(preg_match_all("/(.*)(.*)\s+/s",$src,$arrMatches,PREG_SET_ORDER)){
 foreach($arrMatches as $matches){
    echo "name=".$matches[1]." ; value = ".$matches[2]."\n";
 }
}else{echo "preg_match_all no results by pattern";}
Вопрос: Подключить второй монитор?

Лучший ответ:
Маленькие разъемы - походу Mini DisplayPort. Прост купите шнур/переходник mdp->hdmi и подключайте свой монитор. 
Предварительно желательно все таки прочитать мануал к своей видеокарте на предмет что же это за разъёмы, но я не представляю для чего ещё могут быть эти разъёмы кроме mdp.

Худший ответ:
2-й монитор подключить через кабель HDMI-DVI. DVI в видеокарту, HMDI в монитор. Можно и не кабель, бывают переходники DVI-D -> HDMI.
Вопрос: Как обезопасить сайт от фрилансеров?

Лучший ответ:
Ренат будьте вежливыми, перед тем как сказать досчитайте до 42. 
Не кидайте в сугубо криминальном понятии кидка. Все проблемы разрешайте переговорами. 
Фрилансерам в общем то до вас без разницы, вы заказчик и оплачиваете банкет, навредить вам и себя подставить так себе развлечение. Ну висит у меня куча паролей. Что мне дропать базу? Я лучше возьму с вас по второму кругу когда вам студенты наворотят, тем более буду знать что там у вас твориться. 

У меня есть долгоиграющий проект, завершали мы его раза 4, работало над ним примерно 17 команд. Мы уже друг друга знаем поименно.

Худший ответ:
Давать кодировать отдельными блоками и ограничивать валидацию только нужным Вам перечнем функций.
PS: Инфы много: если интересно - могу статью черкануть в своём блоге.
Вопрос: Как в Яндекс Карте скрыть/показать гео-объекты?

Лучший ответ:
Делал такую штуку недавно: выводил по чекбоксам объекты на карту в зависимости от типа объекта (заправка, школа, магазин и т.п.).
Нашел у себя вот такой код:myPlacemark.options.set("visible", false)
Так что все правильно Вы делаете. Даже не обязательно в коллекции собирать.
Поищите ошибку в коде вызова метода. Возможно, не обрабатывается событие изменения checkbox.

Худший ответ:
В вашем коде негде не указывается что коллекция добавлена на карту. Наверно нужно добавлять маркеры в коллекцию а потом добавлять коллекцию на карту - как в примере https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...