• Есть ли реальный профит от использования актуальных фронтенд-технологий?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Простите, но кто вас сейчас заставляет использовать всё это? Пишите без сборки на чистом js и будет то же самое что вы описали.
    Ответ написан
    1 комментарий
  • Как массово удалить файлы в определенных папках?

    find /yourpath -type d -path '*/site1.ru/core/cache' -exec rm -rf '{}' ';'
    Ответ написан
    Комментировать
  • Почему медленно отвечает сервер?

    @asmelnik
    Память забита, свап забит...
    "И чо вы хотели?"
    первый "смык" шерстит оперативку, выгружает из нее что-то "лишнее", запихивает туда нужное...
    Пока "дергаете" свои приложухи они держатся в оперативке...
    Как только пауза- их вытесняет что-то более актуальное....
    Ответ написан
    Комментировать
  • Как вернуть кортеж из функции?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    def sort_pair(a, b):

    В ТЗ указано, что функция sort_pair должна принимать один аргумент, который является кортежем из двух элементов целочисленного типа, а не 2 аргумента не определенного типа...
    def sort_pair(pair):
        a, b = pair
        if a <= b:
            return (a, b)
        else:
            return (b, a)
    
    print(sort_pair((5, 1)))  # (1, 5)
    print(sort_pair((2, 2)))  # (2, 2)
    print(sort_pair((7, 8)))  # (7, 8)

    Добавим аннотации, чтобы прям хорошо было:
    from typing import Tuple
    
    def sort_pair(pair: Tuple[int, int]) -> Tuple[int, int]:
        a, b = pair
        if a <= b:
            return (a, b)
        else:
            return (b, a)
    
    print(sort_pair((5, 1)))  # (1, 5)
    print(sort_pair((2, 2)))  # (2, 2)
    print(sort_pair((7, 8)))  # (7, 8)
    Ответ написан
    2 комментария
  • Как заблокировать работу с окном браузера при перезагрузке страницы?

    Всем "опасным" кнопкам по умолчанию устанавливаем атрибут disabled. Тогда их нельзя будет нажать.

    <button class="dangerous"  disabled>Сохранить</button>


    И сделать обработчик события загрузки страницы, который уберет этот самый атрибут с опасных кнопок по окончании полной загрузки страницы

    document.addEventListener(‘load’, function() { 
    	const dangers = document.querySelectorAll(".dangerous");
            dangers.forEach((item) => {
                  item.removeAttribute('disabled'):
            });
    }


    Если же вас беспокоят именно элементы, остающиеся на экране при старте перезагрузки, то самым простым решением было бы вообще удалить весь html страницы до перезагрузки, а потом спокойно её запустить. Либо вы можете точно так же в момент, когда вам надо запустить перезагрузку, установить всем опасным кнопкам атрибут disabled, а потом стартовать перезагрузку страницы.

    Но!!! Данный подход только лишь сделает жизнь пользователей более приятной. Не забывайте, что фронтенд-фрогнтендом, но бэкенд должен всё же уметь работать с такими запросами, которые не будут содержать в себе все нужные данные.
    Первое правило бэкенда - "Никогда не верь фронтенду и его данным, проверяй и валидируй всё"
    Ответ написан
    Комментировать
  • Как скрыть в списке языков репозитория CSS?

    https://dev.to/katkelly/changing-your-repo-s-langu...

    1. Создаёшь в репозитории файл ".gitattributes"
    2. Перечисляет в нём все языки, которые не надо детектить:
    *.css linguist-detectable=false
    Можно не просто расширение указать, а конкретные файлы или путь, чтобы игнорировать все файлы в определённой папке.
    3. Не забудь закоммитить и запушить изменения.

    Ну и не забывай про gitignore - возможно, эти файлы вообще не должны быть в репозитории, если они получаются в результате работы scss
    Ответ написан
    Комментировать
  • Возможно ли создавать приложения для Windows и Linux на JavaScript, html и css?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно:
    - ElectronJS
    - Tauri
    Ответ написан
    Комментировать
  • Зачем в toString и substring передаются аргументы?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    3 комментария
  • Как реализовать переход по ссылке силами CSS?

    @alexalexes
    Нужно помнить, что у тега a и button по умолчанию поведение display: inline - строчные элементы.
    Если хотите, чтобы они служили там, где используются блочные элементы (display: block) и блочно-строчные (display: inline-block), как div в вашем примере. Так обеспечьте их этим свойством - указав его явно.
    Зная это, можно спокойно заменить div на a и решить вашу проблему.
    Ответ написан
    Комментировать
  • Почему две строки при загрузки linux?

    IvanU7n
    @IvanU7n
    nothing interesting here
    это, на удивление, меню загрузчика
    избавиться скорее всего никак, т.к. первая по умолчанию должна загружаться, а вторая на всякий случай для восстановления
    Ответ написан
  • Как поделить api на части с различным функционалом?

    vabka
    @vabka Куратор тега Rust
    Лучше это не через поля, а через методы реализовывать - тогда будет более дёшево, да и женерик лишний можно будет убрать.

    Что-то типа
    struct Api {
      key: String
    }
    struct ApiPart<'a>{
      api: &'a Api
    }
    
    impl Api {
      pub fn part<'a>(&'a self) -> ApiPart<'a> {
        ApiPart {api: self}
      }
    }


    PS:
    Вот так делать точно не нужно:
    Не надо на ровном месте городить указатели и unsafe.
    У тебя из-за unsafe получился dangling pointer.
    fn new(api_key: *const String) -> Self {
            let api_key = unsafe { &*api_key };
            return Self {
                api_key,
            };
        }


    Норм практика делать вот так, в случае строк:
    fn new(api_key: impl Into<String>) -> Self {
            let api_key = api_key.into();
            return Self {
                api_key,
            };
        }


    Боксить строки также не нужно - они и так в куче лежат.
    Ответ написан
    6 комментариев
  • Как создать скрытый input для передачи технической информации на другую страницу?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тип hidden не подходит, потому что его можно редактировать? А что из html вы вообще можете НЕ редактировать?

    Вам тут стоит понять одну очень важную штуку: html/css/js образуют client side. Вы должны понимать, почему это называется вообще "Клиентом"? Потому что эта вся информация полностью загружается на клиента и он имеет к ней доступ.

    По этому существует server side - часть программной системы, к какой конечный пользователь не имеет доступа, в отличии от клиентской части.

    Цель сервера - обрабатывать запросы с клиента. Первое, что делает сервер с данными, которые ему отправил клиент - ВАЛИДИРУЕТ. Соответственно, если данные не валидны - запрос разворачивается обратно на клиента и отдаёт ему какую-то ошибку

    Это всё так, к слову. Вам важно понять, что клиент может редактироваться, вы никак не сможете этого избежать. Но этого не стоит бояться, т.к. то, за что вы переживаете должно обрабатываться на сервере.

    Client side должен обрабатывать данные перед отправкой на сервер (Но сервер обязан их повторно валидовать) и после получения данных от сервера для наилучшего представления ИХ конечному пользователю

    UPD: для справки. Вы можете полностью редактировать html в режиме реального времени, но он не будет сохранён для всех пользователей, а только для вас, т.к. эта часть загружается только два вас как для конечного пользователя. Сам html хранится на сервере и является результатом работы сервера. Эту часть html, что вы видите в браузере вы можете редактировать.

    Вы можете динамически подключать стили или их удалять. Можете менять скрипты, удалять их из сайта (Тогда отправка вообще работать не будет и, соответсвенно, отключится весь функционал, за который отвечаел скрипт) или добавить новые скрипты. А можете вообще написать свой скрипт прямо в консоли браузера и он будет работать.

    Проблема в том, что даже после элементарной перезагрузки страницы (Через Ctrl + R или другими способами) это всё будет утеряно и вам загрузится тот самый html/css/js, который является результатом рабыты сервера того сайта, который вы просматриваете
    Ответ написан
    1 комментарий
  • Как сжать диск на Linux?

    @SunTechnik
    90%, то что Вы хотите - у Вас не получится.

    Расширить раздел в Windows можно только если свободное место следует сразу после текущего тома. В Linux вы освободить сможете (если сможете), только конец диска.

    Судя по именам - у Вас LVM. Уменьшить размер LVM группы - отдельна задача.

    Логичнее - бэкапить linux, после чего растягивать Windows, разворачивать из бэкап Linux.
    Ответ написан
    2 комментария
  • Персональный гугл, если ли?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Google - это прежде всего инфраструктура, а не софт. Как только сможете позволить себе потратить десятки миллиардов долларов на постройку ЦОДов, можно и персональный Google будет завести.
    Ответ написан
    3 комментария
  • Датаграмма UDP может прийти в неверном порядке. Как это?

    @pfg21
    ex-турист
    такое невозможно, внутри пакета UDP последовательность данных изменится не может.
    датаграмма UDP упаковывается в пакет IP, который может фрагментироваться.
    перед передачей данных в драйвер UDP, драйвер IP восстановит правильную последовательность данных, либо дропнет весь пакет, если все фрагменты не придут в течении тайм-аута.
    для прямого запрета фрагментации пакета IP нужно устанавливать флаг DF (don't fragment) в пакете IP.

    а в случае когда 012 и 345 посланы в разных пакетах UDP вполне. восстановление последовательности пакетов в UDP нет и последний по отправке пакет может прийти раньше первого посланного.
    Ответ написан
    Комментировать
  • Как в KDE Plasma поставить русскую локаль, но оставить английский язык интерфейса?

    язык интерфейса устанавливается в
    System Settings -> Regional Settings

    переключение языков ввода
    System Settings -> Input Devices -> Keyboard -> Layouts

    локаль прописывается в /etc/default/locale

    При изменении языка интерфейса plasma прописывает переменные окружения в $HOME/.config/plasma-localerc и они переопределяют /etc/default/locale. Вообщем надо или удалить plasma-localerc и тогда будет локаль из /etc/default/locale, или прописать в plasma-localerc что надо. Ну и перелогиниться.
    Ответ написан
    1 комментарий
  • Какие инструменты есть, чтобы организовать "песочницу" для запуска скриптов?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Как минимум три варианта (точнее два в одном и один)
    - libvirt - полностью изолированная виртуалка
    - контейнеры:
    - docker
    - или lxc/lxd
    Ответ написан
    Комментировать
  • В C++ есть TCP и UDP?

    @res2001
    Developer, ex-admin
    Базовый функционал сети предоставляет операционная система, там то же есть разделение на TCP и UDP (точнее на SOCK_STREAM и SOCK_DGRAM). Любое приложение, не зависимо от языка программирования, использует функционал, предоставляемый ОС, если каким-то образом не реализует его самостоятельно.
    В стандартной библиотеке С++ нет никаких оберток над базовыми функциями ОС. Но из коробки вы легко можете использовать базовые функции ОС, ничего отдельно ставить не нужно, все доступно в рамках системных библиотек и заголовочных файлов.
    Но для удобства можно использовать какую-нибудь библиотеку, обертку.
    Ответ написан
    Комментировать
  • Как создать абстрактную фабрику, не ссылаясь на реализацию?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    В приложении, которое использует Dependency Injection можно выделить 2 "области":
    - Composition Root
    - Остальное приложение

    Composition Root - это место в котором собираются все зависимости воедино. О всех реализациях зависимостей должен знать только он.
    Остальное приложение - это (тафтология) все остальное приложение. Они используют только интерфейсы и другие абстрации.

    Обычно Composition Root - это входная точка приложения. В нем создается эта самая ServiceFactoryImpl (стандартные реализации, из конфигурации могут быть прочитаны флаги, создан в зависимости от платформы и т.д.), а затем как интерфейс IServiceFactory, передается в остальные места.

    Т.е. в коде это будет как-то так
    #include <IServiceFactory.h>
    
    class Sample {
    private:
        IServiceFactory _factory;
    public:
        Sample(IServiceFactory factory): _factory(factory) { }
        DoSomething() { 
            auto service = _factory.CreateService();
            service.MakeStuff();
        }
    }
    
    int main() {
        auto factory = ServiceFactoryImpl(); // Читаем конфигурацию, параметры ОС и др.
        auto sample = Sample(factory);
        sample.DoSomething();
    }
    Ответ написан
    1 комментарий
  • Как создать абстрактную фабрику, не ссылаясь на реализацию?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Да, где-то в "верхних слоях кода" тебе всё равно надо будет явно сослаться на ServiceFactoryImpl, от этого не уйти. Но это совсем маленький "грязный" участок. А в остальном коде ты спокойно работаешь с этим экземпляром IServiceFactory и создаваемыми с помощью него имплементациями IService
    Ответ написан
    Комментировать