Задать вопрос
  • Можно ли обучить бота повторять действия в игре?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если речь идет о computer vision - то да. Скорее всего можно. Но мне жаль ваш талант. Если вы действительно создатите такого бота который обучается по картинке то вас можно нанимать на работу и платить столько денег что дешевая прокачка Эльфа в какой нибудь MMORGPG вам станет просто не нужна. Сможете купить все.
    Ответ написан
    Комментировать
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    ValdikSS
    @ValdikSS
    Попробуйте kcptun, он создан как раз для таких ситуаций.
    Ответ написан
    Комментировать
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что нельзя решать проблемы TCP находясь выше уровня TCP.

    Сами потери пакетов этот протокол решает повторной пересылкой (TCP Retransmission).
    Тоесть технически это уже решено в самом протоколе. Разумеется не безплатно и ценой
    потери времени. Когда у вас примерно 50% теряется - это ситуация "очень плохо".

    Так работать нельзя и нужно решать эту проблему именно в том месте где она возникает. Если
    это физический уровень то надо менять кабели (антены) или если это работа шейперов и firewalls
    то решать это соотв там.

    По поводу удвоения трафика и избыточности. Можно использовать различные коды Хемминга и РидаСоломона
    но они требуют буфера. Причем если единица потери у вас это TCP-пакет то для удачного восстановления
    надо хотя-бы передать 1000 пакетов оснащённых кодами восстановления (и при этом гарантировать
    что ретрансмиссий не будет ибо они не нужны) и на выходе где-то (интересно где?) их всех собрать
    в один массив и быстринько проверить что инфы для восстановления уже достаточно чтоб пролечить
    потерянный пакет. Как это сделать - ума не приложу. Но это полюбому будет на уровне IP/UDP
    и это совершенно новый протокол. Крайне ресурсоёмкий по памяти и с длинным лагом по TTFB.

    Вобщем схема очень напоминает скачивание большого торрент-файла по UDP в условиях рандомного порядка
    следования чанков этого самого файла. Кому такая схема нужна? Это нединамично и неотзывчиво. Никаких онлайн
    игр и стриминга тут нельзя построить.
    Ответ написан
    2 комментария
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    @nApoBo3
    1. Вы не совсем понимаете, что такое потеря 50% пакетов. В вашем гипотетическом сценарии, это потеря каждого второго пакета, но в реальной жизни это не так.
    Удвоением кол-ва пакетов вы проблему усугубите.
    2. И да, эту проблему можно для части протоколов решить программно, но не уверен, что такие решения есть в готовом виде. Вам потребуется реализовать собственный аналог tcp для ситуации с большой потерей пакетов, работающий поверх udp или более низких протоколов, плюс промежуточный прокси.
    Возможно подобные решения есть, я про подобные вещи когда-то читал для нефтяники на спутниковых каналах, там были свои протоколы, для ускорения передачи данных, поскольку tcp плохо подходит для каналов с большими задержками.
    Ответ написан
    2 комментария
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    hint000
    @hint000
    у админа три руки
    Попробую уточнить вопрос, как я его понял.
    В UDP тупо перепосылать пакеты нельзя.
    Про UDP согласен, забудем про него.
    В TCP пакеты и так перепосылаются при недоставке.
    Есть ли тонкие настройки (для ядра Linux и т.п.) параметров TCP, такие, чтобы минимизировать задержки при повторной отправке пакетов, ценой большей утилизации пропускной способности, когда заведомо известно о больших потерях?

    Исходя из уточненной формулировки гуглим: https://www.google.com/search?q=high+tcp+packet+lo...
    Попадаем сюда: xgu.ru/wiki/TCP_tuning
    Потом сюда: https://www.linux.org.ru/forum/talks/10310095
    И сюда: https://habr.com/ru/post/168407/
    И, наконец, попытаемся призвать в топик самого ValdikSS , может быть с момента публикации статьи появилось что-то новое по этой теме.

    Собственно,
    sysctl -w net.ipv4.tcp_congestion_control=westwood
    Ответ написан
    Комментировать
  • Как программно решить проблему потери пакетов или хотя бы сгладить её?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В TCP пакеты и так перепосылаются при недоставке.
    В UDP тупо перепосылать пакеты нельзя. Поскольку сам UDP не предусматривает контроль за доставкой, то два одинаковых пришедших UDP-пакета могут быть поняты как два независимых запроса/команды.
    Ответ написан
    3 комментария
  • Можно ли начать разрабатывать игры в Unity, зная основы c#?

    @oleg_ods
    Смотря что Вы подразумеваете под фразой «знаю основы».

    Можете устроить себе тест. Возьмите 200 последних вопросов с тэгом Unity с этого ресурса и попробуйте сами на них ответить(большинство проблем в них как раз таки связано с незнанием основ языка). Если нашли ответ на 80% то смело беритесь за Unity, если меньше то у Вас будет список тем по которым Вам нужно подтянуть знания.
    Ответ написан
    3 комментария
  • Как сделать так, чтобы для программы отображалась другая версия винды?

    xez
    @xez
    TL Junior Roo
    Попробуйте через настройки совместимости: https://support.microsoft.com/ru-ru/windows/%D0%BD...
    Ответ написан
    Комментировать
  • Как ограничить копирование данных из сетевых папок, локального ПК, на флешки и внешние ресурсы?

    @TheBigBear
    СтарОдмины мы
    Много лет пользовали Стахановца
    В нем можно запретить запись на внешние носители, отслеживает все копирования-удаления - даже к себе их копирует перед удалением. Можно запретить прикрепление файлов в вэб почте. Отлична развита система отслеживания подозрительных действий, слова "ловушки".
    Правда (не знаю как в новых версиях) в нашей плохо работал "клавиатурный почерк" и распознавание речи
    Два раза ловили инсайдеров конкурентов, раз сотрудницу, сливающую данные в налоговую.
    Раз помог найти украденный ноутбук
    Сколько раз наказывали за безделье на работе - не счесть (соцсети, ютуб)
    4 года назад в компании сменился владелец.
    Приказал убрать стахановца, поменял мелкое руководство, изменил отношения в коллективе.
    Запретил штрафы - если сотрудник сделал текущую на сегодня работу - пусть делает что хочет.
    Мы вспомнили что такое "премия" за хорошую работу.
    Раз собрал сотрудников и сообщил кто конкретно в коллективе на нас "стучит" и предложил вне конфликты разбирать публично
    Вот не поверите, но на работу ходим с удовольствием
    Ответ написан
    1 комментарий
  • Как разбить textarea на массив?

    mizutsune
    @mizutsune
    I will live forever in the flame of your eyes.
    1. Получаем содержимое textarea.
    2. Используя метод split разбиваем полученное значение на отдельные слова или предложения по разделителю (перенос строки/точка с запятой/запятая/точка/пробел/etc).
    4. Profit.

    Окончательный результат зависит от того => массив каких значений вам нужно получить и в связи с этим, нужно составлять определенные функции, которые будут решать поставленные задачи, при этом нужно учитывать достаточно множество моментов, при которых что-то может пойти не так.

    Несколько примеров

    Пример - №1:

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

    let value = '   Illusion is the first of all pleasures.   ';
    
    value.split(" ").filter(n => n !== "");


    1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя пробел.
    2. На втором этапе удаляются пустые значения из массива.

    Результат:

    ['Illusion', 'is', 'the', 'first', 'of', 'all', 'pleasures.']


    Пример - №2:

    Задача: Получить массив слов без специальных символов и прочего.

    let value = `       Lorem ipsum dolor sit amet, consectetur adipiscing elit, 
    sed do eiusmod, tempor et dolore magna aliqua.
    Amet facilisis magna!!! 
    Ornare quam viverra volutpat odio facilisis mauris.    `;
    
    value.split(" ").map(n => n.replace(/[\r\n.,!]/g, '')).filter(n => n !== "");


    1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя пробел.
    2. На втором этапе удаляем из каждого "слова" точки, запятые и восклицательный знак.

    Результат:

    ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing",
    "elit", "sed", "do", "eiusmod", "tempor", "et", "dolore",
    "magna", "aliquaAmet", "facilisis", "magna", "Ornare", "quam",
    "viverra", "volutpat", "odio", "facilisis", "mauris"]


    Пример - №3:

    Задача: Получить массив предложений из текста.

    let value = " Lorem ipsum. Dolor sit amet. Consectetur adipiscing elit.      ";
    
    value.split(".").map(n => n.trim()).filter(n => n!== "").map(n => `${n}.`):


    1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя символ точки, так как точка символизирует окончание предложения в тексте. По крайней мере, в большинстве случаев.
    2. На втором этапе обрезаем пробелы вначале и в конце каждого элемента массива.
    3. На третьем этапе избавляемся от пустых значений.
    4. На четвёртом этапе расставляем точки на концах строк, чтобы превратить их в предложения.

    Результат:

    ['Lorem ipsum.', 'Dolor sit amet.', 'Consectetur adipiscing elit.']


    Пример - №4:

    Задача: Разделить строку на части и записать их в массив, используя несколько разных разделителей.

    let value = "Lorem ipsum, tempor magna aliqua. Dolor sit amet? Consectetur! Adipiscing elit.";
    
    value.split(/[,.?!]/).map(n => n.trim()).filter(n => n!== "");


    1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя группу символов.
    2. На втором этапе обрезаем пробелы вначале и в конце каждого элемента массива.
    3. На третьем этапе избавляемся от пустых значений.

    Результат:

    ['Lorem ipsum', 'tempor et dolore magna aliqua', 'Dolor sit amet', 'Consectetur', 'Adipiscing elit']




    Вариантов разделения строки на массив может быть огромное множество.
    Ответ написан
    Комментировать
  • Какая из профессий в сфере IT предполагает и программирование и работу непосредственно с оборудованием/с железом?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Эникей в любой конторе. Тут вам и написание скриптов для облегчения и своей жизни, и бухгалтерии, и работа "в поле" по прокладке сетей и замене картриджей.
    Ответ написан
    1 комментарий
  • Как избавиться от слежки СМС?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Ну, начать надо с бессмертной фразы "какие ваши доказательства?" Ну то есть, пусть продемонстрирует, что кто-то может что-то читать, а не просто блаблакать.
    Разумеется, такие возможности есть, причем вполне себе легитимные. Например "МТС.Поиск" - сервис такой. В базовой версии отслеживает передвижение по городу, при установке агента на телефон - позволяет полностью удалено управлять им (в том числе прослушивать окружение через микрофон телефона). Для подключения к сервису достаточно бросить незаблокированный телефон - придет смс с запросом на согласие, ответить да - и вуаля :)
    Как проверить? Посмотреть, нет ли на телефоне агента. Если агента вроде нет, а доступ есть - сделать полный сброс телефона. Если не было рута, этого будет достаточно. Если рут был - лучше его перешить.
    Ответ написан
    4 комментария
  • Как найти 3 одинаковых числа, идущих подряд в массиве js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    для первой версии решения учебного задания можно и «на пальцах»:
    сравнивать с двумя предыдущими
    const has3 = arr => {
      for (let i = 2; i < arr.length; i++) {
        if (arr[i] === arr[i - 1] && arr[i] === arr[i - 2]) {
          return true;
        }
      }
      return false;
    }
    
    has3([1,2,3,3,4,5,5,5,6]) // true
    has3([1,2,3,3,4,5,5,6,6]) // false


    Подумайте, как можно сделать решение более универсальным, чтобы задавать параметром необходимое число идущих подряд, которое ищем.
    Ответ написан
    9 комментариев
  • Как правильнее сравнить на практике языки программирования, чтобы понять, какой изучать?

    Griboks
    @Griboks Куратор тега C#
    Изучать нужно С#.

    Если в какой - то момент вы почувствуете, что упускаете какие-нибудь фишки, то вы сможете их загуглить и убедиться, что это не так.
    Ответ написан
    4 комментария
  • Какие есть способы скрытого(от запущенных программ) чтения содержимого оперативной памяти в Windows 10?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    https://docs.microsoft.com/en-us/windows/win32/api...
    Единственное условие - наличии у приложения соответствующих прав для чтения памяти другого процесса.
    Ответ написан
    6 комментариев
  • На какой стадии изучения ЯП стоит искать ментора?

    Adamos
    @Adamos
    уверен в этой сфере тоже полно халявщиков

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

    toxa82
    @toxa82
    Из офф мануала:
    session_destroy() уничтожает все данные, связанные с текущей сессией. Данная функция не удаляет какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie. Чтобы вновь использовать переменные сессии, следует вызвать session_start().

    Замечание: Нет необходимости вызывать session_destroy() в обычном коде. Очищайте массив $_SESSION вместо удаления данных сессии.
    Ответ написан
    1 комментарий
  • Как можно в PHP-скрипте получить на 100% достоверную информацию об IP веб-клиента?

    toxa82
    @toxa82
    Ты достоверно только можешь знать IP с которого пришел запрос на сервак, это переменная $_SERVER['REMOTE_ADDR']. А кто стоит за этим IP дальше не известно, впн, прокси, один из серваков в провайдере или реальный юзер, никак ты не узнаешь. Есть некоторые впн/прокси сервисы которые присылают доп IP в заголовках (типа REAL_USER_IP), но надеяться на них не стоит, не все их шлют, и их можно самому прислать и прописать там что угодно.
    Ответ написан
    Комментировать
  • Почему в данном коде необходимо нижнее подчёркивание?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Подчёркивание в JS - допустимое имя переменной. Вы можете заменить его на любое другое неиспользуемое имя.
    Автор кода, скорее всего, хотел показать, что деструктурируемое значение в дальнейшем не используется.
    Ответ написан
    Комментировать
  • Можно ли считать тег SQL бесполезным?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нельзя. Если вопрос в рамках стандарта SQL и не затрагивает специфику конкретной СУБД, то куда его пихать?
    Ответ написан
    4 комментария