pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как получить много IP-адресов?

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

Но это достаточно дорого

Худший ответ: Арендовать сервер с дополнительными IP
Вопрос: В адаптиве имеется белая полоса, как убрать?

Лучший ответ: Это значит, что какой-то элемент в верстке не может стать меньшей ширины, чем ширина экрана плюс эта полоска. Может быть width/min-width где-то жестко задан, может флексы без flex-wrap.

Пропишите стиль 

* {
  outline: 1px solid red;
  outline-offset: -1px;
}

И посмотрите, что выпирает на белую полоску. Потом в инспекторе выясните, какое правило не даёт блоку ужиматься до размеров экрана.

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

Худший ответ: Из-за transform: translate( X%, Y%), будьте аккуратнее с %
Мб кому то будет полезно
Вопрос: Какие курсы по реакту можете посоветовать?

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

html/css: стартануть можно отсюда, потом догоняться здесь и здесь
JS: https://learn.javascript.ru/. Учебник без ереси.
Ну и конечно https://developer.mozilla.org/ru/docs/Learn - там много чего есть. Это всё справочники.
TS: https://www.typescriptlang.org/docs/. Там же есть playground.

Разобравшись со всеми этими штуками и с тем как их применять, можно взяться за Реакт и без проблем освоить официальную документацию. Потом - стейтманагеры: redux, mobx. Потом - nextjs/gatsby. Вот примерно так.

Худший ответ: В добавок ко всему сказанному могу посоветовать после прохождения теории, повторить вот этот курс: https://www.youtube.com/watch?v=bziVFvq8cLQ&list=P.... Поможет расставить все знания по полочкам и познакомиться с некоторыми фишками react. Для новичка самое то
Вопрос: В рабочей папке пропали все файлы после зависания и перезапуска Finder в MacOS, как их восстановить?

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

пробуйте любое рекавери под виндой. а лучше оставьте диск в покое и обратитесь в контору по восстановлению данных. 
если ещё не поздно.

Худший ответ: Любым ПО для восстановления данных откройте (Power Data Recovery, R-Studio), с большой вероятностью он достанет вам ваши файлы. До восстановления файлов диск очень желательно не трогать в плане записи
Вопрос: Как получить данные из postgresql в python?

Лучший ответ: На скорую руку
import psycopg2
from datetime import datetime, timedelta
from pprint import pprint


def get_dt(dt: str):
    return datetime.strptime(dt, '%Y%m%d')


def get_dt_delta(dt: datetime, s=1, e=4):
    return dt - timedelta(days=s), dt + timedelta(days=e)


def execute(config, sql, param=None, select_mode=True):
    connection = None
    try:
        connection = psycopg2.connect(**config)
        cursor = connection.cursor()
        if param:
            cursor.execute(sql, param)
        else:
            cursor.execute(sql)
        if select_mode:
            return cursor.fetchall()
    except Exception as E:
        print(E)
    finally:
        connection.close()


def get_devices():
    devices_q = "SELECT * from devices LEFT JOIN devatt on devices.dev = devatt.dev " \
                "WHERE devatt.att = 'otherinfo' AND devatt.value like '0%'"
    return [x[0] for x in execute(cfg, devices_q)]


def generate_rep(devs, period):
    r = {}
    period_dt = get_dt(period)
    period_s, period_e = get_dt_delta(period_dt)
    for dev in devs:
        q = 'SELECT * from rawdata where deveui = %s and time between %s AND %s ORDER BY id DESC'
        rawdata = execute(config=cfg, sql=q, param=(dev, period_s, period_e))
        r[dev] = rawdata
    return r


if __name__ == "__main__":
    cfg = dict(user="pguser", password="localpass", host="127.0.0.1", port="5432", database="wan_server")
    devices = get_devices()
    date = '20220308'
    result = generate_rep(devs=devices, period=date)
    pprint(result)

1. смотрите как правильно работать с датой и временем
2. не используйте интерполяцию в sql запросе

Худший ответ: Ну во-первых, да, ваш цикл не имеет смысла именно по указанной причине.
Последовательность должна быть сначала execute(), потом цикл for.
Во-вторых...
"SELECT * from rawdata where deveui = '" + str(dev[0]) + "'
Не делайте так. Освойте подстановку параметров.
Вопрос: Как работать с ОЗУ в сети?

