• Как добавить кнопку 'сохранённая копия' в меню?

    У вас открыта страница https://ficbook.net/404. Она одна на весь сайт, старую копию чего вы бы хотели на ней видеть? Никак нельзя сюда добавить кнопку "сохранённая копия".
    Ищите прямо в Гугле или Яндексе нужный адрес и, если он был сохранён в их кэше, смотрите через поисковик.
    Spoiler alert

    6572c9a7f0129572471411.png
    6572c9c132e5b789098541.png
    Ответ написан
  • Правильно ли решать проблему n+1 с помощью кеширования?

    Менее костыльное решение вы и сами знаете (или можете найти одним поисковым запросом), раз знаете название проблемы - в первом запросе получать идентификаторы, потом вторым запросом получать данные по where in.

    Что же касается вашего текущего...
    Я бы сказал, что оно приемлемо в некоторых ситуациях. Например, если построение информации о товарах - сложный процесс с кучей запросов к БД и/или каким-то сторонним сервисам, то имеет смысл их кешировать и тогда, действительно, будет N + 1. Но, как видите, это прям очень узкий кейс, котрого у вас, скорее всего, нет.
    Ответ написан
    Комментировать
  • Насколько опасно оставлять сервер дома без присмотра?

    как вы с ними живёте
    Не паримся.
    Ответ написан
    Комментировать
  • Как сделать фильтр с поиском размеров +-15% по значению типа 1,2*3,5 -?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега HTML
    Порядок решения такой:
    1. Разбиваете введённую строку на два числа.
    2. Для каждого числа определяете диапазон, умножив его на 0,85 и 1,15.
    3. У каждого элемента списка разбиваете его строку с размерами на два числа функцией из п.1 и проверяете, входят ли они в нужный диапазон.


    Хоть какую-то сложность тут может представлять только нормализация строки, если она требуется. Т.е. если требуется обрабатывать строку, например, и в формате "1.2x3.5", помимо приведённого в вопросе, то придётся немного заморочиться с определением где там числа. Но, на самом деле и тут всё довольно просто: заменяем запятые на точку, а всё, что не цифра и не точка заменяем на пробел. А дальше уже регуляркой легко получить из получившейся строки два числа.
    Ответ написан
  • Как преобразовать код в JSX в HTML, CSS и JS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега CSS
    Опишите свою реальную задачу, потому что сейчас непонятно, чего именно вы хотите добиться, и из-за этого нельзя дать какой-то адекватный ответ.

    Вы хотите полностью отказаться от React и перейти на более «простые» инструменты? Скорее всего, это невозможно — если используется React, то у вас сложные динамические интерфейсы и никакими автоматическими средствами переписать их на ванильный js не выйдет — только руками. Но это будет требовать знаний куда больших, чем просто использование React.

    Если же вы хотите отказаться от JSX, но оставить React, то это автоматизировать уже можно, но задача очень странная.
    Ответ написан
    Комментировать
  • NextJS или просто React на vite?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега React
    а зачем мне это?
    Чтобы у вас заработал серверный рендеринг, это одно из главных слабых мест SPA. «Сервисы с многомиллионными списками пользователей» готовы за этот функционал платить дополнительными серверными мощностями:
    Next.js is the React framework for the web, enabling you to create full-stack web applications. Built on top of React, it powers some of the largest ecommerce sites in the world, like Walmart, Target, Ebay, Nike, Doordash, and is even used in parts of Amazon.com.
    https://vercel.com/guides/building-ecommerce-sites...

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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    У вас прямо в коде есть адрес видео в ссылке (только она почему-то не другое видео ведёт). Однако, вы в функцию parseMediaURL передаёте картинку, а не эту ссылку.
    Соответственно, как только вы будете брать URL видео из нужного места, а не из картинки, путь до картинки может стать любым.
    Ответ написан
  • Почему Response.status это значение, а status = { Response } это ссылка на Response?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Деструкция выглядит так: const { status } = result;
    Вы же создаёте переменную status и в неё записываете объект {result: result}.
    Поэтому возвращает ваша функция вот такую конструкцию:
    {
      data: ...,
      status: {
        result: result,
      }
    }
    Ответ написан
    Комментировать
  • В чём разница между! и !!?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    ! - приведение к булевому значению и смена его «знака» на противоположный.
    !! – приведение к булевому значению и двойная смена его «знака» на противоположный. То есть упрощение любого типа данных до true или false.

    !42 -> false
    !!42 -> true
    Ответ написан
    1 комментарий
  • Как сделать вызов событий из php в python, как передать данные из php в python?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Вообщем. Есть проект на cms Opencart, он написан на чистом php. Работает на сервере.

    Задача - создать таблицу действией пользователей админ панели сайта и проводимых ими на сайте часов. Нужно сделать так чтобы можно было отследить количество работы за день - каждым пользователем.
    Как бы это можно было б организовать?
    Не знаю как устроен OpenCart, поэтому ответ общий. Узнайте, есть ли там система событий и если есть, то подписывайтесь на нужные вам события (вход, выход и т.п.) и в обработчиках записывайте нужные данные в БД. Если системы событий нет, то придётся костылить логирование прямо в код (контроллеры, файлы или что там у OpenCart).
    Дальше уже с данными в БД делайте что хотите - хоть питоном стройте отчёты, хоть тем же php.

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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Скорее всего, вам не удастся найти хостинг, на котором уже всё настроено. Вместо этого нужно взять в аренду VPS и установить туда python и mysql самостоятельно (есть море инструкций).
    Ответ написан
    Комментировать
  • Как из разных word документов собрать все таблицы (средствами PHPOffice/PHPWord) с заданным названием и сохранить в один файл?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    сохраняется лишь содержимое последнего пройденного документа
    Это потому, что вы в цикле перезатираете значение переменной $phpWord, в которую хотите собирать результат. По этой же причине, скорее всего, вы видите "весь документ" в результате - вы просто в конец существующего добавляете его же таблицы ещё раз.
    Ответ написан
    Комментировать
  • Как настроить Laravel для создания простого бекенда?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Там уже всё "оптимизировано" за вас, не нужно заморачиваться. Когда вы столкнётесь с проблемами производительности из-за фреймворка (никогда), тогда и будете оптимизировать конкретные проблемные места.

    Раньше была урезанная версия Laravel под названием Lumen, в которой было сделано ровно то, что вы описали, но нужда в этом давно отпала и Lumen больше не рекомендуется использовать.
    Ответ написан
    1 комментарий
  • Как автоматизировать получение URL файла, который браузер скачивает при задании моего URL?

    Если вам URL2 приходится выуживать из DevTools, значит, это побочный результат работы страницы и каким-то простым инструментом вы его не сможете получить.
    Нужно понять, какие именно шаги приводят на странице с URL1 к генерации запроса на URL2 (т.е. какие необходимы предварительные действия и как строится URL2) и уже потом пытаться их воспроизводить автоматически. Но без программирования в каком-либо виде тут не обойтись.
    Ответ написан
    Комментировать
  • Правильно ли понимаю работу ссылок в С++?

    Я правильно понял, что дописав амперсанд, функция ссылается на переменную из основной функции?
    Да.
    Ответ написан
    Комментировать
  • Как вынести переиспользуемый блок кода?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега React
    "Правильного" варианта тут нет, делайте как вам удобнее.

    Я бы для такой простой штуки не стал заморачиваться и сделал так (детали с пропсами опущены):
    const Comp = () => (
      <div>
        <ul>
          constants.map((item) => (
            <li>
              <h2>Cap1</h2>
              <p>Text1</p>
            </li>
          ))
        </ul>
      </div>
    );


    P.S. Если всё же разделять, я бы тег li оставил в родительском компоненте, а в отдельный вынес только его содержимое. Таким образом жёстко связанные в семантике html теги не будут разнесены потенциально по разным файлам.
    Ответ написан
  • SQL запрос не знаю правильный?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Проверять, что результат запроса содержит данные о товаре. Если не содержит - показывать пользователю об этом сообщение.
    Выполнение запроса с WHERE id = 'несуществующее значение' не является ошибкой само по себе, это вполне нормальная ситуация, которую нужно просто обрабатывать в коде.
    Ответ написан
    Комментировать
  • Как сделать поиск в многомерном массиве по ключу?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    1. Открываем документацию.
    2. Внимательно читаем.
    3. Видим, что у функции есть третий аргумент, который как раз управляет тем, что будет передано в callback.
    4. ???
    5. Profit.


    Но зачем всё это, если можно написать $arr['clients']['client1']? Для этого ключи в ассоциативном массиве и существуют, чтобы по ним обращаться к элементам.
    Ответ написан
    2 комментария
  • Как сайт понимает, что я был на нём, если я запретил сохранять cookie, а также удалил все данные с него?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    По ip, значит, какие ещё варианты. Тем более, что они отслеживают и запрещают использование VPN.
    Ответ написан
    Комментировать