• Где и как хранить дерево(очень больше дерево:))?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Где и как хранить, зависит от того, где и как будет использоваться.
    Например, можно хранить в текстовом файле в формате JSON.
    Ответ написан
    Комментировать
  • Альтернатива Flash Player в указанных ниже случаях?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Интересно, вы хотите поддержки и обновления Flash, а всё остальное не обновляете.
    Определитесь уже, идёте ли вы в ногу со временем или сидите в прошлом веке.

    Если первое, то переходите на альтернативы, новые игры, новые пособия, новая аппаратура и драйвера.

    Если второе, так и пользуйте старый Flash со старыми программами на старой ОС. Он никуда не делся и прекрасно работает, просто не обновляется. "Смерть" лишь означает, что его никто, кроме вас, использовать не будет и ничего нового на его основе создаваться тоже не будет.
    Ответ написан
    Комментировать
  • Как правильно прописать несколько событий onclick?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала, лучше использовать addEventListener().

    Ну а так, смотрите, здесь:
    id1.onclick = Place('Вода');
    вы присваиваете в onclick результат функции Place().
    Так как функция ничего не возвращает (а только производит действия), то получается так:
    Place('Вода');
    id1.onclick = undefined;

    Чтобы функция стала обработчиком, нужно присвоить её саму, а не результат её вызова:
    id1.onclick = Place;
    Но так, конечно, тоже работать не будет. Теперь нужно прочувствовать этот момент, разобраться до полного понимания, чтобы двигаться дальше.
    Ответ написан
    Комментировать
  • По каким параметрам даётся красная табличка в Steam(IP, железо)?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Главный параметр - желание нарушать правила Steam.
    А также, собственно, несоблюдение этих правил.

    Далее работают алгоритмы + ручная проверка. Подробности проверки и работы алгоритмов не разглашаются, чтобы всяким хакерам и читерам было меньше возможности обходить защиту.

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

    На случай, если красная табличка была получена случайно, в ней самой содержится краткая информация, почему это могло произойти и что делать. Дальше нужно просто вспомнить свои/чужие действия на аккаунте, и догадаться до причины. В теории можно попытаться обжаловать наказание. Но если правила были действительно нарушены, даже чисто случайно, Valve не обязана удовлетворять жалобу. Незнание правил или неосторожность при их соблюдении не освобождает от ответственности. Компания прекрасно осведомлена, что хакеры и читеры будут пытаться вешать лапшу на уши и давить в том числе и на суппорт, так что любым словам пользователя - по умолчанию ноль доверия.
    Ответ написан
    Комментировать
  • Как равномерно распределить массивы между пользователями?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Как-то так:
    spoiler
    //v1.0
    function arr_num($user_id) {
      static $N = 10;
      return $user_id % $N;
    }

    Когда количество списков снова возрастёт, чтобы назначенные не менялись:
    spoiler
    (при условии, что user_id задан через auto_increment)
    //v2.0
    function arr_num($user_id) {
      static $N = 100;
      if ($user_id < 556780960) { //old algorithm v1.0
        return $user_id % 10;
      }
      return $user_id % $N;
    }
    Хотя будет не совсем равномерно в целом, но дальше уже начинается больше математика, чем программирование.
    Ответ написан
    Комментировать
  • Какой хостер не блокирует сайты по списку Роскомнадзора?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Так ведь хостер может реагировать на жалобы не только РКН, а кого угодно. Например, на жалобы правообладателя размещенного вами контента.

    Гуглите по фразе "абузоустойчивый хостинг" (от слова abuse).
    Ответ написан
  • Как запретить ввод значения в javascript больше чем n число?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В момент ввода (то есть сразу после ввода) проверять: если два инпута, то лимит 50, иначе 100.

    Момент ввода, как вам уже объяснили в комментах к вопросу, можно поймать событием. А дальше к этому моменту можно прикрутить любую логику.
    Ответ написан
    Комментировать
  • JavaScript: как складывать вещественные числа без погрешности?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно хранить вещественные числа, как целые.
    И лишь при выводе их на экран, в файл и т.д. - переводить в вещественные.

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это оптимизация. Незачем рисовать то, что никто не увидит.

    Установите виртуальный драйвер монитора (видеокарты). Ноут будет думать, что подключён внешний монитор, то есть будет обязан показывать правильную картинку.
    Ответ написан
    1 комментарий
  • Как оптимизировать пинг в мультилпеере?

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

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

    А если это шутер, то "блокировать" игру - не вариант, игроку необходимо оставить возможность двигаться своим персонажем и совершать действия, а серверу - задним числом засчитывать какие-то действия или отменять слишком смелые/резкие действия (откатывать к более "честному" состоянию). Ещё можно идти на компромиссы всякие, когда у разных игроков отображается чуточку разное состояние, но плюс-минус по сути одно и то же (по смыслу), а 1 шаг влево-вправо не считается.

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

    В общем, так или иначе это какие-то уступки, допущения, округления, предположения (предсказания траектории движения объекта), ограничения и т.д.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Таков провайдер.

    А по локальному ip подключается?
    А просто пингануть друг друга получается?
    Ответ написан
  • Как перезатереть объект в массиве по айди?

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

    Для существующего массива arrData делается примерно так:
    var obj_by_id = {} //хеш-таблица
    arrData.forEach( (obj, index) => {
      obj_by_id[obj.id] = obj;
      obj.index = index;
    });

    Это немного не честно, но в этом примере индекс я сохраняю в самом объекте.

    Далее получить ссылку на объект с id 111 можно будет так:
    let o = obj_by_id[111];
    o.name = "Kate";


    Если нужно заменить, то как-то так:
    arrData[obj_by_id[111].index] = { ...... } //новый объект


    Естественно, что при такой схеме нужно обновлять obj_by_id при каждом изменении arrData. Это такие операции, как добавление, удаление, всякие там смещения индексов и пр. Да вы и сами это понимаете, надеюсь.

    Большой плюс такого подхода в том, что не нужно перебирать весь массив каждый раз (если исходить из предположения, что он может быть очень большим). А это минимизирует нагрузку на процессор.
    Ответ написан
    Комментировать
  • Надёжный SSD и HDD диск?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вам нужен такой показатель, как процент брака. То есть процент возвратов (по гарантии) или процент обращений в ремонт. Этот показатель состоит из двух обязательных частей: в числителе - количество плохих дисков, в знаменателе - количество всех дисков (выпущенных/проданных). Есть нюансы по поводу того, что именно ломается в диске (например, прошивка - отдельный разговор). Плюс ещё можно рассматривать среднее время жизни... В общем, если есть статистика и если углубиться в неё, то можно интересные графики нарисовать и сравнивать уже их, а не плоские цифры.

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

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

    Бывает такое, что конкретная серия или партия содержит много брака. Это видно только статистически. Производитель наверняка знает (постфактум), но ему не выгодно это афишировать, а выгоднее по-тихому улучшать качество без лишней шумихи в случае косяков, ну или просто нагло скрывать.
    Ответ написан
    Комментировать
  • Как заменить цифры в номерах телефонов в notepad ++?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если телефон в начале строки, то:
    Найти: ^(\s*)8(\s)
    Заменить на: \17\2
    spoiler
    5fdbd1f6359b6620301478.png
    Ответ написан
    Комментировать
  • Можно ли открыть установленное приложение?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно, но универсального способа нет.

    В теории картинки там могут быть в каком угодно формате, даже в векторе, или вообще создаваться попиксельно программным кодом. Так что остаётся просто ковырять и надеяться, что что-то найдёте.

    В идеале, конечно, картинки PNG должны ждать вас на блюдечке с голубой каёмочкой (в отдельной папке взламываемой игры). Но раз на раз не приходится. Так что ковыряйте, смотрите, как устроена игра. Если она на Unity, который вы знаете, то будет проще ковырять.
    Ответ написан
    3 комментария
  • Как найти все заголовки в html-коде?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    "/(.*?)<\/h2>/i"

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

    ...как сделать поиск вообще всех заголовков...

    Очевидно, 2 заменить на [1-6]:
    "/(.*?)<\/h[1-6]>/i"
    Ответ написан
    Комментировать
  • Развитие в IT сфере. Что именно выбрать?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Всю информацию получить невозможно. Её слишком много.

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

    Вообще остальные предметы тоже важны. Не думай, что ИТ-шнику не нужен русский язык или, к примеру, география. Все школьные предметы пригодятся. Более того, школьные предметы - это необходимый минимум. Чтобы чувствовать себя уверенно по жизни, нужно и самому интересоваться чем-то, увлекаться, выходить за рамки школьной программы. Вот ты перечислил заумные термины, но тебе рано их знать. Иди лучше по школьной программе, которую как раз для тебя и составили, чтобы ты не терялся в категориях. А в свободное время просто интересуйся, удовлетворяй любопытство. Так будешь всё умнее и умнее. Но не сразу, а постепенно. Сразу бывает только в сказке.
    Ответ написан
    3 комментария
  • Взломали друга. Как хоть что-то понять?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Троян (вирус).
    Ответ написан
    Комментировать
  • Сайт по онлайн обучению программирования и автоматической проверки задач?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Возможно, www.codewars.com
    Ответ написан
    Комментировать
  • Js как выбрать один элемент из трёх (без ид, класс, дата и тд)?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    document.querySelectorAll(".burger_item")[1]
    //0 - первый, 1 - второй, 2 - третий
    Ответ написан
    Комментировать