Лучший ответ: RDMA протокол и в основном аппаратные решения (например на основе InfiniBand) но и на програмном поверх ethernet - например RoCE или iWARP.

Так же есть аналог gpudirect rdma но в пределах одного сервера, когда видеоускорители объеденены дополнительным кабелем и могут передавать данные не пропуская их через pcie

p.s. что то мне говорит что язык c# (точнее виртмашина clr) и требования к скоростям, из-за которых вынуждены работать с rdma - рядом не стоят, я даже не нашел ни единого упоминания об этом (есть что то от майкрософта, расширение smb2 протокола для работы через rdma и примеры кода на c#)

Худший ответ: 1) Как уже написали  RDMA, он есть поверх 10Gb  эзернета, и по  Infiniband
2) Есть еще такая унылая и очень экзотическая вещь - Reflective Memory, но ее вытеснили в первом пункте
3)  Сами пишете что нибудь на основе протокола  MPI
4) Но пункт 3 вытесняется простыми решениями на обычных TCP/IP сокетах.

Отдельно, что касается RDMA, это обычно прямые вызовы в операционной системе с соответствующими драйверами. Как в виндах - не знаю, но под линуксом все встоено в стек протоколов  MPI - в него и смотрите.
Вопрос: Есть ли смысл изучать мобильную разработку в ближайщие 10 лет?

Лучший ответ: Прочитайте рассказ А. Азимова "Профессия" там ответ на ваш вопрос

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

Лучший ответ: Хороший вопрос.
Сам делал что то такое (прототип) на Vue. awfulk1f.beget.tech/pj/cinema/index.html
Пока не доделываю этот проект. Есть пагинация, фильтр по алфавиту (отключен), сохранения просмотренного в cookies. 

Сам плеер - только HTML5. webm, mp4 - воспроизводит нормально. 
mdn говорит что с форматами всё довольно хорошо
https://developer.mozilla.org/en-US/docs/Web/Media...
https://developer.mozilla.org/en-US/docs/Web/Media...

Если хотите, могу отправить исходный код проекта.  Со стилями там полный беспорядок, интересно было насколько проще такое сделать с фреймворком, чем на чистом JS.

Худший ответ: Для домашнего использования можно попробовать какой-нибудь HomeMediaServer или simpleDLNA - натравливаешь их на свою библиотеку, и они на лету будут перекодировать видео для клиента.
Так можно будет смотреть с других компьютеров, телефона, телевизора.

А MKV - это контейнер, в котором может использоваться любой кодек, так что плеер должен уметь понимать их все.
Вопрос: Насколько сложно устроиться во Frontend начинающему в 2023?

Лучший ответ: Как уже и ответили так же как в 2022, 2021, 2020, 2019 ...
По своему опыту отвечу что большинство моих успешных коллег уже на 2-3 курсе работали по профильной специальности, кто в университете на кафедре, что давало нехилый буст при сдаче предметов, кто в серьезных фирмах.

В общем рассылайте резюме, ходите по конференциям их многие фирмы устраивают в институтах или университетах.

Худший ответ: Насколько сложно устроиться во Frontend начинающему в 2023?
Учитывая, что конкуренция стала еще больше, а вакансий все меньше и меньше
Очевидно, сложнее, чем было ранее.

то каков шанс в 2023 году попасть на работу во Frontend
От 0% до 100%. Открывайте hh.ru, сходите на 100 вакансий, если офферов будет 0, то Ваш шанс 0%. Как ответить еще на этот вопрос - хз.
Вопрос: Как отрицательное число обратить в положительное?

Лучший ответ: Используйте ABS, вот пример формулы ячейке N1
=ABS(I1-LEFT(VALUE(TEXT(A1;"DD"));1)*2)

Худший ответ: *-1 отрицательное число = получишь положительное
Вопрос: Закрыть доступ к папке пользователю linux за /var/www?

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

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

