Задать вопрос
  • Почему дата в Angular становится на 3 часа позже?

    xez
    @xez
    TL Junior Roo
    2021-01-31T21:00:00.000Z Z - это по Гринвичу.

    Mon Feb 01 2021 00:00:00 GMT+0300 GMT+3 - это по Москве.
    Время одно и то же, но вывод в разных форматах.
    Ответ написан
    Комментировать
  • Чем грозит отсутствие MSR раздела?

    @KPOBABAK
    Отсутствие MSR раздела на GPT диске чревато не работающими обновлениями.
    Сталкивался и на windows 10 и на серверных windows. Как только создаешь раздел - начинает нормально обновляться. Видимо какие то обновления его используют. Но не все - факт.
    Но для работы ОС с внешнего накопителя требуется дополнительные манипуляции. Система может не увидеть диск к примеру из за поздней инициализации USB. Гугли... все есть.
    Ответ написан
    Комментировать
  • Что делать если крашится photoshop на macbook air m1?

    Подозреваю что самый правильный выход - купить подписку Adobe раз уж на макбук наскреб. Что то около 8 баксов в месяц первый год или 96 баксов за год. Через год будет 10 баксов в месяц, но если тебе не играться, то фотошор свои деньги отработает.
    И там вроде триал есть, так что можно попробовать будет работать или нет. И тех. поддержка, можно будет вопросы им писать а не на тостер.
    Ответ написан
    Комментировать
  • Как в коде компонента Angular узнать название селектора этого компонента?

    @Sun_Day
    @Component({
      selector: 'app-test',
      templateUrl: './app-test.component.html',
      styleUrls: ['./app-test.component.scss']
    })
    
    export class Test {
      constructor(element: ElementRef<HTMLElement>) {
        const tagName = element.nativeElement.tagName.toLowerCase();
      }
    }
    Ответ написан
    6 комментариев
  • Как в Linux сделать swap файл с динамическим размером?

    @rPman
    Динамического swap файла в linux нет (изначально свопом мог быть только раздел фиксированного размера но потом допилили размещение на файловых системах, если они это поддерживают, с оговорками) но возможно динамические подключение и отключение новых swap файлов или устройств с помощью консольной команды swapon и swapoff, перед подключением содержимое файла должно быть 'отформатировано' mkswap, эта исключает ошибочное указание нормального файла.

    Swap может быть размещен как файл на популярных файловых системах типа ext4 или сетевом nfs, возможно использование iscsi устройств, в файле не должно быть 'дырок' (sparce files), т.е. не получится выделить по быстрому место с помощью dd seek, (на чем то типа fat получится), а так же должно быть выключено сжатие и cow (смотреть chattr) если используется к примеру btrfs
    Ответ написан
    Комментировать
  • Почему у Москвы в разные года разное смещение по времени GMT?

    Да, это нормально, тк до 2012 года был переход на летнее время, которое потом отменили
    Ответ написан
    5 комментариев
  • В чем отличие markAsDirty и markAsTouched в Angular?

    Xuxicheta
    @Xuxicheta Куратор тега Angular
    инженер
    В Angular в ReactiveForm одному контролу из формы я задаю значение через .setValue(someValue)

    Внутри любого метода меняющего форму или ее значение есть updateValueAndValidity.
    Как я понимаю, чтобы после этого запустился процесс валидации установленного значения, нужно выполнить у этого же контрола методы markAsDirty() и markAsTouched()

    Нет, эти методы всего лишь флаги меняют, dirty и pristine соответственно. И к процессу валидации никак не относятся.
    Какая между ними разница и когда какой использовать?

    нy по назначению, dirty это когда форма менялась, touched это когда на контроле был фокус и пропал.
    Ответ написан
    Комментировать
  • Rxjs как сделать последовательно два http запроса?

    nasnetstep
    @nasnetstep Автор вопроса
    Вообщем я нашел ответ сам, может кому-то пригодится
    flatMap и forkJoin

    // последовательно
    
    let someStream$ = service.getData().flatMap(res => {
      return service.deleteData(res)
    })
    
    someStream$.subscribe(res => {
       // res - результат последнего 
    })
    
    // параллельно
    let getData$ = service.getData();
    let deleteData$ = service.deleteData();
    
    Observable.forkJoin([getData$, deleteData$]).subscribe(results => {
          // results[0] дата из getData$
          // results[1] дата из deleteData$
          this.a = results[1];
          this.b = results[0];
        });
    Ответ написан
    Комментировать
  • Почему JS матчит обратный апостроф в регулярке?

    Alexandroppolus
    @Alexandroppolus
    кодир
    [А-Я]
    тут буква А - латинская, в интервале между латинской А и русской Я много чего. Проверь буквы.
    Ответ написан
    4 комментария
  • Почему Nuget автоматически устанавливается из ненадежного репозитория?

    @MaxKozlov Куратор тега PowerShell
    Просто все репозитории, даже дефолтный PSGallery, по умолчанию не надёжные.
    Сделайте его надёжным, чтобы лишних вопросов не возникало.

    Посмотреть инфу о нём, в том числе URL
    Get-PSRepository
    Сделать надёжным
    Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

    Кстати, PackageManagement и PowerShellGet тоже лучше обновить.
    Ответ написан
    Комментировать
  • Можно ли и как изменить исходящий запрос в DevTools?

    DevMan
    @DevMan
    Ответ написан
    Комментировать
  • Можно ли и как изменить исходящий запрос в DevTools?

    vabka
    @vabka Куратор тега Веб-разработка
    Нет, нельзя.
    Можно только при помощи дополнительного софта, например: Fiddler, Mitmproxy, Charles
    Ответ написан
    5 комментариев
  • Куда делось свойство word-wrap?

    RAX7
    @RAX7

    The property was originally a nonstandard and unprefixed Microsoft extension called word-wrap, and was implemented by most browsers with the same name. It has since been renamed to overflow-wrap, with word-wrap being an alias.

    https://developer.mozilla.org/en-US/docs/Web/CSS/o...
    Ответ написан
    Комментировать
  • Как вы боретесь с удалением папок node_modules в Windows?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Тема в интернетах давно и широко освещаема, народ давно прикурил, что не все так просто, как кажется на первый взгляд, и нет "серебряной пули".

    `RimRaf` - хорошо, но не очень: использовать можно либо из скрипта, либо вручную на каждый проект, т.е. перед массовым бэкапом можно использовать лишь в составе некое "подготовительного" инструмента. И таки да - есть проблемы на разных конкретных конфигурациях. "Platform independence" не получился. По сути тех же результатов можно получить делая `rm -rf node_modules` в оболочке `bash` или `rmdir /S node_modules` в `cmd`, причем `rmdir` в большинстве случаев не вспомнит про длину строки, даже если для этого есть поводы.

    `npm dedupe` - тоже очень хорошо, но также не очень. Это неплохо делать в каждом проекте после `install` или после каждого изменения зависимостей. В противном случае перекур на сутки - просто гарантирован.

    1.

    Если доступна оболочка Bash на основе CygWin (если пользуетесь Git, скорее всего она - оболочка баша - есть, но не факт) решение, которое лежит на поверхности:

    find . -name "node_modules" -exec rm -rf '{}' +

    плюсик в конце - так надо: автоматом подтаскивает завершение (перевод) строки, можно заменить на \;

    Попадался и такой вариант:

    #!/bin/bash
    
    delete-all-dep-folders() {
      # `-prune` prevents building up lists of `node_modules` inside `node_modules`
      find ${1:-.} -type d -name "node_modules" -prune -exec rm -rf '{}' \; -exec echo 'Deleted {}' \;
      find ${1:-.} -type d -name "bower_components" -prune -exec rm -rf '{}' \; -exec echo 'Deleted {}' \;
    }


    После запуска скрипта (можно просто скопипастить в окошко баша) можно без параметров запустить команду `delete-all-dep-folders` в нужной папке или первым параметром задать путь:

    $ delete-all-dep-folders /path/to/project-root

    Напомню: если `bash` под cygwin, только тогда ему плевать на длину пути. Насколько это так, вы должны знать сами - где и какую версию Гита/Баша вы брали, там и надо читать: в интернетах найдется куча версий баша, скомпилированных с использованием нативных библиотек Windows, которые не используют cygwin!!!

    2.

    PowerShell. Якобы та самая "серебрянная пуля" от МелкоСофт. Вроде бы, плевать он хотел на длину пути. Якобы.

    Если видели в документациях/интернатах другое - не спешите опровергать: с виндами никогда ничего не бывает однозначно, у нее (Винды), как у любой нормальной женщины, в словаре бинарной логики (либо "да", либо "нет") есть еще и значения "может быть", "не знаю" и "это не я".

    Вариант:

    Get-ChildItem -Path "." -Include "node_modules" -Recurse -File:$false  | Get-ChildItem -Recurse | Remove-Item -Recurse  -Force


    Вполне рабочий, НО версия PowerShell >4.0. Более старые версии даже с ключом `-Force` не могут удалить НЕпустые папки.

    Уточню: несмотря на то, что Remove-Item (он же del, он же ...) имеет возможность обозначать фильтры и работать рекурсивно, тем не менее необходимость конвейера (знак палки между командами) все-таки есть, и на эти грабли наступало уже очень много народу еще до того, как на ms-tech и в документации была признано и отмечено, что таки да, проблема есть и в качестве решения предлагается использовать конвейер, т.е. – через палку надо делать, и не делать тупо Delete.

    И таки да, я нарвался на случай, когда это не сработало - на USB диске (NTFS) лежал старый проект на `Meteor`. Актуальности никакой, для истории тоже не находка, но он единственный усиленно сопротивлялся 4 с лишним часа. После чего мне надоело доискиваться причин такой стойкости и старый (честно купленный еще в прошлом веке) добрый Total Commander справился со всем проектом полностью за 1.897s.

    3.

    Победитель конкурса - Total Commander с настройками дисковых операций с помощью собственных (НЕ системных) функций. Не верьте документации: Windows, начиная с Vista, выполняет при дисковых операциях значительно больше "левых" действий для красоты, чем Commander, посему операции "его" функциями выполняются быстрее, чем "её" функциями. Совсем хорошо, если отключить в командере поддержку файлов описаний содержимого каталогов. Также, когда-то давно, мне попадался на глаза подключаемый модуль для командера, который заменял/дополнял поиск файлов на другой, в котором используется другая библиотека для работы с регулярными выражениями и дисковые операции можно выполнять сразу над результатами поиска без перекладывания во временную панель.

    4.

    Или мы не программисты? Пишем свой велосипед по рекурсивному обходу каталогов и `rimraf`-им чего надо. При этом не забываем положить сей золотой ключик отдельно, чтобы мимоходом не прибить его зависимости, и делаем для него консольный вызов. Успешно выкладываем в NPM и собираем звезды на Гитхабе. Дерзайте, а я настоящий программист, мне - лень, когда все просто и понятно :)
    Ответ написан
    Комментировать
  • Как вы боретесь с удалением папок node_modules в Windows?

    AMar4enko
    @AMar4enko
    После установки зависимостей в проект делаете
    $ npm dedupe
    $ npm shrinkwrap

    dedupe приводит дерево npm-зависимостей к максимально плоскому виду
    Ответ написан
    1 комментарий
  • Курсор ввода в любом месте окна браузеров?

    rus0nix
    @rus0nix
    Admin
    Видимо вы нажали клавишу F7 в Microsoft Edge.
    5b549528da25f774201802.jpeg
    Нажмите опять эту клавишу для отключения.
    Ответ написан
    20 комментариев
  • Как сделать снимок системы в macOS?

    fedorez
    @fedorez
    Хатуль мадан
    1) встроенная Time Machine делает инкрементальные бэкапы
    2)в терминале
    cd "/Volumes/Backup Disk/Backups.backupdb/Vova's Mac"
    tmutil compare 2020-05-27-105117 2020-04-26-334525

    приложение Терминал должно иметь доступ System Preferences > Security & Privacy > Privacy > Full Disk Access
    Ответ написан
    4 комментария
  • Как настроить пробелы между скобок в WebStorm?

    @kacheleff
    fullstack developer
    Editor -> Code Style -> JavaScript -> Spaces -> Within -> ES6 import/export braces
    5d4fd18fcb78e680478660.png
    Ответ написан
    1 комментарий
  • Что означает приставка document: при прослушке событий и где про это почитать?

    joeberetta
    @joeberetta
    Читай: https://epdf.pub/google-for-dummies.html
    Проблема в том, что если я прослушиваю просто 'keyup' или 'keydown' (либо 'keyup.ArrowLeft' и 'keyup.ArrowRight'), то написанная логика не работает.

    Все верно, потому что события нажатия клавиш биндятся ко всему документу, а не какому-то конкретному дом узлу.

    Собственно приставка 'document:' означает, что данный метод будет прослушивать глобальные события, а не события конкретного элемента

    Тут был задан другой вопрос, но в ответе объясняется что это и как оно работает

    P.s. вопрос относится больше к Angular, добавьте тег к вопросу
    Ответ написан
    Комментировать
  • RxJS - Как правильно делать отписки на Subscriber объект?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Стоит помнить разницу между Observable и Subject, соответственно subscribe у этих двух типов работает в части создания подписок по разному. Если закрывать весь стрим, то достаточно вызвать complete. Если нужно получить значение и отписаться то можно вызвать .first().subscribe(). Если создаются долгоживущие подписки, то их можно складывать в массив, а в дестрой вызывать subscriptions.forEach(i=>i.unsubscribe())

    UPD: уточни бизнес-кейс, у меня подозрение что тут subject не нужен и можно обойтись new Observable((subs)=>{})
    Ответ написан
    1 комментарий