Задать вопрос
  • Как оптимизировать пагинацию отсортированных по времени создания записей?

    OrlovEvgenii
    @OrlovEvgenii
    Такой вариант решения будет работать, но он имеет ряд недостатков:
    Основной - это производительность, топик стартер жалуется на производительность offset/limit, а ваш вариант несет за собой другие проблемы производительности решая основную
    Использование IN или NOT IN с большим набором данных может быть медленным. Это особенно актуально, если таблица очень большая или количество записей с одинаковыми датами велико. В таких случаях выполнение этого запроса может привести к существенному снижению производительности.

    Этот вариант так же сложнее потому что формирование списка идентификаторов в операторе IN или NOT IN может быть неэффективным, особенно если есть много записей с одинаковыми датами.
  • Как оптимизировать пагинацию отсортированных по времени создания записей?

    OrlovEvgenii
    @OrlovEvgenii
    Да все так, но это можно решить немного изменив запрос

    SELECT * FROM table_name
    WHERE (created_at, id) < (SELECT created_at, id FROM table_name WHERE id = :last_id)
    ORDER BY created_at DESC, id DESC
    LIMIT 1000;
  • Как исправить код?

    OrlovEvgenii
    @OrlovEvgenii
    Да там может выплюнуть out of range, добавил проверку границ
    #include <iostream>
    #include <vector>
    #include <string>
    
    using namespace std;
    
    int main() {
        string s;
        int q;
        cin >> s >> q;
    
        vector<int> l(q), r(q), k(q);
        for (int i = 0; i < q; ++i) {
            cin >> l[i] >> r[i] >> k[i];
        }
    
        for (int i = q - 1; i >= 0; --i) {
            if (l[i] > 0 && r[i] <= s.size()) {
                string t = s.substr(l[i] - 1, r[i] - l[i] + 1);
                s.erase(l[i] - 1, r[i] - l[i] + 1);
                if (k[i] == 0) {
                    s = t + s;
                } else {
                    s.insert(k[i] - 1, t);
                }
            }
        }
    
        cout << s << endl;
    
        return 0;
    }
  • Внедрение entity как зависимость внутри контроллера?

    OrlovEvgenii
    @OrlovEvgenii
    А почему нельзя, можно сделать вот как-то так

    namespace App\Controller;
    
    use App\Entity\User;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    
    class UserController extends AbstractController
    {
        private $userRepository;
    
        public function __construct(UserRepository $userRepository)
        {
            $this->userRepository = $userRepository;
        }
    
        /**
         * @Route("/users/{id}", name="user_show")
         */
        public function show(User $user): Response
        {
            return $this->render('user/show.html.twig', [
                'user' => $user,
            ]);
        }
    }

    Здесь User используется в параметре метода show(), а зависимость от репозитория UserRepository внедряется в конструктор контроллера. Но проверь что твоя сущность есть в контейнере зависимостей и т.д иначе действительно не код не будет работать
  • Ошибка с xhprof при обновлении yum upgrade, как исправить?

    OrlovEvgenii
    @OrlovEvgenii
    попробуй обновить канал
    pecl channel-update pecl.php.net
  • Какие программы для Mac Os, являются аналогами MS ACCESS?

    OrlovEvgenii
    @OrlovEvgenii
    попробуй аналоги MS Access, например, FileMaker или Ninox. Обе программы позволяют создавать запросы и работать с базами данных.
  • Как сделать установщик Java через Installshield?

    OrlovEvgenii
    @OrlovEvgenii
    Для того чтобы добавить файлы в установщик InstallShield, нужно выполнить следующие шаги:

    Откройте проект установщика в InstallShield.

    В левом верхнем углу найдите иконку "Application Files".

    Нажмите на эту иконку. Откроется окно "Application Files".

    Нажмите на кнопку "Add Files". Выберите файлы, которые нужно добавить в установщик.

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

    Чтобы добавить Java в установщик, нужно сначала скачать установочный файл Java. После этого добавить его в Application Files и указать нужные свойства.

    Например, чтобы запустить установку Java в тихом режиме, можно добавить следующие свойства в установщик: /s /L %TEMP%\jre_install.log.

    После того, как вы добавили все необходимые файлы и установили им нужные свойства, вы можете собрать установщик и запустить его на компьютере пользователя.
  • Зачем надо (1) в COUNT?

    OrlovEvgenii
    @OrlovEvgenii
    Вы правы, при использовании COUNT(имя_столбца) строки с NULL-значением в столбце не будут учитываться. Если вам нужно учитывать все строки, включая те, у которых значение столбца равно NULL, то следует использовать COUNT(*), который считает количество строк в таблице.

    Пример:

    Если у нас есть таблица с именем "users" и столбцом "age", который может содержать NULL-значения, то следующий запрос вернет количество строк в таблице, включая те, у которых значение столбца "age" равно NULL:
    SELECT COUNT(*) FROM users;
    Если же мы использовали бы следующий запрос, то строки с NULL-значением в столбце "age" не были бы учтены:

    SELECT COUNT(age) FROM users;
    В обоих случаях мы получим число, но оно будет отличаться, если в таблице есть строки, у которых значение столбца "age" равно NULL.
  • Почему для SSR проекта на бэк берут НЕ Node.js?

    OrlovEvgenii
    @OrlovEvgenii
    DarthWazer, ахах, ну вот и агрессия подъехала, первый признак того что вы не в состоянии профессиональным языком выразить ваше мнение и чем то его подкрепить, а лишь брызжите слюной. Очень по взрослому :)

    К счастью я потерял интерес вести беседу с человеком который не имеет достаточной компетентности и пожалуй на этом закончу, а вы можете дальше продолжать искать оправдания самому себе
  • Почему для SSR проекта на бэк берут НЕ Node.js?

    OrlovEvgenii
    @OrlovEvgenii
    DarthWazer, собственно вновь вода и ни одного аргумента. пук в лужу.
  • Как скачать с помощью wget по маске не зная какие страницы есть?

    OrlovEvgenii
    @OrlovEvgenii
    Germanjon, Вам в любом случае нужно делать перебор по всем постам, так как у вас нет актуального списка постов.

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

    даже в этом случае у Вас будет перебор всех постов и так же будет вероятность попасть под rate limit.

    По поводу бана, скорее всего нет, мне кажется у livejournal нет rate limit на получение записей.
  • Почему для SSR проекта на бэк берут НЕ Node.js?

    OrlovEvgenii
    @OrlovEvgenii
    DarthWazer, и на выходе мы все равно получаем промежуточную трансляцию в js. Я очень скептично отношусь к таким набросам, вы путаете причину и следствие когда говорите о синтаксическом сахаре. Если мы сейчас будем рассуждать о других языках опираясь на вашу логику то скажем что и Java тоже плох, а как иначе появились Kotlin/scala, глупо правда?

    У вас слабые аргументы, слишком голословно, другим словом пук в лужу. Я не пытаюсь защитить жс и тем более не пытаюсь доказывать его превосходство, но если вы высказываете публично что какая-то технология плоха, то почему бы не аргументировать это примерами из реальных кейсов.
    А крикнуть - "вот этот язык говно", так я тоже могу.
  • Почему для SSR проекта на бэк берут НЕ Node.js?

    OrlovEvgenii
    @OrlovEvgenii
    Сергей Горностаев, я к тому что ваша критика голословна, и звучит как "РЯЯЯЯ ЖС ПЛОХО, А ВОТ ПИТУХОН ХОРОШО" . Но это ведь так смешно, когда слышишь аргументы вроде:
    да хотя бы слабой типизацией плох

    особенно когда вы сами не можете оценить разницу на что указал товарищ Yustas Alexu
    Любой ЯП это просто инструмент который решает круг как технических задач так и бизнесовых, к последним так же относится такое понятие как bus factor, скорость разработки, сложность поддержки. И любой недочет в языке вскрывается тогда когда вы пытаетесь применить его не совсем по назначению.
    А по Вашей логике можно раскритиковать абсолютно любой язык, серебряной пули все равно нет.

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

    Если Вы хотите указать на конкретные недочеты, тогда и возьмите конкретный кейс на жс, для которого не будет альтернативы более оптимальной реализации, и опытными путем не брызжа слюной докажите почему плохо/неправильно. Мы ведь все взрослые люди, но в прочем вы можете продолжать оправдываться и далее, кому это будет интересно уже
  • Почему для SSR проекта на бэк берут НЕ Node.js?

    OrlovEvgenii
    @OrlovEvgenii
    А вы не задумывались что альтернативы нет только по той причине что жс не так уж и плох для фронта?
  • NodeJS какие изначальные параметры mysql2 нужно вводить для подключения к базе данных на локальном сервере?

    OrlovEvgenii
    @OrlovEvgenii
    у тебя сервер mysql сам запущен к которому ты подключаешься? база с названием 'root' существует ?
  • Какие курсы необходимо пройти по PHP?

    OrlovEvgenii
    @OrlovEvgenii
    OnYourLips, онлайн курсы программирования - это как учить уроки с мамой, пишешь под диктовку, мама пальцем тычет, результат есть, вот он - буковки на бумаге. А в голове ветер свистит.
    Если человек книгу не в силах осилить, это вообще край.
  • CI/CD для Wordpress через Gitlab?

    OrlovEvgenii
    @OrlovEvgenii
    Михаил Кобзарев, c CI все отлично как я и написал.