• Стоит ли использовать state, или все таки всегда хранить в redux store?

    bitver
    @bitver
    off: Есть субъективное ощущение, что Redux сделали люди, которые были не в курсе существования state у компонентов.

    Вообще где-то можно найти, что редьюсеры советуют использовать state там, где какой-то части компонента все равно на состояние приложения и она живет своей жизнью.
    На вскидку сложно привести достойный пример, но что пришло в голову: "компонент пошагового заполнения формы, где не критична пошаговость для данных, а компонент лишь UI/UIX прибамбас".
    Ответ написан
    1 комментарий
  • Почему Ubuntu 20.04.2 не видит bluetooth-устройства?

    @Tatsky Автор вопроса
    Студент
    Нашёл решение тут

    Но появилась следующая проблема - тихий звук именно в блютуз-наушниках
    Ответ написан
    Комментировать
  • Как правильно настроить скрипт npm start с меткой NODE_ENV=development?

    @DarCKoder Автор вопроса
    Сам разобрался, может кому пригодится.
    Дело было в том, что в:
    set NODE_ENV=development && nodemon app.js

    Значение process.env.NODE_ENV равняется "development " (с пробелом).
    Поэтому будет правильнее сделать так:
    set NODE_ENV=development&& nodemon app.js
    Ответ написан
    Комментировать
  • Как отключить автоподключение к VPN если уже забыл как его настраивал?

    @Drno
    Отключить клиент и автозапуск. Потом ребут можно
    sudo systemctl disable openvpn@client.service

    Стопнуть клиент прям щас
    sudo systemctl stop openvpn@client.service

    После любой команды
    sudo systemctl daemon-reload
    Ответ написан
    1 комментарий
  • Как создать загрузочную флешку Windows 10 в Woeusb под Linux Mint 20.2 Uma?

    @Alexandr_VM
    WoeUSB создает раздел EFI в конце диска на 512Кб, а образ весит 1Мб, при попытке записать его через dd он не может его расширить, потому такая ошибка, я решил так:
    sudo nano /usr/bin/woeusb
    Находим строку -- -1025s и заменяем на -- -4097s
    Далее ищем строку -1024s \ и заменяем на -4096s \
    Это увеличит раздел до 2Мб и все накатится без проблем.
    Ответ написан
    3 комментария
  • Как записать скринкаст на Ubuntu?

    rusbaron
    @rusbaron
    Не стыдно не знать, стыдно не интересоваться
    OBS Studio уже есть для линукса
    Ответ написан
    4 комментария
  • Jira сколько потрачено времени?

    zencd
    @zencd
    У меня работает такой урл:

    /secure/TimesheetReport.jspa?reportKey=jira-timesheet-plugin%3Areport&reportingDay=0&startDate=2021-06-21&endDate=2021-06-27&sum=day&moreFields=assignee&sortBy=&sortDir=ASC

    Можно ещё добавить targetUser=JohnDoe
    Ответ написан
    Комментировать
  • Появляется нежелательная реклама на сайте wordpress?

    @YarosWD
    Вопрос не в роутере а именно в провайдере, мне прямо подтвердили что при заключении договора я согласился на получении рекламы через сети.
    Вопрос решается заявление в тех.поддержку.
    Ответ написан
    Комментировать
  • Где скачать Cisco Anyconnect?

    Комментировать
  • Как побороть CORS в Nginx?

    yarkov
    @yarkov Автор вопроса
    Помог ответ? Отметь решением.
    И как обычно лучше оф.документации нет ничего ))
    https://enable-cors.org/server_nginx.html
    Ответ написан
    Комментировать
  • В чем суть роутера на php?

    onqu
    @onqu
    weasy
    1. Здесь пугают всякими контроллерами, ларавелями. Давайте жить проще. Для начала дадим определение модному слову роутер. Это маршрутизатор. Что делает маршрутизатор? Правильно. Обрабатывает маршруты, являясь связующим звеном. Маршрутом для web сайта принято считать метод запроса [GET, POST, PUT и другие] и компоненты URI.

    например: https://ru.wikipedia.org/wiki/URI?foo=bar#title
    [схема: https] :// [источник: ru.wikipedia.org] [путь: /wiki/URI] [запрос: ?foo=bar] [фрагмент: #title]


    Но для определения маршрута может браться любая другая информация передаваемая серверу, определение выше это лишь наиболее употребляемые параметры.

    Сама работа, как правило проста: от клиента приходит запрос, маршрутизатор перебирает все заданные ему пути до первого совпадения. При совпадении вызывается определенная вами функция, которая возвращает ответ клиенту.

    2. Он необходим, если в приложении одна точка входа, когда любой запрос приходит на один файл.

    3. Простой пример
    // файл index.php
    
    // Маршруты
    // [маршрут => функция которая будет вызвана]
    $routes = [
        // срабатывает при вызове корня или /index.php
        '/' => 'hello',
        // срабатывает при вызове /about или /index.php/about
        '/about' => 'about',
        // динамические страницы
        '/page' => 'page'
    ];
    
    // возвращает путь запроса
    // вырезает index.php из пути
    function getRequestPath() {
        $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    
        return '/' . ltrim(str_replace('index.php', '', $path), '/');
    }
    
    // наш роутер, в который передаются маршруты и запрашиваемый путь
    // возвращает функцию если маршшрут совпал с путем
    // иначе возвращает функцию notFound
    function getMethod(array $routes, $path) {
        // перебор всех маршрутов
        foreach ($routes as $route => $method) {
            // если маршрут сопадает с путем, возвращаем функцию
            if ($path === $route) {
                return $method;
            }
        }
    
        return 'notFound';
    }
    
    // функция для корня
    function hello() {
        return 'Hello, world!';
    }
    
    // функция для страницы "/about"
    function about() {
        return 'About us.';
    }
    
    // чуть более сложный пример
    // функция отобразит страницу только если
    // в запросе приходит id и этот id равен
    // 33 или 54
    // [/page?id=33]
    function page() {
    
        $pages = [
            33 => 'Сага о хомячках',
            54 => 'Мыши в тумане'
        ];
    
        if (isset($_GET['id']) && isset($pages[$_GET['id']])) {
            return $pages[$_GET['id']];
        }
    
        return notFound();
    }
    
    // метод, который отдает заголовок и содержание для маршрутов,
    // которые не существуют
    function notFound() {
        header("HTTP/1.0 404 Not Found");
    
        return 'Нет такой страницы';
    }
    
    
    // Роутер
    // получаем путь запроса
    $path = getRequestPath();
    // получаем функцию обработчик
    $method = getMethod($routes, $path);
    // отдаем данные клиенту
    echo $method();


    На практике используют более сложные маршрутизаторы, у которых гораздо большие возможности.

    4. Обойтись без него можно. Если каждая страница в вашем приложении будет являться отдельным файлом, который отвечает за отдачу информации.
    index.php
    about.php
    contact.php
    ...


    Это олдскульная структура, в новых проектах почти не применяется.
    Ответ написан
    13 комментариев
  • FastCGI-сервера приложений?

    Staltec
    @Staltec
    Node.js разработчик
    FastCGI - это протокол по которому проксирующий веб-сервер может передавать запросы внутреннему сервису и получать от него ответы, которые передаются пользователю.

    FastCGI сервис, может быть написан на чём угодно, лишь бы корректно реализовывал данный протокол.

    Нет понятий fastcgi-server, fastcgi application server, есть веб-сервер (например Nginx) и процессы (workers) работающие на определённый TCP портах и взаимодействующие с веб-сервером по протоколу FastCGI.

    https://ru.wikipedia.org/wiki/FastCGI
    Ответ написан
    Комментировать