Задать вопрос
  • Как не потерять данные, пришедшие из внешней системы?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Можно, например, просто сохранять любые данные в файлах перед существенными операциями, чтобы в случае необходимости повторить их обработку. И требование по отсутствию СУБД можно обойти, используя embedded-базы типа sqlite/berkeleydb, что часто и делают в таких случаях.
    Ответ написан
    Комментировать
  • Как ограничить доступ к api сайта?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если запрос делается с клиента, то в общем случае никак нельзя запретить клиенту подделать запрос. Но можно усложнить (обфускация, Referer, CORS и всё такое).
    Ответ написан
    3 комментария
  • Как создать общий email для отдела, но автоматически указывать, кто отправил письмо?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Сделать общий ящик с пересылкой всем остальным. Эти остальные настраивают себе почтовую программу так, чтобы в обратном адресе стоял общий адрес, а реальное имя было их собственное.
    Ответ написан
    Комментировать
  • Как установить ос на сервер без ip-kvm/ipmi?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    netboot.xyz совсем не про это, ему как раз без kvm никуда...

    Собрать систему из rescue можно, у всех распространённых дистрибов Linux есть для этого инструментарий (например, debootstrap). Но это квест точно не для неопытного пользователя. Лучше уж тогда запросить подключение kvm (если хостер предлагает, пусть даже и за деньги) либо установить нужную систему штатным инструментом хостера.
    Ответ написан
    Комментировать
  • Как сделать разноцветный текст в терминале Mint?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    man console_codes

    Конкретно за цвета отвечают коды \e[###m, где ### - числа через точку с запятой.
    Ответ написан
    1 комментарий
  • Как отправить сообщение в WhatsApp?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    WhatsApp такого не предоставляет. Есть только решения для бизнес-аккаунтов.
    Ответ написан
    Комментировать
  • Как в python проверить что регулярка выполнилась, и присвоить значение переменной?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Конструкция if переменная = выражение в python запрещена. Считается, что пусть лучше не будет неопределённости между ошибкой в записи сравнения или намеренным присваиванием (хотя такое решение Гвидо многим не нравится).
    Ответ написан
    Комментировать
  • Как правильно верстают письма?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    <img src="cid:имя_файла">
    Ответ написан
    2 комментария
  • Правильное экранирование кавычек для CSV?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Лучше использовать fputcsv и не пытаться сделать хитрее, чем уже придумали умные люди.
    Ответ написан
    Комментировать
  • Raspbian виснет при перезагрузке системы с запущенным Docker контейнером, почему?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Советую попробовать остановить весь докер и убедиться, что без него нормально рестарт проходит. Если нет, то возможно докер и не виноват.

    Вообще бывают у докера проблемы с aufs и devicemapper, но тут используется overlayfs2.
    Ответ написан
    Комментировать
  • Как зайти в том Docker и изменить настройки?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    1. С помощью exec оказаться внутри контейнера (но там может не оказаться годного редактора, а sed/awk может быть недостаточно.

    2. Создать новый временный контейнер, в который подключить этот как volume, и отредактировать, например

    docker run -it --rm -v mail_postfix-vol-1:/xxx debian

    Внутри можно сделать apt update && apt install vim, всё равно контейнер временный и удалится при выходе.

    А вообще считаю надо persistent-данные хранить в каталогах на хосте и пробрасывать внутрь явным образом. Тогда и проблем с редактированием не будет.
    Ответ написан
    Комментировать
  • Не работает GPS на заблокированном Андроидфоне. Как исправить?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Скорее всего надо добавить приложение в исключения режима энергосбережения. Lenovo входит в список проблемных производителей, которые во многих моделях по умолчанию разрешают работать в холостом режиме только доверенному списку приложений (среди которых только всякие скайпы и фейсбуки).
    Ответ написан
    Комментировать
  • Взаимодействие нескольких python скриптов?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Как самое простое решение можно положить json в sqlite, это не требует отдельного приложения, достаточно одного модуля.

    Ещё можно использовать flock на файл (но это кажется работает не на всех системах) или создавать flag-файл после создания json, по наличию которого приложения будут реагировать на изменения (как вариант, можно реагировать на изменение таймстампа flag-файла).
    Ответ написан
    1 комментарий
  • Почему функция pow так вычисляет кубический корень?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Функция pow считает по другим формулам, которые универсальны для различных показателей степени, но дают больше погрешность.

    Помню, ещё в советских калькуляторах МК (у меня был МК-61) 2^2 при использовании операции x^2 давала 4, а с x^y получалось 3.9999996.
    Ответ написан
  • Обход блокировки юзера (Ошибка 403: bot was blocked by the user)?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    try:
      ...
    except telebot.apihelper.ApiException:
      ...
    Ответ написан
    Комментировать
  • Как сохранить состояние Яндекс Карты при переходе, через кнопку "Назад"?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Открывать описание объекта в новом окне или (ещё лучше) прямо в popup карты (чтобы пользователь вообще не нуждался в перемещении на другую страницу).
    Ответ написан
    3 комментария
  • Стоит ли запускать докер с ключем --net=host?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Процессы просто будут запущены в том же сетевом стеке, что и вся остальная система. Во всех остальных смыслах (pid, файловая система итд) они будут точно так же изолированы друг от друга. Ничего принципиально плохого в этом нет, но особого смысла так делать не вижу. В простых конфигурациях docker сам все пробросы разрулит, а в сложных часто применяют альтернативные сетевые конфигурации вместо bridge (например, macvlan).
    Ответ написан
    Комментировать
  • Как правильно сформировать SQL запрос?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    А индексы по foreign key построены? Миллион не такое количество, чтобы join работал плохо.

    Альтернативный путь один - денормализация. Надо все сущности добавить прямо в таблицу products отдельными колонками. Чтобы селектить только из этой таблицы.
    Ответ написан
    2 комментария
  • API Viber и правила?

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

    Противостояние спаму устроено так: если некоторый процент (не очень большой) пользователей после получения рассылки нажал кнопку "блокировать", то сервис блокируется. Поэтому по случайным номерам спамить бесполезно - быстро заблокируют.
    Ответ написан
    Комментировать
  • Как узнать регион по широте и долготе?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    1. Качаем local.osm.pbf с gis-lab

    2. Извлекаем границы:

    mkdump:
    spoiler
    osmosis \
      --rb file=local.osm.pbf \
      --tf accept-relations boundary=administrative --uw --un \
      outPipe.0=rels \
      \
      --rb file=local.osm.pbf \
      --tf accept-ways boundary=administrative --un \
      outPipe.0=ways \
      \
      --merge \
      inPipe.0=rels \
      inPipe.1=ways \
      \
      --wb file=local-bounds.osm.pbf


    3. Загружаем границы в postgis:

    Файл стиля adm.style:
    spoiler
    node,way   name:ru         text      linear
    node,way   name:en         text      linear
    node,way   alt_name        text      linear
    node,way   alt_name:ru     text      linear
    node,way   official_name   text      linear
    node,way   admin_level  text         linear
    node,way   boundary     text         linear
    node,way   name         text         linear
    node,way   ref          text         linear
    node,way   place        text    linear


    Загрузка данных (в базу с именем local, префикс таблиц adm_):

    osm2pgsql -d local local-bounds.osm.pbf -S adm.style -s -p adm --multi-geometry


    4. Теперь можно запросом выяснить принадлежность любой точки:

    spoiler
    local=> select osm_id,name,boundary,admin_level from (select ST_Transform(ST_SetSRID(ST_MakePoint(37.6,55.6),4326),3857) as point) a,adm_polygon b where a.point && b.way and ST_Within(a.point,b.way) and boundary='administrative' order by admin_level::INT asc;
      osm_id  |             name              |    boundary    | admin_level 
    ----------+-------------------------------+----------------+-------------
     -1029256 | Центральный федеральный округ | administrative | 3
      -102269 | Москва                        | administrative | 4
     -1282181 | Южный административный округ  | administrative | 5
      -950664 | район Чертаново Южное         | administrative | 8
    (4 rows)


    Если данные загрузить в ту же базу - то можно одним запросом извлекать данные, принадлежащие нужной области.
    Ответ написан
    Комментировать