Задать вопрос
  • В телеграме не подгружается картинка с Wordpress. Почему?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Телеграм кэширует preview ссылок. Поэтому бесполезно менять что-то на сайте, когда он уже запомнил не то, что нужно.

    Решение: находим бота WebpageBot, вводим ему ссылку - и он обновляет preview на серверах Телеграма. Только что проделал это с указанной ссылкой - и всё заработало.
    Ответ написан
    8 комментариев
  • Что будет, если зарегистрировать брендовый домен?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Очень много может зависеть от юрисдикции организации-владельца доменной зоны и от правил этой зоны. Не обладая юридически обоснованным правом на набор букв, можно как годами не испытывать проблем, так и нарваться на чьи-то зарегистрированные права.

    Например, мне известен совсем недавний случай, когда одна крупная международная компания (представленная и в России), производящая продукты питания и использующая некоторый зарегистрированный бренд из двух слов, потеряла домен первое_слово.company из-за того, что оно само по себе было чьим-то товарным знаком. При этом указанная компания могла бы зарегистрировать в _некоторых_ странах этот товарный знак и всё равно потерять домен по причине невладения таким товарным знаком в США.

    Аналогично может пострадать и Сбер, если домен с его названием будет зарегистрирован в юрисдикции, где у него нет товарного знака. В каком-нибудь Вьетнаме, например. Кстати, вьетнамские домены sber.vn и sberbank.vn свободны (наверняка в домене vn есть ограничения на регистрацию нерезидентами), а индонезийские sber.id и sberbank.id захвачены известным российским киберсквоттером.

    Также можно вспомнить, что в нулевые годы гугл долго не мог заполучить gmail.ru и google.ru, поэтому был вынужден ютиться в домене google.com.ru.

    Так что нет универсального ответа на этот вопрос. Если найдётся свободный домен, похожий на чей-то, то иногда может и прокатить. Но если домен будет не просто простаивать, а использоваться по отношению к тому же самому Сберу и хоть сколько-нибудь заметен, то ему это вряд ли понравится, а уж в США у Сбера вполне может найтись давно зарегистрированный товарный знак в качестве инструмента давления.
    Ответ написан
    Комментировать
  • Facebook api как зарегистрированным пользователям на сайте сделать рассылку на email?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Это вопрос не к Facebook.

    Регистрация через Facebook устроена так: пользователь жмёт кнопку, его кидает на сайт Facebook, там его предупреждают, что такие-то данные будут переданы такому-то сайту. Включая e-mail (хотя пользователь может вручную запретить передавать именно его). После согласия Facebook передаёт сайту эти данные, в том числе e-mail, и вот в этот момент его надо сохранить в свою базу, чтобы дальше уже своими инструментами посылать письма.
    Ответ написан
    Комментировать
  • Как вывести ВСЁ закодированное json_encode(в php) содержимое файла в python?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Смотрим в сторону модуля json

    import json
    
    data = json.loads(dirtyJson)
    print (data["foo"]["bar"][666])
    Ответ написан
    Комментировать
  • Форматирование строк с округлением вниз?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Можно вот так сделать:

    math.floor(balance*100)/100
    Ответ написан
  • Как сделать кнопку Viber с шаблоном сообщения?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    viber://chat?number=%2B79123456789

    К сожалению, у Viber всё плохо с нормальным документально обоснованным форматом ссылок, и раньше уже переставали работать некоторые из них, например, viber://contacts больше не работает.

    Есть документация по deep link для ссылок на Public Accounts. Есть также такие официальные:

    viber://keypad?number=%2Bxxxxxx - открывает номеронабиратель Viber с этим номером
    viber://chat?service=xxxxxx - ссылка на Viber Service
    viber://more/qr - открывает QR-сканер
    Ответ написан
    Комментировать
  • Можно ли "разбить зеркало" не угробив систему (mdadm)?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если это именно зеркало (raid1), то да, можно работать на половинке зеркала, ведь она идентична второй половинке. Например, если с одним из дисков есть аппаратные проблемы, то его меняют, затем синхронизируют данные, причём всё это можно сделать без остановки системы (при наличии возможности горячей аппаратной замены диска).
    Ответ написан
  • Как вывести содержимое файла имея только команды echo и ls?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Владелец файла неважен, важно наличие доступа. Если доступа на чтение нет, то это всё, приехали.

    Так-то кратчайший вариант тут указали:

    echo `<-text.txt-`

    Но я думаю пользователя волновал именно минус в имени, а не наличие cat, и вот с этим побороться легко:

    cat -- -text.txt-
    cat ./-text.txt-
    Ответ написан
    Комментировать
  • Почему в среде Linux админов Vim - это тру, а Nano - для слабаков?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вопрос в такой форме в принципе не очень корректен. Понятно, что vim может намного больше и намного круче, чем nano, но в конкретной ситуации важно не то, насколько крут используемый инструмент, а твоё личное умение решать задачи.

    Кто-то может быть и хорошо шпарит всякие клёвые штуки на vim, но элементарные задачи будет решать бездумными копипастами со Stackoverflow, чреватыми получением какого угодно (вплоть до деструктивного) результата. А в это же самое время опытный админ типа одного моего хорошего знакомого быстро и эффективно решит все проблемы в малоизвестном нынче, но весьма популярном лет 20 назад среди пересевших с DOS на UNIX редакторе joe. Ничего предосудительного в этом нет.
    Ответ написан
    Комментировать
  • Возможно ли динамически сформировать файл конфигурации, если требует указать к нему путь?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Можно сделать как-то так:

    echo some_file_content | command /dev/stdin

    Тогда команда получит в качестве имени файла /dev/stdin, который означает стандартный ввод и будет при чтении возвращать строку some_file_content. Но надо учитывать, что seek по такому файлу невозможен, поэтому если программа не просто читает файл построчно, а пытается перемещаться по нему, то это не сработает.

    Если не хочется занимать stdin или надо передать так несколько псевдофайлов, можно сделать так:

    command <(echo some_file_conten)

    Фактически command получит в качестве аргумента что-то типа /dev/fd/63. Можно убедиться, сделав

    ls -l <(echo hello)

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Это точно один и тот же файл? Можно сделать stat на файл в системе и отдельно в контейнере, зайдя в него по docker exec. Если inode у файла разный - это разные файлы. Возможно, с пробросом в докер что-то напутано.

    Как называется пользователь зависит от содержимого файла /etc/passwd, который в контейнере и на хосте разные. Пользователь в Linux идентифицируется по uid - это просто числовой идентификатор. Соответственно, uid=0 это root, теоретически его можно переименовать, но так никто не делает.
    Ответ написан
    Комментировать
  • Что означает '/' в 'NAME': BASE_DIR / 'db.sqlite3' в Django?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если посмотреть внимательнее, то BASE_DIR - это не строка, а экземпляр класса pathlib.Path, для которого определён оператор / между Path и str. Дока https://docs.python.org/3/library/pathlib.html
    Ответ написан
    Комментировать
  • Развалился raid1 массив или оба диска вышли из строя? Как быть в такой ситуации?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Всё нормально, на /dev/md# и не должно быть таблицы разделов. Почему возникла мысль, что что-то не так?
    Ответ написан
  • Какого посредника выбрать для интеграции crm и whatsapp?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если речь идёт о сервисах, продающих за 200 рублей в месяц и подключающих за один день - это всё имитации WhatsApp Web. Легальный WhatsApp Business API стоит дороже и подключают его порой по 2-3 недели (из-за модерации на стороне Facebook).

    Указанные два относятся к категории имитаторов Web и это вовсе не скрывают. Но второй более известный и хотя бы предоставляется в России от имени ИП, первый же имеет явно кликбейтовое название, никаких реквизитов владельцев нет, плюс из контактов на сайте только телеграм-бот, короче, я бы поостерёгся. В любом случае, Важный и Ценный Аккаунт, Который Нельзя Поменять я бы не стал отдавать в подобные сервисы, поскольку в случае бана он будет потерян.

    Поставщиков имеет смысл выбирать в первую очередь по признаку наличия интеграции под нужную CRM.
    Ответ написан
    Комментировать
  • Как исправить .OSError: [Errno 22] Invalid argument при docker-compose up?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В Windows используется COMPOSE_PATH_SEPARATOR=';', но это можно переопределить через env.

    Кроме того, в Windows компоненты пути разделяются обратным слешом, поэтому в данном случае docker-compose решил, что в COMPOSE_FILE одно имя файла, лежащего в текущем каталоге.
    Ответ написан
    Комментировать
  • Загрузочная запись в ISO образе?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Что значит "с помощью dd записал iso"? Нельзя в iso9660 просто так ковыряться внутри. Надо смонтировать (через loop device), достать файлы, внести изменения, собрать обратно.

    Чтобы диск остался загрузочным, надо понять, какой там загрузчик (вероятно, isolinux?) и пересобрать iso с учётом этого (например, для isolinux смотреть тут: https://wiki.syslinux.org/wiki/index.php?title=ISOLINUX).
    Ответ написан
    1 комментарий
  • Парсинг википедии с помощью Beautiful Soup?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Википедия, в отличие от большинства сайтов, не ставит задачу сокрытия данных от использования. Кроме её парсинга полезно рассмотреть альтернативные способы:

    1. Парсинг дампов SAX-парсером: https://dumps.wikimedia.org/ruwiki/latest/

    Главное в тексте находить нужные категории.

    2. Использование SPARQL к Wikidata: https://query.wikidata.org/

    Например, я наскоро набросал такой запрос, находящий все элементы субклассов "животное":

    select ?animal ?animalLabel where {
    # субкласс (wdt:P729) животного (wd:Q729)
      ?animal wdt:P279 ?animalSubClass.
      ?animalSubClass wdt:P279* wd:Q729.
      SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en". }
    }


    К сожалению, не всегда данные в Википедии хорошо размечены семантически, поэтому в подобную выборку может попасть не всё. Ну и полно будет извлечено из enwiki.
    Ответ написан
    Комментировать
  • SDL — это библиотека которая объединяет API разных ОС?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нет, SDL - это кроссплатформенная библиотека для работы приложений с мультимедиа (аудио-видео). Никакие "API разных ОС" (что это, системные вызовы что ли?) она не объединяет.
    Ответ написан
    Комментировать
  • Как сделать многопоточность в чат-боте Вкотакте?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Потому что иметь одну переменную (или один набор) для описания состояния пользователя - это несовместимо с одновременной работой с множеством пользователей. Нужно заводить словарь состояний пользователей, используя их id как ключи.
    Ответ написан
    Комментировать