• Домен и доменное имя. В чем разница?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    домен - это то, что ты покупаешь (точнее берешь в аренду), имя домена обычно совпадает с базовым доменным именем (например example.com). В своем домене ты можешь создавать поддомены, можешь создавать другие записи, не только А-записи, например ns запись, mx запись и др.

    Доменное имя - это конкретная запись в домене, например www.example.com, example.com, home.example.com, smtp.example.com, для которых ты обычно прописываешь IP адреса для резолва.
    Доменное имя, в отличие от домена, обычно должно в конечном счете преобразовываться в конкретный IP адрес. Доменное имя, в отличие от домена, хостеры не продают (ну или это очень хитрый наебизнес тогда).

    URL это вообще ссылка на ресурс, которая может включать в себя название протокола, доменное имя, путь к конкретной страничке и дополнительные параметры, например
    https://example.com/files/report.php?date=2017&typ...
    Ответ написан
    Комментировать
  • Как предотвратить появление битых файлов?

    @rPman
    Переназначенные сектора raw значение 0, значит по smart диск здоровый и высокая вероятность что проблемы с данными - логические.

    Постоянная смена windows <-> другая операционная система чревата проблемами из-за windows.
    Начиная с windows 8 в ней по умолчанию включен режим гибернации - запись оперативной памяти на диск для моментального ее восстановления после включения, даже когда пользователь выбирает выключение компьютера или перезагрузку, при включенном файле гибернации происходит следующее - завершаются процессы пользователя и делается гибернация (на самом деле там сложнее, зависит от необходимости служебной перезагрузки после обновления например), при включении соответственно система моментально восстанавливает оперативную память и переходит к запуску пользовательской сессии.

    Именно этим они достигли такой высокой скорости запуска системы.

    Как результат - файловая система при выключении компьютера может находиться в неконсистентном состоянии, не сброшены кеши, не закрыты дескрипторы и не сброшены буфера файлов. Если в таком состоянии к диску полезет (на запись) другая установка ОС (не важно, linux/mac или другой windows) то возможна ситуация, когда логическая структура файлов на диске будет повреждена (это показывает тот факт что чекдиск у тебя уже находил проблемы).

    Ситуация не абстрактна, такое случается у многих постоянно (только почему то люди начинают винить linux типа он неправильно файлы пишет).

    Решается отключением файла гибернации (как результат медленное включение windows) командой в cmd.exe под правами администратора:
    powercfg.exe /hibernate off
    После можно файл hiberfil.sys удалить вручную

    p.s. логические ошибки файловой системы коварная штука, могут годами быть в файловой системе и не мешать (полный чекдиск не запускается сам) но зато потом так 'выстрелит', мало не покажется.
    Очень большие шансы что у тебя именно это и случилось
    Ответ написан
    3 комментария
  • Почему клонирование SSD работает из под работающей Windows?

    HemulGM
    @HemulGM Куратор тега Windows
    Delphi Developer, сис. админ
    Это называется теневое копирование. Теневое копирование - это функция ОС, которая позволяет копировать работающий раздел
    Ответ написан
    Комментировать
  • Какой есть универсальный и надежный способ замены байт в файле?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    xxd (hexdump) обычно везде есть

    Переводим bin в ascII дамп, с опцией -p будет сплошной поток. Затем тем же седом меняем, и конвертим ascII дамп назад в бинарник.
    Плюс можно смело менять размер файла.

    xxd -p file.original | sed 's/\x01\x02\x03/\x04\x05\x06/g' | xxd -p -r > file.updated
    Ответ написан
    Комментировать
  • Какой есть универсальный и надежный способ замены байт в файле?

    shabelski89
    @shabelski89
    engineer
    Файл конечно нужно читать не как строковый, а как бинарный, уверен Perl умеет такое :)
    Вот пример на питоне.

    import os
    
    print('Start')
    file = r"C:\Users\ashab\Downloads\libbinaryninjacore.1.dylib\libbinaryninjacore.1.dylib"
    
    search_pattern = b'\xD6\x6C\x9E\xC8\xDC\x86\xF3\xDB\x68\xB2\xB8\xBF\x66\x05\x51\x63\x05\x27\xF4\xEC\x31\x19\x3B\x69\x74\x3E\xE1\xE6\x50\xAB\xB1\xA2\x27\x63\x61\xB0\x03\x83\xF2\x3D\x66\x68\x0A\x68\x1E\xB3\xB8\xDC\x4A\x7F\x91\x51\xE7\x32\xF6\xD4\xB7\x69\x63\xD1\x12\x2A\x8F\x58\x99\x73\x6B\xDE\x7B\x91\x1C\x9F\x2A\x55\xE4\x2D\xAA\x85\x66\xCB\xAD\x43\xBE\x68\x1B\x2F\x38\x15\x49\xC3\x42\xFC\x19\xF1\xF5\x93\xD2\x44\x54\x74\x1D\x17\xAD\xF2\x21\xF6\x33\xA5\xAC\x4D\xE8\x5E\xF6\x02\x36\x28\xF8\xF9\x36\x8C\x61\x6B\x19\x49\xD7\x02\xC4\x19\x5D\x41\x1D\xD5\x1A\x2F\x1B\x84\x59\x83\x22\x99\x03\x5E\xEF\x68\xBE\x1E\xE3\x7D\x92\xA4\xDF\x75\x8F\x58\x92\xC8\xAA\xF6\x35\xA4\x06\xA7\xAD\x4F\x9E\xBF\x03\xEB\x0E\x44\xDA\x48\x5B\xBB\xF0\x98\x3D\xF8\x39\x20\x42\x0A\xE8\x24\xF4\xDA\x3C\xC9\xD1\x69\x95\x35\x63\x5F\x71\x51\xB2\x79\xD2\x71\x44\xB8\xA2\x9A\x65\xB6\xE2\x8C\xCB\xAF\xFD\xDB\xAB\x3F\xDE\x84\xCB\xF0\xE1\xFF\x4E\x28\xAB\x65\x19\x7E\xC9\xFD\x02\x7D\xCD\x7A\xF5\x28\x80\xBF\x14\x32\x75\x78\x2F\x07\x82\xC3\x04\x3B\x47\x02\x04\xB6\x3C\x40\xFC\x7B\xAF\x33'
    replace_bytes = b'\xD2\xBF\x80\x69\xB2\x98\x61\x8B\x54\x27\x2B\x13\xCE\x40\x2C\x37\x82\x6D\x90\x6F\xA0\xDB\x47\xC9\x16\xE3\x04\xD6\x1C\xFE\x84\x73\x06\xAD\x17\x63\xA3\x32\xA6\xFA\xCB\xEF\x13\x3D\xE5\xE6\x34\xB3\x33\x73\x9E\xFF\xFE\x9F\x75\x13\xF7\xC3\x8C\xDF\x4E\xB7\xCE\x27\xB5\x6B\x72\x84\x24\xF9\x41\x0D\xB4\xCD\x3A\xB3\x3D\x2A\x36\x71\x23\x47\x0D\x62\x32\x42\x11\x87\x6D\x83\xC1\x5B\x59\xFB\x7A\x4D\x5A\x74\xE5\x6F\x9E\x44\x3D\xBE\xFF\x30\x28\x9D\x3E\x4F\x84\xE5\x8E\x6A\xB2\x3A\xD4\xF4\x38\x70\x03\x46\x05\xE6\x8E\xDF\x1F\xF9\x02\x56\xAA\x02\x7C\x61\x02\x98\x1B\x8A\x77\x42\xC3\xDC\xFC\x53\x6A\x4D\x98\xC4\xE2\x27\x02\xF2\xBF\xFD\xE2\x98\x5E\x23\x2A\x24\x46\xD5\x75\x0E\x20\xED\xD2\x7E\x59\xFA\x24\x75\xCF\xF2\x88\x2C\xA3\x33\x47\x20\x9F\x62\xDE\xD6\x96\x5D\x85\xB0\x3B\xDE\x6E\x02\xB9\x9F\x68\x0F\x33\xB7\xDC\x08\xF8\x73\x0C\x0B\xCE\x62\x25\x6F\xCA\x56\x13\x21\x3A\x11\x82\xC0\x0A\x36\xA9\xD4\x96\x62\x9D\x15\xC1\xB6\x04\x55\x0F\x97\x38\x8C\x2D\xFD\x60\xCC\x8D\xC1\x5C\xF5\xD6\x1A\x82\x91\x67\xCE\x07\xF9\x79\x81\x68\xC9\x2D\x60\x37\x47'
    
    with open(file, 'rb') as f:
        file_bytes = f.read()
    
    position = file_bytes.find(search_pattern)
    
    if position:
        print(f'Search pattern position - {position}')
        file_bytes.replace(search_pattern, replace_bytes)
    
        out_file_path = os.path.dirname(file)
        new_file_name = 'result.dylib'
        with open(os.path.join(out_file_path, new_file_name), 'wb') as f:
            f.write(file_bytes)
        print('File update success')
    else:
        print('Pattern not found')
    
    print('Exit')


    сделать консольный на раз два - гугл argparse .
    Ответ написан
    1 комментарий
  • Какой есть универсальный и надежный способ замены байт в файле?

    hint000
    @hint000
    у админа три руки
    Меня интересует способ решить проблему, используя только встроенные в систему (в основном речь идет о macOS) утилиты
    там есть dd?
    echo -ne "\x04\x05\x06" | dd of=filename bs=1 seek=`grep -aboP "\x01\x02\x03" filename | cut -d ":" -f 1 | head -c -1`

    Монструозненько получилось (неравный бой с выводом grep). :) Если заглянет xotkot, то придумает, как оптимизировать, у него чёрный пояс по таким вещам.
    Ответ написан
    Комментировать
  • Что в Windows занимает почти 50 ГБ?

    Ziptar
    @Ziptar
    Дилетант широкого профиля
    >Что занимает примерно 46 ГБ?
    Всё то, до чего не может добраться проводник, запущенный с привилегиями пользователя.

    >Как это найти?
    Например, с помощью WinDirStat, запущенным с привилегиями администратора.
    Ответ написан
    1 комментарий
  • Почему этот perl скрипт не меняет байты в файле?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Если взять кусочек комбинации, то все работает.

    Думаю дело в том, как работают такие конструкции.
    Считывается строка, в ней ищется искомое.
    А у тебя в строке я вижу встречается x0A
    То есть скорее всего твоя последовательность байт "разбита" на несколько строк, и для перла это критично.
    Если в комбинации нет 00, То можно так: -0pe

    sudo perl -0pi -e 's/SEARCH/REPLACE/g' filename
    Ответ написан
    2 комментария
  • Поиск всех классов BeautifulSoup?

    DevMan
    @DevMan
    емнип, просто .find_all(class_="className")
    Ответ написан
    2 комментария
  • Какое есть аналог learn.javascript.ru только для python?

    @ruis
    Познаватель
    https://younglinux.info/python (курс с примерами и задачами)
    Ответ написан
    Комментировать
  • Почему дата в 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 тоже лучше обновить.
    Ответ написан
    Комментировать