Задать вопрос
  • Определение уровня программиста по фрагменту кода?

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

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

    Вопрос в том, какой уровень у программиста Васи. Как это определить? Плохой он программист или хороший? И плохой для кого? Лично Васе - норм, денег хватает на еду, яхту и на загородный особняк. Можно ли вообще по коду понять его "уровень"? Это же не игра какая-нибудь, где можно качать свой левел, который отображается в углу в виде цифры.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ответ написан
    Комментировать
  • Как добавить 3 вариант JS?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var name = old ? 'productAir2' : ( bool ? 'productAir2w' : 'третий вариант');

    Примерно так. Нужно включить логику, чтобы понять, как в точности реализовать.
    А сейчас вечер, сами понимаете...
    Ответ написан
  • Можно ли в Google Chrome изменить звук PUSH уведомлений, для определенного сайта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    То есть это не ваш чат? Тогда основной ответ - сделайте свой чат, а "их чат" пусть останется у них. Тогда схема простая. Сайт посылает беззвучное push-уведомление (silent), и при этом сам воспроизводит какой-то кастомный звук.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Они нашли "любую строку" задолго до этой секунды. А потом просто оптимизировали данные на своих серверах. Можно сказать, что они скопировали Интернет (хотя на самом деле лишь часть Интернета).
    Ответ написан
    Комментировать
  • Как правильно выполнить запрос перед закртием/загрузкой другой страницы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А других официальных вариантов и нет. Только синхронно.

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

    Более правильно не выполнять запрос вообще. Вместо этого нужно записать куда-нибудь в куки или localStorage информацию, и при следующем посещении сайта отправлять её туда-сюда, сколько угодно раз. Если же нужно детектить именно само закрытие, то можно раз в N секунд делать ajax или другим способом поддерживать соединение, и по таймауту считать пользователя "отвалившимся".

    Код, который может помочь
    window.addEventListener("beforeunload", e => {
    	if (is_test_passed) {
    		return;
    	}
    	let message = "Вы уверены, что хотите закончить тест?";
    	if (typeof e == "undefined") {
    		e = window.event;
    	}
    	if (e) {
    		e.returnValue = message;
    	}
    	return message;
    }
    Ответ написан
    7 комментариев
  • Как добавить пробел в регулярное выражение?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    $text = "Саакян Андраник Шаликоевич";
    
    if(preg_match("#^[а-яА-ЯёЁ ]+$#iu",$text)){
        echo 'Все верно';
    }
    else{
        echo 'error';
    }
    Ответ написан
    Комментировать
  • При обработки ответа в формате JSON происходит ошибка SyntaxError, как исправить?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно обойтись своими силами. Однажды я уже отвечал на подобный вопрос.
    Надеюсь, сможете сами переписать на JavaScript, ну или хотя бы ухватить идею и сделать что-то похожее. Но вообще, конечно, надо продолжать давить на бекендеров.
    Ответ написан
    6 комментариев
  • Почему возвращается false?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Оператор || выводит первое значение, если оно истинно, иначе второе.
    Но -2 истинно.
    Ответ написан
  • Не удается получить доступ к сайту?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Проверьте наличие блокировок на официальном сайте:
    https://blocklist.rkn.gov.ru/

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Примерно так:
    let timer_wait_4 = setInterval(e=>{
      let arr = document.querySelectorAll(".jp-playlist ul li");
      if (!arr || arr.length < 4) return;
      clearInterval(timer_wait_4);
    
      $('.jp-playlist ul').each(function(i, el) {
        console.log($(el).children('li'));
      });
    
    },200);

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

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

    Вы же не думаете, что деанонимизируют исключительно по IP?

    Если вы, будучи якобы 100% анонимным, зашли на VK Васи, то у него всего лишь 500 друзей, и все они живут в РФ. А потом вы зашли на VK Кати, у которой внезапно такой же город, как у Васи, и всего лишь 1 общий друг с Васей. Конечно, это еще не доказательство, но дальше к этому "другу" приезжают домой (тоже внезапно, без предупреждения) и смотрят комп. А там - опа, ваша система подключения через паутину дедиков плюс прочий компромат, который вы старательно пытались скрыть.

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

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

    Ну а если не деньги, то всё равно цель нужно четко понимать. Тогда уже можно будет предметно отвечать как, зачем, почему, стоит ли и т.д.
    Ответ написан
  • Как создавать качественную 2D анимацию?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не используйте GameMaker Studio, я пробовал, не понравилось, слишком много ограничений.
    А синтаксис там вообще "волшебный". Присвоение значения переменной изменит переменную у всех объектов такого типа и прочие несуразности.

    Лучше переходите на Unity. Это уже классика.

    Насчет векторной графики, ее практически не используют. Точно не скажу, но по моим представлениям нарисовать на экране произвольный многоугольник с 10 вершинами и закрасить его будет использовать больше вычислительных ресурсов, чем скопировать готовое изображение из памяти. То есть теоретически векторная графика может дать выигрыш в размере билда и занимаемой оперативной памяти в рантайме, но увеличивает нагрузку на батарейку смартфона и повышает минимальные системные требования для игры (кроме памяти).
    Ответ написан
  • Можно ли чисто теоретически через один кабель в квартире организовать два Интернет-подключения к одному провайдеру?

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

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

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

    Чтобы делать выводы на генеральную совокупность (все люди), нужно выделить репрезентативную выборку и с некоторым приближением можно будет говорить о трендах в мире.

    А то, что 50% американцев устанавливает 0 приложений в месяц, это слабый аргумент. Может быть, в прошлом месяце было 60%? Уверен, что лет 100 назад было ровно 100%. Нарисуйте график для начала, а там видно будет.
    Ответ написан
    3 комментария
  • Как поделиться игрой (Adobe Captivate) с конкретными пользователями в интернете?

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

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В ячейку C1 нужно подставить формулу:
    =A1

    А в ячейку C2 нужно подставить формулу:
    =IF(A2="";C1;A2)

    Затем эту формулу растянуть на всю колонку.

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

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

    Зачем вы делаете игру?

    Если для того, чтобы потренироваться или просто пощупать геймдев, то, возможно, цель УЖЕ достигнута. Если же для того, чтобы игра принесла денег, то с изложенным вами бекграундом вам до этой цели, как до луны. В приносящей деньги мобильной игре программирования дай бог 20%.

    Пользуясь интуицией, могу предположить, что ваша цель сделать хоть что-то, чтобы это хоть как-то работало, что-то показывало и имело какой-то функционал. На мобилки это делается примерно в два этапа:
    1. Сделать так, чтобы игра запускалась и работала в Unity.
    2. Опубликовать готовую игру в сторе (Google Play пока для вас проще будет).


    Из вопроса не ясно, на каком этапе у вас затык. Начните с первого этапа. Пустой экран должен у вас запускаться из коробки. То есть нужно просто запустить пустой проект. Дальше нужно разбираться с тем, как работает Unity - что может интерфейс, что предоставляет API и т.д. Тупо копировать чужой код не нужно. Копировать можно только с понимаем, что делает каждая строчка и каждый символ этого кода. То есть чужой код можно рассматривать, как пример. А дальше на его основе делать свой код. И даже если вы вставляете чужой код в свою игру без изменений, вы должны понимать, как он работает, чтобы он заработал именно у вас и не поломал игру, и сам не поломался при интеграции в игру.
    Ответ написан
    2 комментария