Задать вопрос
  • Как сравнить только часть символов строки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    <?php
    $re = '/\(test(.*?)\)/m';
    $str = '(testOne)';
    $str2 = "fff";
    
    preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
    
    if (count($matches) > 0) {
        $str1 = $matches[0][1];
        echo ( $str1 == $str2 ? 'одинаковые' : 'разные' );
    }
    ?>
    Ответ написан
    Комментировать
  • Можно ли полностью убрать курсор из iframe?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    iframe сам решает, какой курсор отображать.

    Попробуйте натянуть прозрачный div поверх iframe. Возможно, прокатит. А может и нет.
    spoiler
    Конечно же, если клики в iframe нужны, то нужно использовать
    pointer-events: none
    Ответ написан
    Комментировать
  • Как вытягивать информацию из мобильной игры?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если доходы компании открытые, то можно смотреть их.
    Иначе можно либо купить эти данные, либо взять у инсайдера (что тоже не бесплатно).

    Вообще вся самая вкусная статистика - платная. Выбирайте: App Annie, Superdata, Newzoo, Datamagic, SensorTower, AppData и т.д.
    Ответ написан
  • С чего начать изучать game dev?

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

    Как то ни обычно звучит, но советую поиграть в симулятор игровой студии. Я знаю, как минимум, две игры в Стиме и одну настолку. Это даст самое базовое представление о том, как всё не просто. Ну а дальше можно смотреть на конкретные термины, которые там встречаются, и гуглить их.

    Также в Москве есть курсы при ВШБИ. Это единственный вариант в России официального высшего образования в области геймдева. Ещё можешь поехать учиться в другие страны, там тоже есть варианты вышки, хотя этот вариант сложнее.
    Ответ написан
    Комментировать
  • Что прописать нужно чтобы файл html автоматически чистилcя в кэше браузера и показывал последние изменения?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вам нужно не смотреть в сторону кеша браузера, а использовать подконтрольный разработчику кеш - например, localStorage. Вашему сайту бесплатно доступно 5Мб на стороне пользователя. Теоретически можно даже превысить этот лимит, побеспокоив пользователя.

    Соответственно, сайт выдаёт сводную инфу и крохотный скрипт, который проверяет, устарели данные или нет. Если устарели, то очищает сохраненные данные и загружает новые.

    Можно даже по-умному это всё делать. Например, так:
    1) Мини скрипт проверяет актуальность базы (когда она была загружена).
    2) Дальше шлет мини запрос (ajax) на сервер с указанием этой даты.
    3) Сервер проверяет, что изменилось с той даты.
    4) Сервер высылает новые данные только с изменениям. Например: товар 555 удалить, товар 777 добавить, товар 999 изменить цену на 14.99
    5) Клиент принимает небольшую порцию данных и актуализирует локальную базу в localStorage
    Ответ написан
    Комментировать
  • Как отследить закрытие PWA?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В случае убийства, PWA ничего не успеет сделать. С таким же успехом можно буквально прострелить телефон огнестрельным оружием или бросить в кислоту.

    Просто найдите сбалансированную цифру, сколько держать сессию. Зависит от цены создания и поддержания сессии.

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

    И ещё более умный вариант - как-то отслеживать (условно) "характер" пользователя. Например, если зашёл и закрыл, то сессия удаляется довольно быстро. А если вернулся через час, или на следующий день, то перевести пользователя в статус "активный", и для него вообще таймаут можно на пару дней поставить. Ну, опять же, в случае высокой цены создания сессии. Честно говоря, мне сложно представить задачу, где цена настолько высока, чтобы так заморачиваться.
    Ответ написан
    Комментировать
  • Как заставить нормально работать динамически подключенный js код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var jq = document.createElement('script');
    jq.src = "js/jquery-3.3.1.min.js";
    document.querySelector('body').appendChild(jq);
    
    jq.onload = e => {
        var script = document.createElement('script');
        script.src = "js/scripts.js";
        document.querySelector('body').appendChild(script);
    };
    Ответ написан
  • Как создать строку?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var str = "<scr"+"ipt></scr"+"ipt>";
    Ответ написан
    Комментировать
  • Как заменить знак звездочки на все символы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var str = "test.example.com";
    var pat = "*.example.com";
    
    pat = '^'+pat.replace(/\./g, '\\.').replace(/\*/g,'.*')+'$';
    console.log(!!str.match(pat)); //true
    Ответ написан
    Комментировать
  • Как Telegram Desktop нормально работает из коробки без прокси?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Например, такая нехитрая схема, которая напрашивается первой.

    Пусть у нас есть 1000 прокси в разных частях света.
    Делим всех юзеров РФ на 100 частей и каждой части даём свой прокси.
    Некоторые из этих прокси блокируются, но не все, потому что РКН тогда должен запариться подключением из разных частей.
    Каждую часть юзеров, в которой спалили прокси, мы снова делим на 100 частей и раздаем им свои прокси.
    Таким образом, постепенно вымываем аккаунты и ipшники, с которых РКН ищет прокси.

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

    В общем, это война пули и брони. Как ты понимаешь, выигрышной стратегии нет. Но придумать можно много чего.
    Ответ написан
    Комментировать
  • Как учить JS и не сойти с ума?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    JS - громоздкий и довольно запутанный язык (исторически так сложилось).
    Основы языка понять - как раз довольно просто. А вот постичь все тонкости, я бы сказал, не просто сложно, а даже не нужно. У разработчика главная цель - чтобы код работал. Оптимизация, как правило, достигается знанием алгоритмов, а это за пределами знания самого языка. Так что как вариант - просто писать то, что вам нужно, и периодически поглядывать в спецификацию, гайды, гугл, тостер. Вот и весь секрет.
    Ответ написан
    Комментировать
  • Как исправить баг в коде?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Точно не уверен, но попробуйте свести алгоритм к таким шагам:
    1. Получение данных.
    2. Их обработка
    3. Отправка результатов в таблицу.

    То есть на третьем шаге не должно быть повторного получения данных. У вас copyTo сразу после setValues. Возможно, всё это дело как-то кешируется, так что getRange всегда берет изначальные данные.
    Ответ написан
  • Какие специальные символы нужно запретить для ввода в Input?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно запретить все символы, кроме символов из белого списка типа a-zA-Z0-9_
    Проверка должна быть на сервере. На клиенте проверка нужна, только чтобы не перегружать страницу лишний раз.
    Ответ написан
    6 комментариев
  • Как превратить объекты со ссылками в JSON?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Дело в том, что в JSON не может быть циклических ссылок по определению. Там даже нет переменных.

    Лучше всего вам перейти на немного другой формат данных. А именно, хранить не ссылки на объекты, а их ключи в виде строк. Такие строки-ссылки спокойно сериализуются.
    leader.soldier = "soldier";
    soldier.leader = "leader";

    Автоматически лучше не конвертировать, а именно взять такой формат за основу. Но если очень хочется, то как-то так:
    for (let key in obj) {
      if (window[key]) obj[key] = key; //любой ваш критерий
    }

    В будущем для проверки, правда, понадобится чуть усложнённый код:
    var test_leader = soldier.leader && window[soldier.leader];
    //Конечно, вместо window у вас будет свой объект-обертка

    Чтобы избавится от этого вам нужно будет всего лишь "чинить" объект после JSON.parse
    Ответ написан
    Комментировать
  • Нужно определиться со структурой неизвестной html страницы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var s = 'energy|{"Ts":"380158","Va":"232.00","Aa":"0.37","Pa":"56","PFa":"0.65","T0":"18.94"}|div';
    s = s.split('|');
    s[1] = JSON.parse(s[1]);
    console.log(s);
    console.log(s[1].Va); //232.00

    Соответственно, ссылка для вас будет примерно такая (должно вернуть 232.00):
    javascript:alert((e=>{var s=document.body.innerHTML; s = s.split('|'); s[1] = JSON.parse(s[1]); return s[1].Va})())

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно сделать отдельную функцию с помощью Google Script, и использовать её в своей таблице. Тогда в отдельном столбце вы сможете выводить всё, что душе угодно.

    Но проще сделать раскраску элементов в столбце B, которые отсутствуют в столбце A. Такое подойдет? Функция COUNTIF
    Ответ написан
  • Корректный ли ассемблерный код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В коде не хватает комментариев. Добавьте комментарии с пояснениями, где что означает и где что происходит. Тогда вам же будет проще понять. Даже в языках высокого уровня очень желательно комментировать не очевидный код, а уж ассемблер сам бог велел.
    Ответ написан
  • Как выдернуть _id из структуры список объектов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    msg.map(e=>e.item._id)
    Ответ написан
    Комментировать
  • Почему функция не объявлена?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что закавыченный код выполняется в глобальной области видимости. Так устроены функции setInterval и setTimeout, увы и ах. Пример:
    function test() {
    	let x = 123;
    	setTimeout("alert(x)",0); // x не видна
    }
    test();

    Если нужна именно строка, то оберните код в функцию eval, она выполняется в локальной области видимости:
    function onload() {
    	function f(){
    		console.log('12');
    	}
    	setInterval(e=>eval("f()"), 1000)
    }
    onload();

    Иначе просто используйте ссылку на саму функцию, то есть f вместо "f()"
    Ответ написан
    9 комментариев
  • Можно ли на JS писать музыку?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Наберите в гугле "piano online".
    Ответ написан
    Комментировать