Задать вопрос
  • Кто как защищает от пиратства свое видео?

    sim3x
    @sim3x
    Такие защиты всегда комплекс мер по уменьшению копирования
    Они требуют кучи денег и редко бывают еффективны
    - стеганография и водяные знаки уникальные для каждого пользователя
    - верификация получателя контента
    - система слежения за торрент треккерами и просто площадками
    - хардварные системы для тв
    - ...

    Кроме того - сейчас идет огромная борьба за внимание и время
    Любое ваше решение, которое создаст неудобства для пользователя автоматом означает, что ваш пользователь уйдет к другим производителям контента в два клика
    Даже ваше подозрение, что юзер что-то скопировал и дал кому-то может накинуть на вентилятор и от вас уйдут все
    Ответ написан
    2 комментария
  • Почему в этом случае консоль выдает ошибку NullReferenceException?

    GavriKos
    @GavriKos Куратор тега Unity
    Дело ровно в том, что у вас что то равно null.
    Что конкретно - покажет дебаггер, но 99% что это instance у InputManager.

    При завершении игры в консоль постоянно выводится true, хотя, как я понял, это свойство должно возвращать в этот момент false

    деактивация сцены никак не связана с этим свойством. Почитайте мануал.

    Для решения проблемы есть два варианта:
    - проверить instance на null
    - пересмотреть архитектуру, чтобы таких вызовов небыло.
    Ответ написан
    3 комментария
  • Как с помощью Google maps api показать все аптеки рядом?

    @Monster3D
    Для того чтоб получить данные из API Place

    Можно использовать запрос для поиска мест.
    https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=56.831791, 60.623635&radius=1500&keyword=Аптека&key=API_KEY


    Где:
    location - координаты точки поиска,
    radius - соответственно радиус поиска,
    keyword - что искать (пример "Аптека").

    API вернет json со списком объектов, где найдет слово "Аптека".

    Для уточнения нужно будет сделать запрос на API Place Details
    https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJT7rbY5BuwUMRIUF9x1Vck5A&fields=name,rating,formatted_phone_number&key=API_KEY


    Где:
    placeid - указать объект (найденный в предыдущем запросе) для которого нужна информация.

    После, все эти данне можно использовать в Map SDK (создать нужное количество пинов)

    PS: Незабывает активировать приложение в Google Developer Console

    Все это есть тут
    Ответ написан
    1 комментарий
  • Что нужно знать для работы c API?

    Jump
    @Jump
    Системный администратор со стажем.
    Что нужно знать для работы c API?
    API
    Ответ написан
    Комментировать
  • Что значит такое ограничение в заголовке класса?

    Nipheris
    @Nipheris Куратор тега C#
    Чтобы в этом ограничении был смысл, класс Game должен быть дженериком с параметром типа TFamilyType.

    Ограничение говорит, что тот тип, который вы подставите вместо TFamilyType при использовании класса Game, должен реализовывать интерфейс IFamily и иметь конструктор без параметров.
    Ответ написан
    1 комментарий
  • Кто разъяснит строчку из C# кода?

    @lil_Toady
    Методу Enum.Parse нужно знать тип enum'а, чтобы понять список возможных значений. Для значений не входящих в перечисление будет выкинуто исключение ArgumentException.

    В перечисление DayOfWeek соответственно входят входят Sunday, Monday, Tuesday, Wednesday, Thursday, Friday и Saturday, если введенная вами строка в консоль не будет соответствовать одному из этих значений, то получите исключение.

    В последних версиях стандарта это же самое можно достичь более простым способом, передавая нужный тип как generic аргумент, и не приходится делать приведение типа:
    favDay = Enum.Parse<DayOfWeek>(Console.ReadLine());

    Думаю такая запись и проще для понимания при чтении кода :)
    Ответ написан
  • Тип данных аналогичный таблице в C#?

    @lil_Toady
    Все верно, вам подойдет struct или class, чтобы описать одну запись (строку), разница между ними будет что первое - value type, не может быть null. И далее любая коллекция, даже простой массив.

    Предположим что вы описали сущность так:
    class Item
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public DateTime Time { get; set; }
    }


    для простоты используем List - простейший динамический список, можно добавлять, удалять и т.п.:
    var timeTable = new List<Item>
    {
      new Item { Id = 1, Title = "Иван Сергеевич", Time = DateTime.Parse("20.05.2019 18:45") },
      new Item { Id = 2, Title = "Петр Николаевич", Time = DateTime.Parse("20.05.2019 16:45") },
    };


    И теперь через Linq (using System.Linq;) можно работать с этими данным, работает на любой коллекции или массиве, внедряющих интерфейс IEnumerable, и предоставляет различные методы типа Where, Min, Max, OrderBy и т.п.
    var ordered = timeTable.OrderBy(item => item.Time); // Получили IEnumerable<Item>  отсортированный по Time


    P.S. Такая запись, более похожая на SQL тоже возможна, но думаю подход с методами будет все же более удобным
    var ordered = from item in timeTable orderby item.Time ascending select item;
    Ответ написан
    2 комментария
  • Перспективы ue4 и unity?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Будущее туманно. А о настоящем - открываем hh.ru и ищем.
    Вопрос поднимался много раз.
    Ответ написан
    Комментировать
  • Почему у меня не преобразуются градусы в радианы?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    1 градус = Пи/180 радиан
    соответственно функция получения радиан из градусов будет
    toRad = (val) => val * PI/180;
    Ответ написан
    Комментировать
  • Как узнать страну по ip?

    Stalker_RED
    @Stalker_RED
    Скачать себе базу типа такой: https://dev.maxmind.com/geoip/geoip2/geolite2/ (их есть разные)

    или возможно есть какие то закономерности в формировании ip для каждой страны?
    хахаха.
    Это за 2007 https://www.caida.org/research/id-consumption/whoi...
    С тех пор многие крупные сегменты распродали по частям, и каша стала намного более запутанной.
    И да, адреса выдают организациям, а не странам. Будь в каждой стране по одному провайдеру, и не будь ни одного провайдера работающего на несколько стран, ваше желание было бы чуть ближе к реальности :)
    Ответ написан
    Комментировать
  • Наткнулся на подозрительный скрипт в исходниках одного сайта, не вирус ли?

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

    Хотя теоретически это возможно, если использовалась 0day-уязвимость в самом браузере. Но практически шанс этого настолько мал, что не стоит переживать. Очень много слоев защит в браузере, так что даже переполнение буфера мало что даст.

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

    Если хотите практически полностью исключить атаку со стороны JS, отключайте его по-умолчанию. Например, я использую расширение (для хрома) Quick Javascript Switcher. Все сайты у меня без JS и всё прекрасно работает. На известных сайтах типа яндекса гугла, мейла, всё чем нужно пользоваться - включено. Ну и если внезапно надо включить (очень редко) - одним кликом делается. Хотя тема расширений сама по себе интересна с точки зрения ИБ, но это уже другая история (и всегда можно их скачать и использовать локально, особенно мелкие с кодом в 30 строк).

    P.S.
    Распаковка, этап 1
    var arr=[
    	'||x2F|x20|x33|x42|_0x9a4f|x54|hi|x2E|x3A|x74|x31|x52|x37|x4E|x6F|x68|x50|x48|var|x70|x4B|x59|x63|x6C|x67|function|console|x73|x72|x76|x62|x6B|x6D|x6E', //0
    	'split', //1
    	'length', //2
    	'constructor', //3
    	'debugger', //4
    	'toString', //5
    	'replace', //6
    	'\x5cw+', //7
    	'k\x206=[\x22\x5c5\x5cn\x5c3\x5cf\x5c5\x5cd\x5c3\x5c2\x5c2\x5c3\x5cj\x5c7\x5c7\x5ci\x5ca\x5c2\x5c2\x5cf\x5c5\x5cd\x5cc\x5c4\x5c4\x5ce\x5c9\x5c7\x5cm\x5c3\x5c2\x5c2\x5c3\x5ch\x5cb\x5cb\x5cl\x5ct\x5ca\x5c2\x5c2\x5cv\x5cx\x5c9\x5co\x5cg\x5cy\x5c2\x5cz\x5cw\x5cu\x5cc\x5c4\x5c4\x5ce\x22,\x22\x5cp\x5cg\x5cq\x22];r\x208(){s[6[1]](6[0])}8()'
    ];
    
    (function(arr, b) {
      var d = function(c) {
        while (--c) {
          arr['push'](arr['shift']());
        }
      };
      d(++b);
    }(arr, 0x1f4));
    
    var e = function(f) {
      f = f - 0x0;
      var g = arr[f];
      return g;
    };
    
    eval(function(h, nn1, i, j, k, m) {
      k = function(n) {
        return n[e('0x0')](0x24);
      };
      if (!'' [e('0x1')](/^/, String)) {
        while (i--) {
          m[k(i)] = j[i] || k(i);
        }
        j = [function(o) {
          return m[o];
        }];
        k = function() {
          return e('0x2');
        };
        i = 0x1;
      };
      while (i--) {
        if (j[i]) {
          h = h[e('0x1')](new RegExp('\x5cb' + k(i) + '\x5cb', 'g'), j[i]);
        }
      }
      return h;
    }(e('0x3'), 0x24, 0x24, e('0x4')[e('0x5')]('|'), 0x0, {}));
    
    var p = function() {
      function q(r) {
        if (('' + r / r)[e('0x6')] !== 0x1 || r % 0x14 === 0x0) {
          (function() {} [e('0x7')](e('0x8'))());
        } else {
          (function() {} [e('0x7')]('debugger')());
        }
        q(++r);
      }
      try {
        q(0x0);
      } catch (ee) {}
    };
    p();
    setInterval(function() {
      p();
    }, 0xfa0);
    Распаковка, этап 2
    var arr=[
    	'toString', //0
    	'replace', //1
    	'\x5cw+', //2
    	'k\x206=[\x22\x5c5\x5cn\x5c3\x5cf\x5c5\x5cd\x5c3\x5c2\x5c2\x5c3\x5cj\x5c7\x5c7\x5ci\x5ca\x5c2\x5c2\x5cf\x5c5\x5cd\x5cc\x5c4\x5c4\x5ce\x5c9\x5c7\x5cm\x5c3\x5c2\x5c2\x5c3\x5ch\x5cb\x5cb\x5cl\x5ct\x5ca\x5c2\x5c2\x5cv\x5cx\x5c9\x5co\x5cg\x5cy\x5c2\x5cz\x5cw\x5cu\x5cc\x5c4\x5c4\x5ce\x22,\x22\x5cp\x5cg\x5cq\x22];r\x208(){s[6[1]](6[0])}8()',
    	'||x2F|x20|x33|x42|_0x9a4f|x54|hi|x2E|x3A|x74|x31|x52|x37|x4E|x6F|x68|x50|x48|var|x70|x4B|x59|x63|x6C|x67|function|console|x73|x72|x76|x62|x6B|x6D|x6E', //4
    	'split', //5
    	'length', //6
    	'constructor', //7
    	'debugger', //8
    ];
    
    var e = function(num) { //получить строку с номером num (они перемешаны)
      num = num - 0;
      var g = arr[num];
      return g;
    };
    
    function getCode(h, nn1, i, j, k, m) {
      k = function(n) {
        return n.toString(0x24);
      };
      if (!''.replace(/^/, String)) {
        while (i--) {
          m[k(i)] = j[i] || k(i);
        }
        j = [function(o) {
          return m[o];
        }];
        k = function() {
          return '\x5cw+';
        };
        i = 0x1;
      };
      while (i--) {
        if (j[i]) {
          h = h.replace(new RegExp('\x5cb' + k(i) + '\x5cb', 'g'), j[i]);
        }
      }
      return h;
    }
    var code = getCode(e(3), 36, 36, e(4).split('|'), 0, {});
    eval(code);
    
    var p = function() {
      function q(r) {
        if (('' + r / r).length !== 1 || r % 20 === 0) {
          debugger;
        } else {
          debugger;
        }
        q(++r);
      }
      try {
        q(0);
      } catch (ee) {}
    };
    p();
    setInterval(function() {
      p();
    }, 4000);
    Распаковка, этап 3
    //Суть скрипта
    function hi() {
      console['log']('BY NBR // HTTP://NBR1337.TK // https://vk.com/nbr1337')
    }
    hi();
    
    //плюс защита от дебага (удалена)
    Распаковка, этап 4
    console.log('BY NBR // HTTP://NBR1337.TK // https://vk.com/nbr1337');

    Вывод - это просто подпись автора, чтобы он смог доказать авторство в суде, если его код спиратят.
    Ответ написан
    4 комментария
  • Влияет ли издатель сертификата на позицию в поисковых системах?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    Дома с переломом ноги
    Нет.

    Если конечно мы говорим об одном и том же типе сертификатов. LE выдает только DV сертфиикаты. Если сравнивать его с DV сертификатом от того же Комодо - скорее всего нифига разницы не будет.

    Если сравнивать с OV или EV сертификатом от Комодо - разница может быть будет. Эта вещь очень сложно доказуема, потому что нужна статистика, которую собрать нереально, если ты не гугл. Но и цена EV сертификата - кусается и пребольно.
    Ответ написан
    Комментировать
  • Как сделать чтобы метки маршрута были поверх обычных меток Яндекс Карты?

    deepblack
    @deepblack
    Для задания начальной, конечной и промежуточных точек используется YMaps.WayPoint
    • wayPointStart - опции отображения начальной путевой точки;
    • wayPointFinish - опции отображения конечной путевой точки;

    WayPoint наследуется от Placemark, у которого есть свойство zindex

    Вот его и используйте.
    Ответ написан
    Комментировать
  • Моя игра не может найти DLL на чужих ПК, при том что они есть, и не работает. Что делать?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Соберите релиз, это первое.

    Вместе с игрой нужно устанавливать пакет Visual Studio Redistributable 2017
    Ответ написан
    1 комментарий
  • Мобильные шейдера, ошибки оптимизации?

    GavriKos
    @GavriKos Куратор тега Unity
    if-else для шейдеров - плохо, да.
    Но причины падения могут быть самые разные - надо как минимум смотреть код шейдера. Ну и попрофилировать стоит.
    Ответ написан
    Комментировать
  • Являются ли персональными данными имя и первая буква фамилии?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Нет, поскольку с помощью этих данных невозможно однозначно идентифицировать конкретную личность.
    Ответ написан
    2 комментария
  • Почему не получается скомпилировать GNU assembler?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега GCC
    Седой и строгий
    Потому что когда gcc запускает ld, он передаёт ему существенно больше параметров, включая необходимые библиотеки, а не только объектный модуль программы.
    Ответ написан
    4 комментария
  • Какие видеокурсы существуют по шифрования сполняемых файлов?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Лол, ответ на ваш вопрос изучают в ВУЗах на направлениях "Информационная безопасность" где-то лет пять и над ним ломают головы тысячи высокооплачиваемых специалистов.
    Ответ написан
    Комментировать
  • Как сделать, чтобы фильтр не применялся к объектам на карте?

    0xD34F
    @0xD34F Куратор тега Яндекс.Карты
    .gray {
      -webkit-filter: grayscale(100%);
      -moz-filter: grayscale(100%);
      -o-filter: grayscale(100%);
      filter: grayscale(100%);
    }

    map.panes.get('ground').getElement().classList.add('gray');

    https://jsfiddle.net/8y0t6kjv/
    Ответ написан
    1 комментарий
  • Общение/переговоры с заказчиком занимают много времени, что делать?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Всё время, которое ты тратишь на проект заказчика, должно быть оплачено заказчиком.
    Все длительные переговоры, естественно, тоже.
    Ответ написан
    3 комментария