• Как искать фразы в инвертированном индексе?

    dimonchik2013
    @dimonchik2013
    полковник Андрейченко
    скачай
    https://www.ozon.ru/context/detail/id/5497130/

    есть отсканированная в сети
    там ответы на все вопросы

    изначально - все как и пишешь
    индекс - это список документов в которое входит слова

    два слова - два списка
    их пересечение - обычный XOR, хз кто сказал что оно ресурсоемко

    а вот уже чтобы ответ был РЕЛЕВАНТЕН - там дофига чего наворочено сверху, что Иван Шумов тебе и пытается объяснить

    и да, в современном поиске индекс это список документов соответствующих ВЕКТОРУ запроса

    никто его онлайн не делает - все просчитано заранее
    онлайн только пытаются свести запрос к наилучшему (нескольким) заренее просчитанным векторам
    Ответ написан
    4 комментария
  • Добавление нового объекта в state, это мутация?

    @xenonhammer
    Используйте например
    return {...state ,
       use: action.use,
        title: action.title,
        tab: action.tab
    }

    Это клонирование стейта, с новыми значениями
    Ответ написан
    Комментировать
  • Где писать функционал приложения? На клиенте или на сервере?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Это очень холиварный вопрос.

    Толстые клиенты обычно делают когда приложение держит в себе огромный кеш данных для работы в оффлайне или условиях плохого интернета.

    Толстый клиент + "простой" сервер обычно дороже в разработке и поддержке чем тонкий клиент и "сложный" сервер.

    С точки зрения нагрузки, функционал на клиент выносят когда соблюдаются условия:
    - обработка данных дорогая (сортировка массива к этому не относится)
    - в логике обработки данных нет ценности
    - специфические случаи когда критично быстродействие ux, а обработка данных на клиенте получается быстрее обработки на сервере + время на пересылку данных.

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

    2ord
    @2ord
    продвинутый чайник
    Интеллектуальный труд, который вложен в алгоритм ранжирования я бы не стал перекладывать на клиентов.
    Ответ написан
    Комментировать
  • Где писать функционал приложения? На клиенте или на сервере?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Что клиент не должен видеть в исходном коде страницы - то на сервер.
    Остальное - на клиенте.
    Ответ написан
    Комментировать
  • Зачем нужна таблица маршрутизации?

    Jump
    @Jump
    Системный администратор со стажем.
    Зачем нужна таблица маршрутизации?
    Для того чтобы указывать маршрут, как бы удивительно это не звучало.
    Маршрут это путь следование, указание куда идти.
    Вот например подходите вы к человеку на улице и спрашиваете его как дойти до института изящных искуссты.. Человек не в курсе где расположен этот институт, поэтому он достает из своей таблицы маршрутизации маршрут по умолчанию и озвучивает его вам - Идите на х...

    Примерно так же работает и таблица маршрутизации.
    В таблице ищется маршрут к указанному вами адресу, если его нет, то вам дают маршрут по умолчанию - пройдете по нему, и спросите там.
    Поэтому если вы запросили скажем адрес 195.162.24.5 то вас отправят как раз по дефолтному маршруту

    Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
    0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 20
    Ответ написан
    Комментировать
  • Зачем нужна таблица маршрутизации?

    SunRiser
    @SunRiser
    Например вы решили подключить себе 2 провайдера. Купили сетевую карту и воткнули 2 шнурка в ПК.
    Когда вы пытайтесь выйти в интернет, через какого провайдера вы попадете в сеть? Это как раз и диктует таблица маршрутизации.

    Пример по ващей выгрузке:
    1) Вы пытайтесь зайти на yandex.ru,
    2) ваш ПК разрешает имя в IP 77.88.8.8
    3) Ваш ПК ищет, куда отправить трафик. И не находит, т.к. маршрута до 77.88.8.8 нет
    4) Раз подходящий маршрут не был найден, все уходит на маршрут по умолчанию 0.0.0.0/0

    Если бы у вас было 2 провайдера, вы бы могли жестко задавать, через какого именно выходить в сеть. Т.е. первого могли бы использовать для яндекса, а второй для всего остального.

    Теперь разберем колонки которые у вас в примере:
    Сетевой адрес - Это сам IP,или подсеть. Т.е. вы можете указывать сразу пул адресов.

    Маска сети - определяет количество IP адресов которые попадают под правило. Например 255.255.255.0 - это 254 адреса. Т.е. если указать 77.88.8.0 255.255.255.0, это будет значить что под правило попадут адреса с 77.88.8.0-254. Если указать 255.255.255.255, то будет выбрн только один адрес.

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

    Интерфейс - откуда будет идти трафик.

    Метрика - задает приоритет маршруту. Например у вас 2 провайдера и VPN. Обычно вы выходите на яндекс через VPN, но если он уадет, вы будете выходить через 2го проавйдера.Для этого нужно создать 2 одинаковых маршрута с разной метрикой. Чем меньше метрика, тем больший приоритет отдается маршруту. Так же приоритет должен выдаваться на основе маски, т.е. чем больше маска тем она весомее. Например 77.88.8.8/32 будет приоритетнее чем 77.88.8.0/24. Но если упадет и VPN и 2й провайдер, трафик просто начнет отбрасываться. Да, сервис станет недоступный, но вы не "спалите" IP адрес первого провайдера
    Ответ написан
    Комментировать
  • Зачем нужна таблица маршрутизации?

    @Mercury13
    Программист на «си с крестами» и не только
    Будем считать сначала по типу (немаршрутизируемый → маршрутизируемый), потом от самых приоритетных (20) до наименее приоритетного (306).

    Доступность On-link (немаршрутизируемая), приоритет 276.
    №5. 192.168.1.x — отвечает за нашу подсеть.
    №6. 192.168.1.100 — отвечает за собственный IP.
    №7. 192.168.1.255 — ещё один зарезервированный адрес «всем в подсети».
    №9. (240-255).x.x.x — зарезервированный диапазон мультивещательных сетей
    №11. 255.255.255.255 — зарезервированный адрес «всем в подсети».

    Доступность On-link (немаршрутизируемая), приоритет 306.
    №2. 127.x.x.x
    №3. 127.0.0.1
    №4. 127.255.255.255 — эти три строчки служат, чтобы задать зарезервированные адреса 127.x.x.x.
    №8, №10. Они не действуют: есть более приоритетные 9 и 11. Но 9 и 11 исчезнут, когда отключится .100, и 8 и 10 начинают действовать.

    Доступность маршрутизируемая, приоритет 20
    №1. 0.0.0.0. Под эту строчку подходит что угодно, и если ни один из on-link’ов не пройдёт — берётся она. Посылаем пакет на роутер.
    Ответ написан
    Комментировать
  • Зачем нужна таблица маршрутизации?

    @res2001
    Developer, ex-admin
    Гуглите: "IP-маршрутизация".
    Коротко тут описано что это такое.
    Таблица маршрутизации используется, когда стек IP ищет куда отправить пакет, применяя алгоритм IP-маршрутизации.
    Тут дополнительно надо понимать, что физически сетевые адаптеры (Ethernet/WiFi/и прочие) умеют посылать пакеты только своему соседу по "проводу" (широковещательному домену/радио каналу). Из-за этого ограничения и появился протокол IP.
    Ответ написан
    Комментировать
  • Как ЭВМ понимает язык компилятора?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    См. "раскрутка компилятора". Кратко, первый компилятор пишется для минимального подмножества языка на другом языке(или в самом начале веков - на ассемблере, в машкодах), затем на этом подмножестве пишется компилятор, который может компилировать это подмножество, и затем фичи языка наращиваются итеративно. Этакий догфуддинг.
    Ответ написан
    Комментировать
  • Приведите пример самого экономного кода?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    HTML + CSS only:
    Ответ написан
    1 комментарий
  • Как подсчитать количество элементов с одним классом в документе?

    petermzg
    @petermzg
    Самый лучший программист
    var elms = document.querySelectorAll('.className');
    elms.lenght;
    Ответ написан
    1 комментарий
  • Почему не получается удалить событие?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    (function(e) {}) === (function(e) {}) // false

    Хотя код функций идентичен – они не равны, т.к. сидят в разных областях памяти.

    Как починить:
    function func(e) {
      console.log(e.target.id);
    }
     
    // Назначить событие
    document.body.addEventListener('click', func);
    
    // И сразу его удалить
    document.body.removeEventListener('click', func);
    Ответ написан
    4 комментария
  • Как запретить масштабирование на веб-сайте?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    В связи с уточнением: никак. Масштаб страницы - фундаментальная вещь, масштаб нужен, например, для слабовидящих людей. В том же firefox есть возможность изменять не только весь масштаб, а только текст.
    Желание запретить масштабирование, даже если бы это было возможно, противоречит концепции доступности информации.
    Поэтому верстать надо так, чтобы сайт смотрелся читаемо (пусть и не так красиво) при любом масштабе, а также при масштабировании только текста.
    И это единственно правильный ответ.
    Ответ написан
    2 комментария
  • Как открыть эту страницу с помощью cURL?

    @DanKud
    Добавьте в $options - CURLOPT_ENCODING => 'gzip, deflate'
    Ответ написан
    Комментировать
  • Как узнать margin-right элемента через js?

    sergski
    @sergski
    web-developer
    const el = document.querySelector(".div");
    const getprop = window.getComputedStyle(el, null).getPropertyValue("margin-right");
    Ответ написан
    2 комментария
  • Как узнать margin-right элемента через js?

    v3shin
    @v3shin
    Веб-шаман
    getComputedStyle(myElement); // получить все стили
    getComputedStyle(myElement).marginRight; // получить margin-right
    Ответ написан
    Комментировать
  • Как поставить высоту блока div в зависимость от ширины?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Думаю что вопрос актуальный. Так что напишу.
    Есть библиотека Stickjaw.js
    Подключаете в футоре и вызываете скриптов ( в документации написано, ни чего сложного )

    Чтобы сделать высоту такой же как ширину нужно в блок добавить атрибут data-proportion-h="1". 1 - это пропорция. Если вам нужно сделать, чтобы высота была как две ширины то пишите 2 т.е data-proportion-h="2"

    Например
    <div data-proportion-h="1" style="widht:200px;"></div><!-- Высота 200px -->
    <div data-proportion-h="2" style="widht:200px;"></div><!-- Высота 400px -->
    <div data-proportion-h="0.5" style="widht:200px;"></div><!-- Высота 100px -->
    Ответ написан
    Комментировать
  • Flexbox vs float?

    @sarathorn
    php программист, веб-дизайнер, коллекционер
    Давайте рассуждать логически:
    1) Flexbox в разы удобнее флоатов, таблиц и display:inline-block в 95% случаев
    2) Флексбокс поддерживается всеми современными браузерами, в том числе и мобильными (даже IE на Windows Phone 8.1)
    3) Альтернативными браузерами пользуются многие, например, недавно был в компании, где компьютеры... ооочень старые: windows XP, ЭЛТ-мониторы 1024х768... Но даже они пользуются альтернативными браузерами. Пример особенно показателен тем, что люди в этой конторе едва освоили передачу файлов по почте.
    4) Майкрософт ведёт активную политику по обновлению Windows 7, 8, 8.1 до Windows 10, а значит, доля IE снижается и растёт доля Edge, который за вычетом пары незначительных косяков рендерит 1в1 как Хром.
    5) Если продолжать поддерживать динозавров, то у людей не будет мотивации обновлять браузер/операционку/компьютер. Самая распространённая причина по которой люди из моего окружения не хотят обновляться до 10 очень простая: на 7/8/8.1 всё работает как надо, зачем что-то менять? Вывод: если все разработчики сайтов разом наплюют на поддержку неактуального старья, то всем станет легче жить.
    Ответ написан
    Комментировать
  • Как найти и заменить вхождение с помощью preg_replace?

    @IS-Builder
    ~ PHP-8 & REGEXP - This is a really powerful kit ~
    $string = 'Вхождение <p>&nbsp;</p> нужно заменить на "пустоту".';
    
    $res = preg_replace('~<p>&nbsp;</p>~', '', $string);
    
    echo $res;
    Ответ написан
    7 комментариев