• Как заменить картинку, одну на другую?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если я вас правильно понял, то примерно так:
    <div>
      <script>
        document.write('<img src="https://loremflickr.com/g/200/200/carnaval">');
      </script>
      <noscript>
        <img src="https://loremflickr.com/g/200/200/cat">
      </noscript>
    </div>
    Ответ написан
  • Каким HTML online редактором удобно пользоваться?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Помню день, когда я в обычном блокноте написал <b>bold</b> - и в браузере свершилось чудо. Тогда я прозрел и понял суть веба.

    С тех пор в HTML ничего особо не изменилось. Суть та же.
    Ответ написан
    Комментировать
  • Как посмотреть сырое тело POST запроса?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Request Payload - в случае аякса, Form Data - в случае формы, Query String Parametrs - это вроде то, что попало в URL, то есть по сути GET-запрос. Ведь никто не мешает миксовать GET и POST параметры в одном запросе.
    P.S.
    Ответ написан
  • Как выбрать направление развития, или "Это только в начале скучно, или дальше также?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вы хотите работу, которая будет являться развлечением? Игрой? Это, конечно, круто, но такого не бывает. Точнее, бывает, но за это вы сами должны платить деньги, а не вам. В работе очень часто нужно переступать через себя, идти на какие-то компромиссы. В работе вы должны достичь какой-то цели, оказать услугу, выпустить продукт, показать результат, и это не обязательно должно быть приятным, по крайней мере не всегда и не везде. Если я чего-то действительно хочу, то я продолжаю есть кактус и продвигаться к цели. А вы что хотите? Веселья? Или чего-то более серьёзного? Определитесь, за вас это решение никто не примет.
    Ответ написан
    1 комментарий
  • Cloudflare и блокировка Роскомнадзором соседа по IP - какие последствия?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Есть три типа блокировки - URL, домен, ip.

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

    Что там за сайты, можете посмотреть, скачав базу целиком (правой кнопкой -> Сохранить).

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

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

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

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Автор мог убрать статью в черновики.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    При клике по экрану игры происходит поиск всех элементов, которые могут принимать клики. Если клик попал во что-то, то происходит поиск всех дочерних элементов, которые могут принимать клики. И так далее, пока не клик не попадет к конкретную кнопку. Это общая схема. Как вы это сделаете - дело вкуса. Здесь важно не столько ООП, то есть наследование классов, сколько реализация иерархии элементов самого интерфейса (GUI или HUD), то есть наследование объектов. В самих объектах нужны ссылки на дочерние и родительские элементы, примерно как в DOM браузера.

    Далее нюансы. Например, элемент может иметь одновременно собственный обработчик и дочерние элементы. Можно сделать так, что если есть собственный обработчик, то дочерние - игнорируются. Либо можно сделать так, что если клик не попал по дочерним, то вызывается собственный обработчик. Всё имеет плюсы и минусы. Опять же - как удобно, так и делайте.
    Ответ написан
  • Несёт ли программист отвественность за противозаконное применение своего кода?

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

    Напишите заказчику, пусть удалит ваш e-mail. И дело с концом. Вы формально перестанете иметь к этому отношение.

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

    А так в нашей стране такой бред, что гарантий никто не даст. За лайки сажают. Ну, сегодня уже не сажают, но завтра новый бред придумают. Короче, даже если на вас будет дело, думаю, у вас все шансы на выигрыш. Но дела не будет, имхо.
    Ответ написан
  • Как сделать перебор input'ов в tr?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    //Получить все вложенные инпуты элемента.
    function GetInputs(el) {
    	let arr = [];
    	if (el && el.tagName && el.childNodes) el.childNodes.forEach(child=>{
    		if (child.tagName == "INPUT") arr.push(child);
    		else arr = arr.concat(GetInputs(child));
    	});
    	return arr;
    }
    
    //Проверка 1
    GetInputs(document.getElementById('product_1')).forEach(input=>{
    	console.log('product_1: name=' + input.name + ', value=' + input.value);
    });
    
    //Проверка 2 - все продукты
    for(let i=1; i<=2; i++) {
    	console.log('PRODUCT #' + i);
    	let product_inputs = GetInputs(document.getElementById('product_'+i));
    	product_inputs.forEach(input=>{
    		console.log('product_'+i+': name='+input.name+', value='+input.value);
    	});
    }
    Ответ написан
    Комментировать
  • Как исправить данный баг?

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Существуют рецепты выбора и оптимизации базы данных, в зависимости от типа её использования. А игры бывают разные, поэтому универсального рецепта для любых игр не существует.
    Ответ написан
    Комментировать
  • Github pages - указать корневую папку?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вроде можно только корень и docs. Другие папки нельзя.
    Так что пользуйтесь /docs
    В настройках выбирается.
    Ответ написан
    2 комментария
  • Есть ли сервис для просмотра торрент онлайн?

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

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

    Это самый просто способ. Перезаписанные старые данные практически нельзя восстановить.
    Ответ написан
  • Какой самый быстрый браузер?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Слабый - это сколько оперативки?
    Доставьте (докупите) хотя бы до 4GB. И тогда уже используйте любой браузер.

    Где-то с 32GB начинается комфортная жизнь, можно параллельно и фотошоп, и премьер, и рам-диск, и виртуалку, и игры всякие запускать. Простите, размечтался. Слабый ПК - зло.
    Ответ написан
    Комментировать
  • Как сделать разделение ролей по группам?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Думаю, там просто используются фейковые роли с каким-то символами из юникода.
    Инфу можно нагуглить.
    Ответ написан
    3 комментария
  • Чтобы получить самый безопасный,приватный мессенджер- надо его сделать самому [параноик]?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вот вы сделали свой чат, дали другу ссылку, причем полностью ему доверяете, он честный и преданный вам человек. А у него на компе троян, который делает скриншоты экрана. Да и сам экран повернут к окну без штор. Со смартфона смотрит камера, и микрофон случает. А что отвечать ментам, когда они просто придут и спросят, чё да как?

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно вывести предупреждение о том, что в другой вкладке уже оформляется заказ и этот процесс не завершен. И варианты на выбор. Какие именно варианты, уже думайте сами. Например:
    1. Добавить товар и перерасчитать стоимость.
      При этом старые товары можно вообще отменить и как бы перейти в режим пополнения корзины с нуля или не делать так.
      После добавления можно перейти к оформлению, а можно остаться в каталоге.
    2. Не добавлять товар и перейти к оформлению.
    3. Создать новый заказ, отдельно от того, который оформляется в другой вкладке (новая отдельная корзина).
    4. Отложить в желаемое.
    5. И т.п.
    Ответ написан
    3 комментария
  • Является ли хорошей практикой включать в ответы REST API вложенные сущности?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    На одном уровне будет выглядеть, конечно, проще:
    {
        "id": 1,
        "author_id": 2,
        "author_name": "Vasya",
         // more data
    }

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

    Или, скажем, если одно из полей является массивом - тогда сам бог велел. Например, так:
    {
        "id": 1,
        "authors": [
            { "id": 2, "name": "Vasya" },
            { "id": 3, "name": "Petya" },
         ],
         // more nested entities
    }
    Ответ написан
    Комментировать