• Почему событие 'data' срабатывает лишь после полной загрузки данных?

    Lynn
    @Lynn
    nginx, js, css
    У вас точно никакого проксирования нет? Или может это браузер как-то умудряется чудить.

    Я проверил на таком скрипте
    const http = require('http');
    
    const server = http.createServer((request, response) => {
        let size = 0;
        let n = 0;
        request.on('error', (err) => {
        }).on('data', (chunk) => {
            size += chunk.length;
            n++;
            console.log('chunk', n, size);
        }).on('end', () => {
            console.log('end', size);
            response.statusCode = 200;
            response.setHeader('Content-Type', 'text/plain');
            response.end('done\n');
        });
    });
    
    server.listen(4000);


    $ truncate --size 1000000 data
    $ curl localhost:4000 --data-binary @data


    и вижу вот такой вывод:
    chunk 1 32768
    chunk 2 98304
    chunk 3 163840
    chunk 4 229376
    chunk 5 294912
    chunk 6 360448
    chunk 7 425984
    chunk 8 491520
    chunk 9 557056
    chunk 10 622592
    chunk 11 688128
    chunk 12 753664
    chunk 13 819200
    chunk 14 884736
    chunk 15 950272
    chunk 16 1000000
    end 1000000
    Ответ написан
    3 комментария
  • Как извлечь geojson из ArcGIS?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Координаты, похоже, в проекции WebMercator (3785).
    Ответ написан
    3 комментария
  • Как определить положение попапа запрашивающего разрешение у пользователя?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Это же нативное окно браузера и из песочницы не должно быть доступно. Да и вообще, насколько я помню, со следующего года никаких всплывашек в браузере не будет, пользователь сам должен пойти и включить уведомление, т.к. 99% их не включают никогда (ну по данным мозилы).
    Ответ написан
    Комментировать
  • Реален ли поиск палиндромов в огромном тексте на js в браузере?

    @SpaceX_1
    junior front-end developer
    isPalindrome = (string) => {
      string = string.toLocaleLowerCase();
      return Array.from(string).toString() === Array.from(string).reverse().toString()
    }

    Это код для isPalindrome. У вас слишком большая цикломатическая сложность, избегайте такого к-ва вложенностей.
    Ответ написан
    Комментировать
  • Реален ли поиск палиндромов в огромном тексте на js в браузере?

    @strelok011
    Теоретически - можно осуществить. В лоб - не получится. Нужно применять инженерные решения для bigdata, оптимизации, возможно кластеризацию задачи и проч. Т.е. разом разобрать этот объем не получится. Не хватит памяти и производительности.
    Ответ написан
    Комментировать
  • Почему не перерисовывается компонент Vue?

    @2perca
    вам стоило использовать v-if вместо v-show, тк v-show переключает только display: block/none, а v-if ренедерит заново компонент, вызывая хуки жизненного цикла
    Ответ написан
    Комментировать
  • С помощью каких технологий лучше всего делать интерактивные географические карты для веб-игр?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Поиск пути и обход препятствий - алгоритм A* (AStar) и его модификации. При этом мир предполагается разбить на зоны.

    Что касается карты, то однозначно ответить нельзя.

    Для начала нужно определиться - процедурная генерация или левел-дизайн. И то, и другое имеет свои плюсы и минусы. Генерация делает игру разнообразнее, но сделать геймплей интересным сложнее, а сюжет впилить практически невозможно. Ручные карты, наоборот, могут быть очень продуманными и красивыми, содержать уникальные локации, города, героев, но требуют дополнительных человеко-часов.

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

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

    Moskus
    @Moskus
    Ландшафт можно сгенерировать так, например https://www.playfuljs.com/realistic-terrain-in-130...
    А для карт есть фреймворк leaflet.js

    Но я бы карты всё же генерировал заранее в каком-либо трехмерном редакторе, там больше возможностей. https://www.blendernation.com/2019/04/01/generatin...

    А потом - резал на тайлы и показывал бы через Leaflet.
    Ответ написан
    Комментировать
  • Заработать на шаблонах для сайтов, реально?

    antonydevanchi
    @antonydevanchi
    10 лет в айтишке
    Фёдор Ананин привет! Спустя время, поделись, пожалуйста, результатами? К чему в итоге всё пришло?
    Ответ написан
    Комментировать
  • Как сделать такой эфект при скролле?

    RAX7
    @RAX7
    Смотри на свойство stroke-dashoffset у .dots-outline
    https://svg-art.ru/?p=1253
    Ответ написан
    Комментировать
  • Как правильно настроить рекламу в игре на Unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    просто уточню для понимания, что у заказчика в админке есть вариант добавить несколько людей
    и к тому же назначить им роли (админ, разраб, менеджер) чтобы лишнего не позволять).

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

    Ну и так UnityAds наверно вполне себе удобный вариант (один раз в админке юнити сервисов выдать доступ/пригласить в компанию/команду), если не заморачиваться с агрегаторами нескольких рекламных сетей и прочими заморочками жуткими))
    Ответ написан
    Комментировать
  • Как правильно настроить рекламу в игре на Unity?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Заказчик должен в админке юнити создать проект и добавить вашего пользователя в него. Деньги идут не на пользователя, а на проект.

    Насчет "лучше чем UnityAds" - это вы должны спрашивать у вашего заказчика. Вариантов много.
    Ответ написан
    Комментировать
  • Как проще всего приклеить танк к поверхности земли?

    @rPman
    Просто идея, сделайте так чтобы на танк не влияла физика в принципе, т.е. обрабатывайте и отрисовывайте его сами. Вычисляете две точки касания танка с его дном, соответственно при перемещении двигайте эти точки по графику, который делает поверхность (скорость по x пересчитывайте а основе угла наклона танка), таким образом ваш танк будет поворачиваться. в моменты когда второй точки найти не удается, вам придется решить, что делать, либо продолжать его двигать, оставив прежний угол, либо делать поворот в сторону движения, до тех пор пока снова не станет двух точек касания. При определенном угле останавливайте (чтобы вертикально не ехало)

    Выглядеть это будет почти натурально, зато не придется делать МОРЕ лишних движений и вычислений, особенно если вы хотите много таких танков.
    Ответ написан
    1 комментарий
  • Долгая верификация аккаунта на upwork?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Порядок действий в случае ошибки Upwork:
    1. Попытаться разобраться самому.
    2. Написать на тостер <--- вы тут
    3. Позвонить на Рен-ТВ
    4. Написать в спортлото
    5. Написать вопрос в саппорт Upwork <-- вот тут скорее всего вопрос решится
    Ответ написан
    4 комментария
  • Физика движения по параболе. С какой скоростью и под каким углом нужно бросить тело?

    Beshere
    @Beshere
    Разработчик
    Предлагаю воспользоваться методом, который применяют настоящие артиллеристы - берём цель в вилку и начинаем "загонять цель в угол", "сжимая клещи". Пусть проделывает это "виртуально", обсчитывая траекторию но не запуская снаряд, пока не добьётся попадания.

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

    P.S. Еще прикольно будет танку походу пристрелки заполнять артиллерийскую таблицу (угол, скорость, координаты разрыва), тогда он сможет накрывать цели быстрее со временем.
    Ответ написан
    Комментировать
  • Физика движения по параболе. С какой скоростью и под каким углом нужно бросить тело?

    hint000
    @hint000
    у админа три руки
    Решим задачу в два этапа.
    1. Будем считать, что у нас только одна вершина горы. Задача построения параболы по трём точкам. Две точки - два танка, третья точка - вершина горы. Окей гугл построение параболы по трём точкам.
    Решили.
    2. Несколько вершин. Даже по имеющейся картинке сложно на глаз определить, какая из двух вершин важнее для нашего выстрела - левая, или та, что в середине картинки. Поэтому надо определить список вершин. Тут есть простор для придумывания алгоритма. Например, так. Находим самую высокую точку, при условии, что она выше обоих танков. Добавляем её в список. Далее рекурсивный обход (здесь танки условно считаем тоже вершинами). Проводим прямую от левого (правого) танка до последней вершины. Повторяем поиск максимальной высоты, но считаем высоту над проведённой прямой. Условие выхода из рекурсии - нет точек выше прямой. Таким образом нашли список вершин. Для каждой вершины из списка решаем задачу построения параболы. Из всех парабол выбираем самую высокую.
    Решили.
    3... так, мы же хотели решить в два этапа? Но это была голая математика, и для физической задачи мы получили не совсем то, что нужно. Внезапно. Решение было бы правильным, если бы танк мог управлять скоростью снаряда. Тогда мы могли бы выстрелить по любой рассчитанной выше параболе. Но у танка скорость снаряда фиксированная (или я отстал от жизни?), и мы управляем только углом. Поэтому надо сначала решать задачу из школьного учебника физики, про выстрел из пушки. Угол определяем без учёта гор. В общем случае будет два решения, два возможных угла - по настильной траектории, и по навесной. У нас же горная местность, так что настильная траектория (угол от 0 до 45 градусов) нас не устраивает, остаётся одно решение. Т.е. единственный шанс попасть в цель - стрелять с найденным сейчас углом, не зависимо от расположения вершин. Если на пути снаряда окажется гора, значит шансов попасть в цель было ровно ноль, при любом другом угле будет промах, даже если не наткнёмся на гору. Получается, что все рассуждения на этапах 1 и 2 были напрасны? Не совсем. Мы можем ими воспользоваться, чтобы определить, налетит снаряд на гору или не налетит (при точном прицеливании). Если выясним, что налетит на гору, значит можно не стрелять, сэкономить снаряд, но это уже слегка за пределами абстрактных условий задачи.
    Ответ написан
    3 комментария
  • Как в Visual Studio Code искать код, где определена функция?

    Выделите название функции\метода и нажмите ALT + F12 или же используйте контекстное меню.
    spoiler
    5c2ddcb52f6f1536950342.jpeg
    spoiler
    5d95d9a37cb65562810582.jpeg
    Ответ написан
    4 комментария
  • Тестовое задание (Junior Frontend), приемлемое ли?

    @kirill-93
    Вертел я такие задания при устройстве на работу.
    Однажды тоже устраиваясь в "крутую" контору прислали большое задание. Все выходные убил на него. Потом еще две недели мурыжили собеседованиями и в итоге не взяли.
    Я с тех пор никогда не соглашаюсь на тестовые задания, которые займут больше получаса моего времени.
    Объемные задания должны оплачиваться. Если они очень требовательно отбирают сотрудников, то сначала надо дать простое задание/прособеседовать и уже если человек их устраивает, давать объемное задание и платить.

    UPD
    Не слушайте, пожалуйста, бред об опыте и пользе для вас. Из таких "будущих хороших специалистов" потом веревки вьют, типа "поработай по вечерам, это ж опыт для тебя!" или "давай ты теперь и по субботам выходить будешь, а мы тебя за это серьёром называть будем!". Очень работает с наивными молодыми людьми.
    Вы поймите, что все эти разговоры про опыт и пользу для вас - это уловки с целью сэкономить и вас обмануть. Всем плевать на ваш опыт, им нужно денег меньше вам заплатить и все.
    Огромное тестовое задание - это неуважение к кандидаду.
    Давай представим обратную ситуацию: я прихожу к потенциальному работодателю и говорю: "Давайте я у вас тут недельку посижу без каких-либо обязательств, а вы мне зарплату платите. А потом посмотрим, может быть останусь, а может уйду". Нормально? Ситуация выглядит именно так, потому что работодатель не делает одолжения принимая на работу, он "покупает" ваше время и ваш опыт и все.
    Ответ написан
    13 комментариев
  • Как ограничить количество записей для пользователя в таблице PostgreSQL?

    @MadridianFox
    Web-программист, многостаночник
    Засовывать бизнес-логику в бд имеет смысл в двух случаях: 1 - для повышения быстродействия в очень критичных к этому местах, 2 - когда бд используется разными системами, для которых нельзя выделить общий код.

    Ваш случай не такой, поэтому правильнее сделать проверку на JS.
    Ответ написан
    Комментировать