Задать вопрос
  • Как использовать транспортную сеть оптимально?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Не могу сказать, насколько это решение будет оптимальным по времени, не зная предполагаемого размера графа. Но есть решение через максимальный поток, котрое точно наилучшим способом пустит машины.

    Раздуйте граф, сделав копии каждой вершины для каждого возможного времени. Т.е.если предполагается, что есть решение не длинее 1000 едениц веремни, то создаете граф с 1000*V вершинами, по одной для каждой вершины начального графа и возможного времени. Для каждого ребра входного графа u->v создайте ребро {u,t}->{u,t+1}. В этом графе есть много входных вершин (любое время, начальная вершина) и много конечных вершин (любое время). Но тут уже нет условия на непересечение машин в одно и то же время. Вместо этого пути машинок просто не могут пересекаться по вершинам вообще. Ведь каждая вершина символизирует вершину+время.

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

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

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

    Что бы найти оптимальный пути запустите бинарный поиск по ответу. Вот выбрали вы число 1000, создали искуственный граф со временем до 1000 для всех вершин. Запустили в нем максимальный поток. Если он нашел меньше n путей, то за 1000 едениц времени все n машин не пустить, пробуйте большее время. Если нашли хотя бы n путей, то можно взять любые n из них.

    Изначальную верхнюю границу по времени можно взять n+V (V - путь в графе, и все машины идут по нему колонной одна за другой).

    Возможно есть улучшение этого решения такое: Вместо бинарного поиска по ответу вы увеличиваете максимальное время на 1, добавляете новые вершины и ребра в граф и каждый раз ищете дополняющие пути (не отчищая уже найденый максимальный поток). Это рещение вроде будет побыстрее, но тут надо аккуратно понимать, что такое остаточная сеть.
    Ответ написан
    1 комментарий
  • Как запретить входить на сервер с дополнительного ip?

    @Karpion
    А зачем вообще нужен адрес, на который нельзя обращаться?
    Ответ написан
    Комментировать
  • Что такое persistent data?

    @vitaly_il1
    DevOps Consulting
    Что такое persistent data?

    Это данные которые должны сохраниться после "смерти" контейнера.
    В отличие от "старого" мира серверов, которые настраивали, записывали данные и использовали годы, в контейнерах принято поднимать новый контейнер при деплое новой версии программы и других случаях. В общем, не полагаться на то, что запущенный контейнер будет работать через неделю. Соответственно, возникает вопрос - где хранить базы данных и прочие изменяемые данные.
    Ответ написан
    1 комментарий
  • Какие рекомендуемые системные требования для WSUS?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Возможный вариант: ваш SQL сервер (называется, вроде "ядро баз данных"), подставляемый вместе с WSUS, упёрся в ограничения его редакции. Посмотрите на размеры его файлов, при необходимости, сделайте очистку (WSUS) и сжатие (SQL).
    А лучше замените его на отдельно устанавливаемый MS SQL — так у вас появится возможность управлять им через GUI (SSMS).
    Ответ написан
    2 комментария
  • Как правильно настроить CISCO маргрутизатор?

    @gosha-z
    Так а хочется L2 или L3 объединение. Мой опыт говорит о том, что понятие "бридж" в микротике приводит к фатальному вывиху мозга у любого здравомыслящего сетевика.
    Ответ написан
    Комментировать
  • На сколько безопасно вводить данные своей карты в приложениях такси и т.п.?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Дома с переломом ноги
    разраб которые запрашивает эти данные просто не делает INSERT INTO

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

    Да, это несколько неудобно. Зато сразу снимает все вопросы типа а что будет, если кто-то узнает реквизиты моей карты? Ну узнает. Ну лежит там 50 руб :) Бешеные деньги :)
    Ответ написан
    Комментировать
  • Как админу не грубить пользователям?

    @pcdesign
    Ну и советы. Посылать на три буквы и т.д. Ужас.
    А теперь совет от сис. админа яндекса, вот сам видос:
    https://video.yandex.ru/users/ya-events/view/410/?...
    Фраза звучала примерно так «К вам будут подходить разные люди, разных уровней знаний и вам придется с ними общаться. Поэтому просто для начала любите людей».

    Надо работать над собой, чтобы сохранять самообладание при любых ситуациях и не раздражаться при пустяках.
    И да, если бы это была бы не "начальница логистики", а девушка, которая небезразлична, то и отношение было бы другое. Так что проблема внутри, а не вовне.
    Ответ написан
    Комментировать
  • Почему непопулярное мнение на хабре приводит к статусу тролль?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    За подачу этого мнения. А также за аргументацию.

    Можем проанализировать, что здесь не так, раз уж вы пришли на Q&A Тостер. Вот ваше "мнение":
    spoiler
    Давайте разберёмся. Вроде бы наше программное обеспечение продано америкосам в нарушение всех интересов по безопасности платформы. Не надо мне про святых рассказывать. Это как Касперского продать за бугор! И свято верить что за нас там заступятся. Человек поднял деньги. Причём все свято верят что рамблер ему платил зп за то чтоб он планки памяти менял в серверах, а софт он за своё бабло пилил! И начался срач ущемлённых. А чем вас ущемлю то? Бабла у вас как не было так до сих пор и нет. На Россию матушку вы болт класть хотели. Только и умеете стадно усираться в угоду орекстраторам. Которые сообщают что бедный несчастный миллионер в опасности и надо лечь за него на дот! Вам ли не пофигу должно быть? Вас поимели в этой истории и даже медного гроша в кошельке не стало звенеть. Не многовато ли святости?


    Сначала по пунктам.

    Вроде бы наше программное обеспечение продано америкосам в нарушение всех интересов по безопасности платформы.
    С первых слов не понятно, о чем вы пишете.
    Наше программное обеспечение продано америкосам.
    При чём здесь это вообще? Слово "америкосам" подчеркивает, что вы пренебрежительно относитесь к США. То есть для вас есть "мы" и "они". Таким образом, вы по сути разжигаете межнациональную и социальную рознь. И показываете, что вы сторонник такой позиции.
    За это минус.
    Хотя при чем тут США вообще? Тема про что? Возможно, вы что-то знаете, чего не знают окружающие. Но вы это не объяснили, не донесли. То есть ваша мысль не понятна. Лично я не улавливаю связи вашего тезиса и статьи на Хабре. И лично я считаю, что формулировать нужно стараться так, чтобы даже в вырванном из контекста комментарии можно было разобраться. А здесь даже с контекстом не получается.
    За это еще один минус.

    Не надо мне про святых рассказывать.
    Здесь вы опускаетесь до простой деревенской речи, показывая, что вы всё знаете, а вокруг все - дураки. И лишь тот, кто с вами будет согласен здесь, достоин дальнейшего диалога.
    За это еще один минус.
    Дело в том, что по-настоящему достойные люди уважают друг друга.

    Человек поднял деньги.
    Здесь вы намекаете, что "поднимать деньги" - это плохо. Хотя на самом деле это не плохо и не хорошо. Это снова не имеет отношения к правомерности тех или иных действий, о которых идет речь в статье и комментариях к ней. Таким образом, логика нарушена.
    За это еще один минус.

    Причём все свято верят что рамблер ему платил зп за то чтоб он планки памяти менял в серверах, а софт он за своё бабло пилил!
    Здесь вы по сути неявно называете всех "дураками", ведь они воспринимают на веру то, что вы с высоты своего ума сразу раскусили. Однако вы не объясняете, в чем же глупость заключается, почему все заблуждаются, в чем ошибка. А главное, каким образом вы пришли к обратному выводу. Уж не потому ли, что фигурируют деньги, которые автоматически делают плохим того, кто смог их заработать?
    За это еще один минус.

    Всех читателей своего комментария вы стрижёте под одну гребёнку. То есть "дураки" даже не некоторые, а буквально все. Читатель автоматически воспринимает это на свой счёт. Кому это понравится?
    За это еще один минус.

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

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

    И начался срач ущемлённых.
    Здесь вы в продолжение предыдущей темы только что назвали читателя "ущемлённым". На этом месте только 100% равнодушный к любым словам не воспримет это на свой счёт. То есть вы просто оскорбляете окружающих.
    За это еще один минус.

    А чем вас ущемлю то? Бабла у вас как не было так до сих пор и нет.
    Здесь вы продолжаете унижать окружающих, называя их еще и нищими.
    За это еще один минус.

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

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

    Которые сообщают что бедный несчастный миллионер в опасности и надо лечь за него на дот! Вам ли не пофигу должно быть? Вас поимели в этой истории и даже медного гроша в кошельке не стало звенеть. Не многовато ли святости?
    Дальше уже скучно. Снова тема денег по формуле "богатый = плохо". Снова декларируете аксиому, что все вокруг должны быть равнодушными, хотя это абсурд. Снова оскорбляете и унижаете окружающих, говоря в вульгарном тоне. И в конце, как бы недоумевая, что вокруг происходит, задаете риторический вопрос. Надеюсь, он и правда риторический, и вы не ждете на него ответ, иначе еще пять минусов сразу.

    А теперь в целом по вашему комментарию, обобщая и резюмируя.

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

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

    Для примера обратите внимание на этот мой ответ. Некоторые коллеги из соседних ответов, да и просто мимо проходящие, возможно, покрутят и виска и подумают: "Зачем он столько времени тратит на этого чудака? Его ответ уже на статью тянет. И не жалко же ему сил". Однако я с самого начала оценил, что ответ будет большой, прикинул, зачем мне это нужно, есть ли у меня на это время и... мысленно подписался под этим. Меня всё устраивает, потому что я поставил перед собой цель и иду к ней. Собственно, уже пришел, и готов к каким-нибудь последствиям или отсутствию оных. Другой человек, который не ставит себе такую же цель, проходит мимо - и это тоже логично, всё сходится. А вот если делать что-то, не имея представлений, к чему это приведёт, вот это уже странно.

    Вот такая математика. Надеюсь, ответил на вопрос.
    Ответ написан
    21 комментарий
  • Почему htop и gnome-system-monitor по разному выводят количество ОЗУ?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    посмотрите вывод команды:
    free -hw

    htop
    used(htop) = used(free) + shared(free)

    gnome-system-monitor
    used(gnome-system-monitor) = used(free) + shared(free) + buffers(free)
    Ответ написан
    Комментировать
  • Можно ли выкладывать на вики сканы карт из настольной игры или хотя бы текст с карт?

    @Mercury13
    Программист на «си с крестами» и не только
    Это находится в «серой зоне» и зависит от «борзости» издателя. По авторским правам это чистое «добросовестное пользование несвободного контента», которое определяется исключительно судом (нет чётких критериев), и если издателю захочется закрыть — закроет. Пара советов.
    1. Ставьте такое качество, чтобы текст едва читался.
    2. Использование каждой несвободной картинки должно быть обосновано.
    Ответ написан
    Комментировать
  • Как обосновать необходимость серверной?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    По порядку
    серверная - это закуточек 1х2м. Все практически впритык. Пыль гуляет.

    Вполне нормальная ситуация для небольшой фирмы.
    1) Уберитесь, облагородьте место, подвяжите провода и хвосты.
    2) Мониторьте температуру (и влажность). Если температура поднимается, выше 80-100С на процессоре - бейте тревогу и выключайте все нафиг ради сохранения данных. Данные по температурным режимам зависят от типа оборудования, смотрите спецификации. Температуру в помещении можно снимать с UPS.
    3) Автоматизируйте отключение серверов по превышению температуры
    Стоит 2 сервера, вскоре поставлю 3-й. маршрутизатор, пару коммутиров стоичных, видеорегистратор. Обслуживать невозможно.

    4) Поставьте открытую стойку. В закрытой стойке температура поползет вверх! Ну и пункт 1 и 2.
    Как бы летом не полыхнуло.

    5) Еще раз про пункты 1 и 2.
    В компании компов под 40. Идет производство. Долгий сбой недопустим.

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

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

    Да, не забываем, что хорошо бы посчитать электрическую нагрузку! Если питание от обыкновенной "офисной" розетки, (которые могут быть и на 10А, а могут быть и на 16А и выше), то как минимум нужно правильно подвести питание - по нагрузкам смотрим спецификации оборудования и добавляем 50%. И полыхает обычно из-за перегрузок по питанию, на неисправном автомате, в розетке и проводке! Сами серверы горят очень тихо, они просто выключаются....
    Вот, решил дополнить. Оптимальная температура (а есть еще и влажность) от 10 до 28C, при влажности 40-60% без выпадения росы. Точку росы сами считайте, вот ссылка на температуру https://www.openxtra.co.uk/kb/recommended-server-r...
    Ответ написан
    Комментировать
  • За счет чего зарядные устройств для ноутбуков имеют такие маленькие размеры?

    Причин несколько.
    Во-первых, сами ноутбуки в среднем стали менее прожорливы, меньше греются, и им нужна более слабая зарядка.
    Во-вторых, элементы совершенствуются, и применяются в ШИМ всё более высокие частоты. Если ранее были 40-60кГц, то потом стали использовать на 100 и 150кГц, а сейчас и на 500кГц или выше (точно не скажу, какие в новых ставят). А бОльшие частоты позволяют снизить размеры импульсных трансформаторов, и дросселей. Плюс к тому силовые элементы становятся меньше и работают на гораздо более высоких частотах и при этом меньше греются - соответственно, им нужен намного меньше радиатор (а иногда и не нужен). К примеру, типовой N-канальный полевой транзистор (по-модному, MOSFET) в начале 2000х это 10х10х4мм габаритами и на напряжение 30В, максимальный ток 10А (30 в импульсе). Сейчас - это 3х3х0,5мм, и это внутри два транзистора и ШИМ сразу. При тех же 30В входного напряжения, и выходных токах до 10А. Или, 4х4х1мм, один транзистор, 30В, 80А (!), и до 120А в импульсе. Частота при этом выросла в несколько раз.
    В-третьих, стараются везде сэкономить, лишь бы уложиться в гарантию (или даже меньше чтобы отработало, ведь ещё доказать надо, что гарантийный случай, для БП это сложно). Потому ставят меньше ёмкости конденсаторов, упрощают или убирают часть защит, делают тонкий слабый корпус. А для корпуса, что сразу в розетку втыкается, это проще всего - ведь под нагрузкой сломается именно штырь вилки, и никакой гарантией тут не пахнет. А наступать на него не очень получится, в отличие от старых БП, что просто лежали на столе/на полу/висели на проводе.
    При этом цена на старый около 1500р или выше, а на новый что-то около 500р, и чинить его особо никто не станет, разве что проводок подпаять или конденсатор заменить - и производителю выгоднее, т.к. купят новый, а не понесут в ремонт.
    Ответ написан
    Комментировать
  • Интересный вопрос от Я! Как решить проблему неправильных монет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Предположим, что мы бросили n-1 монет и получили какое-то количество единиц (орлов). Бросаем следующую монету (n). Если выпадет ноль (решка), то количество единиц не изменится, и чётность останется той же. Если выпадет единица, то чётность изменится.
    Poddn = Poddn-1*P0n + Pevenn-1*P1n
    Pevenn = Pevenn-1*P0n + Poddn-1*P1n
    Но, поскольку события Pevenn и Poddn образуют полный набор вариантов (либо чёт, либо нечет), то Pevenn + Poddn = 1.
    Аналогично, P0n + P1n = 1.
    Отсюда, Poddn = Poddn-1*(1-P1n) + (1-Poddn-1)*P1n
    var Podd = 0;
    var Peven = 1;
    for (var i = 1; i <= 100; i++) {
      P1 = 1 / (2 * i + 1);
    //  P0 = 1 - P1;
    //  Po = Podd * P0 + Peven * P1;
    //  Peven = Podd * P1 + Peven * P0;
    //  Podd = Po;
    // Всё, что выше, ужимается в
      Podd = Podd * (1 - P1) + (1 - Podd) * P1;
    }
    console.log(Podd);
    // 0.49751243781094556
    Ответ написан
    3 комментария
  • Сколько потребуется действий, чтобы случились все события?

    profesor08
    @profesor08
    Количество попыток примерно между 4 и бесконечностью включительно. Каждая новая попытка лишь приближает тебя к нужному результату.
    Ответ написан
    Комментировать
  • Как перенести ОС дебиан установленную на RAID1 состоящий из двух дисков на новый ПК с новым железом?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Если вы собираете программный рейд (mdadm) - то ему всё равно на железо. Лишь бы ядро увидело сами диски. При том даже порядок дисков не важен. В метаданных рейда сохраняется информация кто есть кто без привязки к именам устройств.

    Если не сделаете mdadm.conf в initramfs - то могут поплыть номера устройств самих /dev/md? и при рядовой перезагрузке. Самоопределится в какой-нибудь /dev/md127 и у вас fstab жалуется на жизнь и отказывается грузиться.
    Ответ написан
    3 комментария
  • Как перенести ОС дебиан установленную на RAID1 состоящий из двух дисков на новый ПК с новым железом?

    paran0id
    @paran0id
    Умный, но ленивый
    RAID же mdraid? Скорее всего, заведётся. Проблем с дисками не должно быть, если они везде прописаны по uuid, а не как /dev/sdX. Потребуется поменять udev rules, чтобы старые имена сетевых интерфейсов матчились с новыми железными сетевухами. Мб ещё что-то по мелочам. Переносил так пару раз системы.
    Ответ написан
    2 комментария
  • DNS на DC добавление зоны xxx.ru c сохранением пересылки не добавленных узлов?

    @Zolg
    Создать зону xxx.ru и отдавать из нее только yy.xxx.ru, а остальное пересылать, идет вразрез с механизмом работы DNS. Сервер либо обслуживает зону, либо не обслуживает и разрешает на внешних (пересылкой, или же полной процедурой lookup).

    Но никто вам не мешает создать на своем сервере зону yy.xxx.ru
    тогда *.yy.xxx.ru и сам yy.xxx.ru будут разрешаться на вашем сервере а остальной xxx.ru - на внешних
    Ответ написан
    1 комментарий
  • Проскакивает контроль прыжка ГГ в сторону, по нажатию двух клавиш. Как переделать управление ГГ?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вариант 1 (тупой)
    Добавить задержку в 200 мс перед тем, как герой начнет двигаться от клавиш вправо-влево. Это делается просто. В момент нажатия запоминаем текущее время с точностью до миллисекунд.
    А условие движения такое: клавиша вправо зажата И время зажатия больше 200 мс

    Вариант 2 (легкий)
    При нажатии клавиши вверх делать прыжок даже в движении. Собственно, это даже более правильно, чем его не делать. То есть если герой идет достаточно долго вправо (несколько секунд), а потом игрок вдруг нажимает вверх, то герой должен не игнорировать нажатие, а сделать прыжок вправо+вверх. Разве не логично? Тогда проблема решится сама собой.

    Вариант 3 (сложный, для комбо)
    Если у вас одновременное нажатие вправо+вверх - это какое-то особое комбо, то можно аналогично первому варианту отслеживать время нажатия вправо и в пределах этой задержки разрешать пользователю совершать данное комбо.
    То есть при нажатии клавиши вправо нужно запомнить текущее время.
    А при нажатии клавиши вверх проверяется условие.
    Условие такое: клавиша вверх нажата И клавиша вправо была нажата менее 200 мс назад

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

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

    Вариант 6 (домашнее задание)
    В случае, если герой в прыжке может менять направление ускорения стрелками, то нужно подойти к геймдизайнеру и спросить, как быть в этому случае. Ведь в конечном итоге всё зависит от его задумки, какие ощущения у игрока он хотел вызвать.
    Ответ написан
    Комментировать