Задать вопрос
  • Get запрос к json файлу. Что это?

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

    По адресу Красная Площадь дом 1 может проживать какой-то определенный человек (статический ресурс). А может быть, там офис с большой текучкой кадров, и каждый день по этому адресу вы будете встречать нового человека (динамический ресурс).

    Нагуглить нужно было URL, а еще лучше URI. Там нет ничего про "расширение файла". Хотя для удобства понимания в адресе оно может фигурировать. Собственно, в адресе могут быть отражены даже реальные файлы, но ваш случай не такой.
    Ответ написан
    Комментировать
  • Можно такую строку разбить одним regex?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    >\s*(.*?):[^>]*>\s*([^<]*?)\s*<.*?>([^<>]*?):[^>]*>\s*([^<]*?)\s*<.*?>([^<>]*?):[^>]*>\s*([^<]*?)\s*$

    Ответ написан
    3 комментария
  • Зачем администрация/модераторы/пользователи отмечают решением ответ, который вовсе не является решением?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    • Кураторы тега могут отмечать ответ решением.
    • Через неделю после ответа можно увидеть, кто именно отметил его решением. Так что смотрите свои вопросы недельной давности и более древние, где такое наблюдалось.
    • Зачем - это надо спрашивать конкретно у того, кто поставил отметку о решении. Но навскидку могу сказать, что он посчитал ответ решением. Как бы это банально ни звучало, но это так. Есть, конечно, микро шанс злого умысла, но им можно пренебречь, здесь все взрослые люди, скоро помирать уж, не до этих игр. Так что, скорее всего, кто-то хотел просто помочь, посчитав, что это и правда решение. Вот, зачем.
    • Если вы не согласны с такими отметками, и вам они реально мешают, а не просто любопытство, то внизу есть кнопка для жалоб (Обратная связь).
    Ответ написан
    2 комментария
  • Правильный перебор Json?

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

    Перебрать JSON можно примерно также, как перебрать JavaScript.
    Ответ написан
    Комментировать
  • Сортировка таблицы методом sort на чистом JavaScript или js-библиотека?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Лучше использовать sort(). Это нативная, а потому быстрая, функция. Своя функция, если опустить время на создание массива, будет на порядок медленнее.

    Таким образом, всё упирается в копирование данных. И здесь могу посоветовать только одно: данные должны быть уже в переменных JS на момент загрузки страницы. Конечно, в самой таблице - тоже, на случай отсутствия JS у пользователя. И каждая сортировка просто формирует таблицу заново.

    Ещё вариант, сделать массив непосредственно из DOM-элементов, как-то так (пример):
    [...document.querySelectorAll('tr')]
    А после применения sort(), можно с помощью insert'ов сделать новую таблицу или даже пушить в существующую. Здесь плюс в том, что вы не меняете оформление и формат таблицы. То есть если другой программист (или вы в будущем) добавит новый столбец, то код, вероятно, не сломается.

    К слову, если у вас 100-500 элементов, а на странице редко бывает больше 500, то сортировать можно как угодно, пользователь не заметит разницы.
    Ответ написан
    Комментировать
  • Как в JSON проверить, что поле существует?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Примерно так:
    var obj = res.items[0].snippet.thumbnails;
    var max_width = 0, max_height = 0, name = 'unknown';
    for(let k in obj) if (max_width < obj[k].width) {
      max_width = obj[k].width;
      max_height = obj[k].height;
      name = k;
    }
    console.log('Name: ',name,' Width: ',max_width,' Height: ',max_height);
    Ответ написан
    Комментировать
  • Как настроить подсеть?

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

    К примеру, вам нужен только 80 порт (веб морда какого-то приложения в телефоне). Телефону выдаете статичный ip, к примеру 192.168.0.200, и настраиваете проброс порта с к примеру 8080 на 192.168.0.200:80. Далее в основной сети у Netis ip к примеру 192.168.1.50, тогда стучитесь на 192.168.1.50:8080 - и попадаете на 192.168.0.200:80. Как-то так.
    Ответ написан
    Комментировать
  • Можно ли создать виртуальный номер аналогичный тому, который был утерян?

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

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

    Также вы можете написать в тех. поддержку соц. сети и объяснить ситуацию. Они могут пойти навстречу. Вопрос будет лишь в том, как вы сможете подтвердить, что вы - это вы, настоящий владелец данного аккаунта в соц. сети.
    Ответ написан
    5 комментариев
  • Можно ли в письмо вставить пиксель Метрики и собрать ClientID?

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это делается в тесном сотрудничестве с вашим оператором сотовой связи.
    Например, вот инструкция для МТС.
    Другие операторы гуглятся по словам: билафон переадресация вызова
    Ответ написан
    Комментировать
  • Что использовать против fingerprints?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Проблема в том, что вы можете быть одним из 1000, а может и более редким пользователем, у которого всё Unknown. А это вполне такой себе точный fingerprint. Далее связать А и Б по смыслу, почерку и прочим параметрам не составит труда, если кому такое понадобится вообще.
    Ответ написан
  • Перезарядка умений setInterval 15 сек?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    const COOLDOWN_TIME = 15000;
    
    function startCooldown(skill) {
    	skill.Disable();
    	setTimeout(()={
    		skill.Enable();
    	}, COOLDOWN_TIME);
    }
    Ответ написан
    Комментировать
  • Как этот код записать без использования jQuery?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Примерно так:
    Код
    (()=>{
    	let element = document.querySelector('.window');
    	if (!element) return;
    	let right = parseInt(element.style.right) || 0;
    	let right_target = ((x*100)+(x*8-10)-100);
    	let tm_start = performance.now();
    	let id = setInterval(()=>{
    		let diff = Math.min(performance.now() - now, 1000);
    		let right_current = Math.round(right + (right_target - right) * diff * 0.001);
    		element.style.right = right_current + 'px';
    		if (diff >= 1000) clearInterval(id);
    	},10);
    })();
    Ответ написан
    Комментировать
  • Как перезапустить игру на питон?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Дайте игроку самому решать, хочет ли он играть, и как именно. Для этого в конце показывайте что-то типа "Game Over" и переводите игрока на главное меню игры. У вас же есть главное меню в вашей игре? А там уже должен быть пункт "Начать заново".
    Ответ написан
  • Возможен ли такой подход создания браузерной игры?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В теории есть разные варианты.

    1. Можно использовать кеш браузера. Особенно для статичных картинок и файлов, которые вы никогда не будете менять, и это точно. Об этом можно сообщить браузеру, и он поверит, и не будет загружать их повторно.
    2. Можно использовать хранилище браузера (localStorage и IndexedDB). Правда, понадобится много заумного программирования.
    3. Можно попросить пользователя установить расширение для браузера, которое, по сути, будет равносильно установке самой игры. То есть игра без него не запустится. Там много возможностей.
    4. Собственно, почему расширение? Есть полноценные скачиваемые из стора веб-приложения, в том числе и игры. Хотя по сути то же самое.
    5. Можно создать не веб приложение, а полноценное приложение для какой-то ОС (Windows, Android и т.п.), но со встроенным WebView, т.е. как бы со встроенным браузером.
    6. Можно отказаться от браузерной игры. Серьезно, на сегодня это 3% мирового рынка игр, и доля продолжает падать. Оно вам надо там ловить что-то? Если ради интереса, то ради бога, а если ради прибыли, то лучше отказаться сейчас, чем потом.
    Ответ написан
    Комментировать
  • SetInterval во время выполнения?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Когда выполняется код, на странице ничего не рендерится.

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

    Так что во время первой итерации setInterval (или перед созданием setInterval) нужно затемнить блок. Не важно, в начале и в конце функции это делать, отрисовка начнется только после выхода из функции. А в последней итерации setInterval, соответственно, нужно убрать затемнение.
    Ответ написан
    Комментировать
  • Как подсчитать максимальное количество одинаковых значений подряд в столбце?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1. Выберите пункт меню Инструменты -> Редактор скриптов.
    2. В появившийся редактор скопируйте следующий код:
      Код
      function MAX_THE_SAME(input, search) {
        if (!input) return "Нет данных";
        if (!(input instanceof Array)) return "Выбрана одна ячейка";
        var current;
        var count = 0;
        var max = 0;
        for(var x=0; x<input[0].length; x++) {
          current = null;
          for(var y=0; y<input.length; y++) {
            var val = input[y][x];
            if (!val && val !== 0 || search && val!=search) {
              current = null;
              continue;
            }
            val = val.toString();
            if (current !== val) {
              current = val;
              count = 0;
            }
            count++;
            if (max < count) max = count;
          }
        }
        return max;
      }

    3. Сохраните.
    4. В любом месте страницы вставьте формулу =MAX_THE_SAME(A:A)
      или =MAX_THE_SAME(A:A;"dog")
    Ответ написан
    2 комментария
  • Можно ли использовать тег br для переноса строк, и не критично ли это?

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

    Небольшой по смыслу разрыв - br, а большой - p.
    Ответ написан
    2 комментария
  • Какие русскоязычные аналоги Хабр существуют?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вас никто не заставляет читать все хабы. Подпишитесь на интересные, и читайте только их.

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

    Могу сказать, как поступил я на примере Тостера. Я выделил разные параметры вопросов, и теперь могу их фильтровать программно в автоматическом режиме: об интересных вопросах мне приходят уведомления, скучные я вообще не вижу, а остальные я могу смотреть или не смотреть в свободное время, в зависимости от настроения. Для Хабра, возможно, тоже стоило придумать что-то подобное, но я там не зависаю настолько, чтобы такое решение себя окупило по времени.
    Ответ написан
    5 комментариев
  • Все ли веб разработчики являются инженерами? Кого стоит причислять к таковым?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если человек не получил ВО, но всё равно состоялся, как специалист, то какая разница, как его называть? Главное, что он умеет, чем может быть полезен, сколько денег может принести компании. Именно на это смотрят.
    Ответ написан
    Комментировать