Задать вопрос
  • Как спарсить все точки с google карты на сайте padi.com?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Не вижу особых препятствий:

    Eсть URL
    POST https://apps.padi.com/scuba-diving/dive-shop-locator/Dsl/GetDiveShops


    Принимает json параметры
    cLat:33.638802
    cLong:-117.603366
    courseIds:""
    distanceMeters:1000000
    eLng:-117.1913786953125
    levelIds:"3,2"
    mapSize:"smaller"
    nLat:33.99591887201719
    offeringIds:""
    sLat:33.280197932608054
    searchString:""
    specialtyId:-1
    storeNumber:-1
    wLng:-118.0153533046875

    Нужно провести ревес инженириг (читай, потестить с разными параметрами) на что влияют Lang/Lng/Lat параметры, и написать просто цикл запросов который бы для всех участков карты запросил с сервера результаты.
    В тестах поможет ответ - там как раз границы указаны. (массив SearchRecords - результаты поиска, Bounds - границы участка поиска)
    По сути задача
    1) понять какие входные параметры запроса возвращают какой участок карты в Bounds)
    2) подобрать массив входных параметров чтобы перебрать все участки карты последовательно
    3) запустить цикл и спарсить ответы из SearchRecords в одно хранилище
    4) убрать дубликаты
    5) преобразовать в желаемый формат (csv для excel)
    Ответ написан
    7 комментариев
  • Объясните, почему не срабатывает await?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Потому что await работает только с Promise-like объектами, то есть объектами имеющими метод then()
    Под капотом await работает примерно следующим образом:
    // пусть value - результат операции справа от await
    // resolve - функция, которая получает 1 аргумент, который вернет await
    // (но не раньше выполнения микротасков event loop)
    // reject - функция, которая получает 1 аргумент, который пробросит исключение в await
    // (но не раньше выполнения микротасков event loop)
    if(value && typeof value.then === 'function') {
      value.then(resolve, reject);
    } else {
      resolve(value);
    }

    Про event loop, а так же что в нем микротаски - гуглите. Скажу лишь одно, микротаски выполняются на каждой итерации event loop притом все сразу, пока не закончатся.

    console.log синхронный, оборачивание его в await не даст результата, кроме разве что следующее действие (которого в примере нет) будет выполнено в следующем микротаске, но по сути сразу же
    setTimeout - асинхронный, но на колбэках, необходимо либо обернуть его в Promise либо в Promise-like объект.
    Вариант с Promise:
    async function my_function() {
      console.log('1');
      await new Promise(resolve => setTimeout(resolve, 1000));
      console.log('2');
      console.log('3');
    }

    Вариант с Promise-like:
    async function my_function() {
      console.log('1');
      await {then(resolve) { setTimeout(resolve, 1000); }};
      console.log('2');
      console.log('3');
    }
    Ответ написан
    Комментировать
  • Почему не срабатывает querySelector?

    rockon404
    @rockon404
    Frontend Developer
    Отлично работает

    Подскажите, как правильно искать в данном! случае (именно forEach).

    Document.querySelectorAll() возвращает NodeList, а NodeList.forEach не поддерживается ie.
    Можно использовать метод forEach массива и вызывать его на NodeList:
    [].forEach.call(document.querySelectorAll('div.foo'), e => {
      [].forEach.call(e.querySelectorAll('div.bar'), e => console.log(e));
    });
    Ответ написан
    2 комментария
  • С помощью регулярного выражения получить массив, элементами которого будут являться все найденные теги p?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    https://habr.com/post/68345/
    Читайте при жадные и нежадные квантификаторы.

    P.S. А ещё можно воспользоваться средствами самого браузера
    let str = '<h1>Я</h1>\n<p>Помню</p>\n<h1>Чудное</h1>\n<p>Мгновенье</p>';
    let div = document.createElement('div');
    div.innerHTML = str;
    let ps = div.getElementsByTagName('p');
    Ответ написан
    Комментировать
  • Как получить user name у belongsTo коллекции?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Ну так:
    $user = User::with('photos')->where('id', $id)->first();
    
    return \view('....', ['photos' => $user->photos, 'user' => $user]);
    Ответ написан
    Комментировать
  • Как решить проблему с памятью?

    angrydev
    @angrydev
    1. Отключите лишние extensions (modules), включите opcache.
    2. Как вариант - посмотрите в сторону zRam, чтобы уменьшить занимаемый объём RAM. Но в этом случае - вы будете оплачивать экономию нагрузкой на CPU.
    3. Через nginx распределите нагрузку на несколько серверов. Но в таком случае Вам придётся выделить отдельный сервер под БД и файловое хранение (не обязательно, но желательно), а так же решать проблему с пропускной способностью сети.
    Ответ написан
    5 комментариев
  • Чем может помощь axios?

    Djaler
    @Djaler
    Сеньор-помидор
    Это вообще про разное. Axios это http-клиент, а Vuex - хранилище данных
    Ответ написан
    Комментировать
  • Где искать открытые исходные коды HTML, CSS, PHP, postgresSQL для вебсайтов?

    lamer350
    @lamer350
    กำลังสูงสุด
    Вам нужно для начала базовые понятия понимать по веб технологиям.
    HTML/CSS/JS - это front-end часть сайта, которая отдается сервером вашему браузеру, потому всегда, на любом сайте - вы можете в свободном доступе смотреть эти файлы (код), они уже в памяти вашего компьютера находятся, после того как вы открыли сайт в вкладке браузера.
    А есть серверная часть сайта (back-end), к ней относятся разные языки программирования и сервисы, к которым вы не можете получить доступ никаким образом*, ни к базам данных, ни к php вы не можете получить доступ на любом сайте, иначе каждый бы мог сделать копию гугла на своем сервере, или увести все данные банковских счетов/карт в банке.
    Если вам интересна эта тема, начните с азов. Как работает интернет, какие веб технологии есть, как устроены сайты и тд, литературы очень много.
    Ответ написан
    Комментировать
  • Чем отличаются компоненты высшего порядка и декораторы?

    aleksand44
    @aleksand44
    Смысл похож, а различие только в том что HighOrderComponents - паттерн исключительно React разработки, а Декораторы можно использовать везде где есть JS.
    Ответ написан
    Комментировать
  • Чем отличаются компоненты высшего порядка и декораторы?

    miraage
    @miraage
    Старый прогер
    Если простыми словами..

    Декоратор - функция, которая принимает другую функцию (назовём её "базовая") на вход и возвращает третью функцию, которая у себя под капотом вызывает/использует базовую.

    HOC - частный случай декоратора, когда базовой функцией является React компонент.
    Ответ написан
    Комментировать
  • Почему Gulp.js заменяет цикл while на for?

    rockon404
    @rockon404
    Frontend Developer
    Оба варианта эквивалентны. В чем проблема?
    Почитать: Параметры компрессии gulp-uglify
    Ответ написан
    3 комментария
  • Node js однопоточен, а php многопоточен?

    @PloAl
    Ваше первое утверждение не совсем корректно.
    Если "тяжелом" коллбеке полностью синхронный код тогда верно. Если используется асинхронный код остальные запросы, ждать не будут.

    В php для обработки каждого запроса запускается новый процесс.

    Также для нескольких процессов можно использовать PM2.
    Ответ написан
    2 комментария
  • Где можно взять таблицы с двумя тремя тысячами строк?

    @bkosun
    Сгенерируйте нужный набор данных самостоятельно.

    Например, можно использовать MySQL Data Generator (dbForge Studio for MySQL).
    Ответ написан
    Комментировать
  • Как удалить обработчик события?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Если в объекте используется всего 1 событие (или все события допустимо обрабатывать одним обработчиком), то можно обойтись без bind и прочих хитростей по сохранению контекста:
    class ProgressBar {
        constructor(wrapper, line) {
        	this.wrapper = wrapper;
            this.line    = line;
    
            // передаем объект а не функцию оО
        	wrapper.addEventListener('mousemove', this);
            wrapper.removeEventListener('mousemove', this);
        }
    
        // что бы использовать объект в качестве слушателя,
        // у него должен быть метод handleEvent - именно он будет получать события
        handleEvent(event) {
        	this.line.style.width = event.clientX + 'px'
        }
    }

    https://developer.mozilla.org/ru/docs/Web/API/Even...
    Ответ написан
    1 комментарий
  • Есть ли метод «this» у «while»?

    rockon404
    @rockon404
    Frontend Developer
    Есть ли метод «this» у «while»?

    this - это не метод.

    Можно ли к внутри цикла «while», как-нибудь обратиться к найденному [в условии] результату?

    Нет.

    Решение вашей задачи:
    [].forEach.call(document.querySelectorAll('article p'), function(node) {
      node.remove();
    });
    Ответ написан
    1 комментарий
  • Есть ли метод «this» у «while»?

    miraage
    @miraage
    Старый прогер
    Вы хотите написать что-то такое..

    var node;
    
    while((node = document.querySelector('article p')) !== null) {
      node.remove();
    }
    Ответ написан
    2 комментария
  • Многократное срабатывание функции hover() при наведении на объект, как решить?

    Вам обязательно jquery использовать?
    Можно через css сделать .

    Только ограничьте кнопку по высоте, чтобы высота была всегда одинаковая, и в нормальном состоянии, и при наведении.
    Ответ написан
    Комментировать
  • Почему метод forEach пропускает (не обрабатывает их) вложенные элементы?

    @balamyt92
    ; select * from users; --
    На самом деле все просто. outerHTML перезаписывает элемент, то есть когда вы записываете у родителя outerHTML, то ребенка на которого ссылается ранее сделанная ссылка уже не существует, там уже новый элемент.
    Ответ написан
    6 комментариев
  • Как в Laravel оптимизировать запросы или простой запрос в 1.5 сек это нормально?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    d:\wamp\bin\php\php7.1.9\zend_ext\cachegrind.out.60236

    Ну таки откройте отчет-то да посмотрите что именно кушает время. Явно не запрос.
    Хотя на винде может быть коннект в базе тупит в зависимости от того как прописан хост 127.0.0.1 или localhost
    Но там тупит по страшному обычно, не 1.5 секунды.

    ну или так
    https://github.com/barryvdh/laravel-debugbar
    Ответ написан
    5 комментариев
  • Как реализованы порталы в игре Portal?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Честные порталы делать очень сложно, нужно хорошо понимать физику и весь пайплайн рендера. Есть очень много граничных случаев, каждый из которых нужно отдельно поддерживать: портал внутри портала, пересечение границ внутреннего и внешнего портала, несколько внутренних порталов, повороты плоскости портала, перемещение предметов, тени и освещение, прозрачные материалы и т. п. Есть две основные техники реализации отрисовки порталов: через рендер текстуры и стенсильный буфер.

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

    Стенсильные порталы будут работать сильно быстрее, но для их реализации нужно хорошо шарить в шейдерах. Расписывать их работу подробно не буду, в целом они делаются точно так же, только трюки с рендер текстурами заменяются на трюки с буферами, предлагаю лучше почитать пару полезных статей на тему: раз и два. В контексте юнити всё немного сложнее, чем на чистом OpenGL, потому что нет прямого доступа ко всем буферам и для получения похожего результата придётся немного поизвращаться. Потенциально облегчить задачу может низкоуровневое API, но у меня не получилось добиться хороших результатов без потери качества картинки. Я возлагаю большие надежды на ScriptableRenderLoop, если судить по документации, это как раз то, что нужно.

    Прошу заметить, что всё вышесказанное касается чисто графической части, для простейшего случая, когда мы имеем FPS камеру без анимаций, без дополнительных механик, которая просто ездит по уровню и может заглядывать в порталы. Что уж говорить про миллион потенциальных багов, если вы захотите включить рядом с порталом систему частиц или взять в руки кубик. Посему советую либо купить плагин и довольствоваться тем, что он умеет, либо приготовиться потратить несколько месяцев на разработку своей портальной системы. И в том и другом случае ограничения движка не позволят вам в разумные сроки получить Portal, в лучшем случае это будет Narbacular Drop.
    Ответ написан
    Комментировать