Лучший ответ: Remote Desktop Gateway - стандартный компонент Windows Server. Снаружи торчит 443 порт, внутри - обычный 3389. Порты можно поменять. Внутри самого RDG настраиваете политики CAP (кому) и RAP (куда). Для более специфичной настройки можно использовать NPS (ставится автоматом при установке RDG). Для внутренних клиентов использование RDG можно отключить
Наружу RDG можно выставить самостоятельно (если, например, используется два сетевых интерфейса) или через, например, Haproxy

Худший ответ: rdp не поддерживает srv record, так что в вашем случае раз уже есть nginx то через него :(
Вопрос: Почему PATH_SEPARATOR выдает ':' вместо '/'?

Лучший ответ: https://www.php.net/manual/ru/dir.constants.php

Путаете PATH_SEPARATOR (тот который в переменной окружения PATH) и DIRECTORY_SEPARATOR

Худший ответ: https://www.php.net/manual/ru/dir.constants.php

Путаете PATH_SEPARATOR (тот который в переменной окружения PATH) и DIRECTORY_SEPARATOR
Вопрос: Как получить диагностическую информацию с RAID контроллера из под ОС?

Лучший ответ: Есть программы для контроллеров LSI. 
MegaRAID Storage Manager
и
LSI Storage Manager

Худший ответ: MegaRAID Storage Manager (Windows)
AVAGO MegaRAID Storage Manager или LSI MegaRAID Storage Manager - разница только в логотипе - по внешнему виду и функционалу близнецы-братья
Запуская MegaRAID Storage Manager на сервере где у меня RAID AVAGO - я с его же помощью удаленно подключаюсь к серверу с RAID LSI
Вопрос: Каким способом можно отловить исключение при ошибке выкачки файла?

Лучший ответ: Дело не в языке, который вы используете, а скорее в понимании протоколов.
Когда вы делаете запрос используя протокол http у вас есть определённые ограничения.

Одно из ограничений это timeout, время ожидания, отведенное на ответ удалённого сервера.
Если скрипт вы запускаете через браузер, то есть так же ограничение, которое накладывает веб-браузер на ответ от php интерпретатора.

В любом случаи попробуйте вот такой код запустить через командную строку:

<?php
$context = stream_context_create(array(
	'http' => array(
		'timeout' => 60, // Время ожидания ответа от сервера
	)
));

$url = 'https://kristallnails.ru/integration?int=ym&name=businesshunter';
try {
    $priceFile = file_get_contents( html_entity_decode($url), false, $context );
} catch (Exception $e) {
    info($e->getMessage());
}

print_r($priceFile);

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

Но вообще переходи на джаву конечно. Там это более продумано
Вопрос: Не получается установить ssl через certbot. Почему?

Лучший ответ: Какой web-сервер используется? Похоже, что certbot создал тебе сертификат, но не настроил конфиг web сервера на его использование, т.к. в консоли видно, что ты использовал ключ certonly.

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

Лучший ответ: const options = computed(() => {
  if (props.secondType) 
    return props.secondTypeItems.map(({ id, value}) => ({
      label: value,
      value: id 
    }));

  if (props.thirdType) 
    return props.thirdTypeEvents.map(({ desc, name }) => ({
      label: name,
      value: desc 
    }));

  // ...

  return [];
});

<el-select
      v-model="modelText"
      placeholder="Выберите предмет"
      @change="changeVal"
    >
      <el-option
        v-for="{ label, value} in options"
        :key="value"
        :label="label"
        :value="value"
      >
        {{ label }}
      </el-option>
    </el-select>

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

Лучший ответ: Путин.
https://www.kommersant.ru/doc/4977444

Худший ответ: Как вариант роутер отктатить к заводским. Только учти что придется заново настраивать вай фай и прочие вещи, может поможет. Ну и пароль сменить для входа в админку с стандартного
Вопрос: Что лучше купить для комфортной работы программистом: Makbook Pro 13" 8gb или Makbook Air 13" 16gb?

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

Худший ответ: Есть отличные варианты других производителей, Apple не показатель производительности, а ценник хороший. Сам мощными ноутбуками не пользовался, не могу сказать у кого лучше по охлаждению, но могу посоветовать посмотреть другие варианты (производительность даже может быть лучше и цена меньше) от MSI , ASUS (TuF, ROG Strix) , DELL (Для работы подойдут очень хорошо) и с SSD и 16 ГБ ОЗУ будет и Видеокарта к тому же хорошая
Вопрос: Сервис для тестирования сайта под нагрузкой?

Лучший ответ: Яндекс.танк, не?

Худший ответ: Есть много, когда пару лет назад проверял, то наиболее щедрые бесплатные планы были у 
blazemeter.com 
https://k6.io/
Вопрос: Когда нажимаю на ссылку, аккордеон закрывается полностью. Как настроить JQuery код так чтобы можно было переходить по ссылкам в аккордеоне?

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

https://codepen.io/soffrire/pen/RwjXKNZ

Худший ответ: Ну так убедись сначала, что клик идет не по ссылке и только тогда применяй изменения:
$(document).ready(function(){
	$('.accordion-list > li > .answer').hide();
	$('.accordion-list > li').click(function() {
		if (event.target.tagName != 'A') {
			if ($(this).hasClass('active')) {
				$(this).removeClass('active').find('.answer').slideUp();
			} else {
				$('.accordion-list > li.active .answer').slideUp();
				$('.accordion-list > li.active').removeClass('active');
				$(this).addClass('active').find('.answer').slideDown();
			}
			return false;
		}
	});
});
Вопрос: Какая ОС, по вашему мнению подойдёт лучше?

Лучший ответ: неверные предрассудки

Выбирать само собой linux, тут даже не обсуждается.

Если у тебя свой специалист по настройке (или ты сам таковым являешься) то ОС нужно выбирать по тому в чем лучше разбираешься.

Если говорить про то, какую именно то выбор должен быть не системы второго уровня поддержки, а первого, на основе чего создаются эти дистрибутивы, т.е. не ubuntu а debian.

Фиксация релизной версии есть во многих ОС, даже у gentoo можно 'стабильную' ветку выбрать (на правах шутки ибо релиз в gentoo это как тестовая ветка в debian или даже новее).

Худший ответ: Oracle Linux
Полностью совместим с RHEL\Centos, бесплатен для использования.
https://linux.oracle.com/switch/centos/
Вопрос: Как отдать часть раздела жёсткого диска другому разделу?

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

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

Но резервная копия - это без исключений. Обязательно.

Худший ответ: Используйте загрузочную флешку с акронис диск директор или парагон партишн менеджер. Могу посоветовать набор для создания диагностического загрузочного носителя от adminpe.ru, там обе утилиты есть в комплекте.
Есть и другие подходящие утилиты.
Вопрос: Что за функция swow?

Лучший ответ: Это чья-то собственная. Вы её и не найдёте. Особенно вместе с общими названиями generate и foo.
Шерстите свой исходник. А если он не полный — вы сами себе злобный буратино.

Худший ответ: Где стырил код - там же и ищи. Это может быть все, что угодно.
Вопрос: Как привести к числу строку в mysql?

Лучший ответ: У художника Франсиско Гойи есть известная картина, "Сон разума рождает чудовищ".
Вот этот запрос как раз и есть такое чудовище.

Он тем смешнее, что БД как раз и приводит строку  3, 5, 7 к числу. Получая в результате единственно возможный результат - 3.

Надо не маяться дурью с group_concat, а просто сделать отдельный запрос к таблице авторов. И перебрав в цикле записи первой таблицы добавить к каждой подмассив с авторами.

Либо сделать нормальный джойн и сгруппировать в вызывающем скрипте

Худший ответ: Можно ли как-то конвертировать строку с числами перечислением через запятую?
Можно. Но вот получить набор критериев для применения в WHERE IN - нельзя.

В принципе задача в нынешнем виде (если не делать как нужно, что описано в ответе FanatPHP) имеет минимум пару решений. 

Можно изменить сепаратор на просто запятую, без пробела, и использовать FIND_IN_SET(). Но надо понимать, что при этом будет выполняться строковый неиндексированный поиск подстроки - то есть гарантированно медленно.

Можно добавить скобки, превратив строковый список в JSON-массив, и распарсить его на отдельные элементы функцией JSON_TABLE(). Но и этот метод быстродействием не отличится.

Так что срочно забывайте эту дурь с GROUP_CONCAT() и используйте нормальный JOIN.
Вопрос: Какие существуют протоколы удаленного рабочего стола?

Лучший ответ: еще есть протокол  NX , на нем сделан x2go https://wiki.x2go.org/doku.php
и протоколы использующие кодеки видео такие как blog.x-row.net/?p=2455 и https://aspia.org/doku.php?id=ru:start

и полно другие
https://github.com/AllaKore-Remote/AllaKore_Remote
https://rvisit.net/index.html?lang=eng

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

Лучший ответ: document.querySelectorAll() возвращает объект NodeList. Даже, если ни одного элемента не нашлось, вернётся объект, у которого свойство length === 0
Проверяйте вместо if (slider), который всегда будет true,
свойство length: if(slider.length) {

Худший ответ: Функция сама по себе точно не вызывается: вероятно файл, с скриптом подключён и перевызывается на всех страницах проекта. 

Если найти место не получается, можно изменить условие вызова deleteDots на

slider && dotsSlider
Вопрос: Как сделать изменение background position на определённое количество пикселей через каждые 10 пикселей прокрутки?

Лучший ответ: Вот, может Вам подойдетsnippet

Худший ответ: Если лень разбираться, то там реализовано всё с помощью этого плагина - https://scrollmagic.io/
Пример: https://scrollmagic.io/examples/expert/image_seque...
Вопрос: Как обработать данные в горутинах пакетами?

Лучший ответ: Есть паттерн Worker Pool, пример можете посмотреть здесь: https://gobyexample.com/worker-pools

Худший ответ: 10k это не много,  можете рассмотреть простой пакет для этого https://github.com/alitto/pond
Вопрос: Как сделать защиту от подмены msi файла установщика GPO?

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

Худший ответ: Alexey Dmitriev или сам файл поставить в "только чтение"
Вопрос: Как удалить все элементы после селектора?

Лучший ответ: const container = document.querySelector('#questions');
const items = [...container.children];
const index = items.findIndex(n => n.id === 'point');
items.slice(index + 1).forEach(n => container.removeChild(n));
или

for (
  const item = document.querySelector('#point');
  item.nextElementSibling;
  item.nextElementSibling.remove()
) ;
или

document.querySelectorAll('#point ~ *').forEach(n => n.remove());

Худший ответ: // получаем все блоки внутри блока questions
let elements = document.getElementById('questions').querySelectorAll('div');

// удаляем блок, если значение этой переменной истинное
let deleteElement = false;

// крутим цикл по этим блокам
for (var i = 0; i < elements.length; i++) {
  
  if(deleteElement) {
    elements[i].remove();
  }
  
 // если цикл достиг блоку с id point, тогда следующим шагом нужно удалить блок
  if(elements[i].id === 'point'){
   deleteElement = true;
  }
}

Работающий пример
Вопрос: Как создать свой хостинг игровых серверов?

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

Если же речь идет о том чтобы "попробовать" - то задача разбивается на этапы:
1. Разобраться как делать то что ты хочешь вручную (как запускать, останавливать, конфигурировать серверы и т.д.)
2. Автоматизировать это на любом языке программирования
3. Сделать веб-морду для управления серверами (опять же на любом языке программирования с использованием любого из множества фреймворков), опираясь на автоматизацию сделанную в п.2.
4. Развивать эту систему, добавляя в нее новые функции (учет времени, тарификация и т.д.)

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

Лучший ответ: Говорят, раньше была фишка для проверки, но её убрали. 

Как вариант: завести ещё один канал для тестов и в него загружать проверочное видео с музыкой под вопросом – после загрузки YouTube проверит его своим Content Id.  Если что, репутация основного канала не пострадает.

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

Лучший ответ: https://www.google.com/search?q=семантическая+верстка

Худший ответ: https://developer.mozilla.org/ru/docs/Web/HTML/Ele...

Элемент <div> следует использовать только в том случае, если никакой другой семантический элемент (такой как <article> или <nav>) не подходит.

Тоже самое касается и footer, лучше использовать его для сохранения семантики, вместо div.
Вопрос: SSL Сертификат мог слететь с домена?

Лучший ответ: Английским по белому - сертификат отозван. Почему отозван - а хрен его знает. Судя по всему покупали - вот и обращайтесь к продавцу (если брали напрямую у GlobalSign - к нему, если через перепродавана - дрюкайте его)

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