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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Всё считающие, что пузырь ИТ сдулся, должны работать ещë усерднее без всяких повышений, а то вдруг зарплату наоборот срежут или вообще сократят.
    Ответ написан
    Комментировать
  • Почему сайт медленно грузится?

    Kleindberg
    @Kleindberg
    Full stack
    Помимо выше сказанного, добавлю, что мне очень помог плагин Code Profiler Pro - он делает аудит сайта и показывает, какие плагины на сайте работают медленнее всего и в чём именно ошибки.

    А так советы будут стандартными:
    1. Выбрать хостинг получше. Если сайт заточен под одну страну, то хостинг брать в той же стране. Мы используем псевдо-VPS, а у вас скорее всего обычный shared-хостинг?
    2. Перейти на PHP 8.2 и всегда следить за последними версиями.
    3. Поставить и настроить CloudFlare (хотя если вы из РФ и сайт только для своих, то лучше не надо).
    4. Настроить кэширование на хостинге: Redis Object Cache, WP REST API Cache, WP-Rocket и так далее.
    5. Пересжать все фото (вручную через JPEGMini или TinyPNG либо автоматически с помощью Jetpack или сторонние сервисы CDN).
    Ответ написан
    Комментировать
  • Программирования учат или применяют?

    Griboks
    @Griboks
    Всё неправильно, потому что вы видео смотрели на ютубе. А надо было в тиктоке - тогда бы сразу выучились на джуна после просмотра.
    Ответ написан
    5 комментариев
  • Amazon SES и жалобы от mail.ru. Как не попасть в бан от Амазона?

    @mrwtf Автор вопроса
    >Возможно, не в реальном времени, и вы увидите это на след. день?

    Уже несколько дней прошло,пока изменений не увидели.

    >я бы обратился в их поддержку с примерами писем и жалоб
    Так и попробуем сделать.

    >возможно стоит вместо Mautic попробовать какой-то российский сервис

    Не очень хотелось бы..но на крайний случай порекомендуем рассмотреть этот вариант.
    Спасибо!
    Ответ написан
    Комментировать
  • Каким образом узнать ImageId Ubuntu 20.04?

    @mureevms
    aws ec2 describe-images \
        --filters \
           "Name=owner-id,Values=099720109477" \
           "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-*-20.04-*-server-*"  \
           "Name=architecture,Values=x86_64" \
           "Name=creation-date,Values=2023-*" \
        --query 'Images[*].[CreationDate, ImageId]' \
        --region us-east-1 \
        --output table \
        | sort

    Последняя строка в выводе - искомый AMI
    Обратите внимание на параметр region. В разных регионах будет разный image-id.
    owner-id = 099720109477 это Canonical

    Вспомнил о сервисе поиска AMI на сайте ubuntu, там можно отфильтровать по параметрам, в качестве результата выводится последний созданный образ https://cloud-images.ubuntu.com/locator/ec2/
    Ответ написан
    Комментировать
  • Как лучше хранить журнал в долгосрочной перспективе?

    Stalker_RED
    @Stalker_RED
    По сути три больших направления с кучей мелких ответвлений
    1. хранить текстовый лог в отдельном файле/сервисе/логохранилище
    2. хранить лог действий юзеров в отдельной таблице (встречал один проект, где лог действий был в десятки раз больше, чем сами данные, ага).
    3. хранить в той-же таблице предыдущие записи. То есть при редактировании INSERT, а не UPDATE, при этом автоматически проставляется время и автор, а при выборке просто берете последнюю по времени версию.

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

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

    С учетом "использоваться будет, я надеюсь редко" я бы остановился на текстовом логе. Отдельный лог на каждую запись, можно архивировать старые, можно logrotate натравить.
    Ответ написан
    1 комментарий
  • Как лучше хранить журнал в долгосрочной перспективе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как его лучше хранить? Организационная часть. Если вы хотите хранить его так чтобы никто не изменил - то надо строить отдельным сервисом. Иначе те-же люди что и натворили бед смогут зачистить свои следы. Или я не понял корень вашей проблемы.

    Техническая часть. Очевидно что нужна еще одна таблица. С датой аудита. С реквизитами пользователя который делал бизнес-операцию. И две версии данных. "До" и "после" изменения. Данные можно хранить в денормализованном формате (XML или Json) для простоты схемы.
    Ответ написан
    4 комментария
  • Что особенного в IP адресе 8.8.8.8?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Многие провайдеры при истощении баланса перенаправляют все клиентские http-запросы на свою страничку с уведомлением о необходимости оплаты и каким-нибудь эквайрингом. Очевидно, что для их работы нужен работающий DNS, а зачастую ещё и доступ к CDN. Провайдеры поумнее оставляют доступ к своему DNS и запросы к CDN тоже через себя проксируют, но некоторые не заморачиваются и просто оставляют часть доступа в дикий интернет.
    Ответ написан
    3 комментария
  • Как сделать аутентификацию исключительно через SSH ключ?

    Нет.
    А в чём собственно безопасность? Токен можно выпустить только если залогиниться в твой аккаунт на сайте.
    Если злоумышленник в него залогинился - он легко может добавить свой SSH ключ или вообще коммитить через UI.
    Ответ написан
  • Какую key-value БД использовать с данными в 10 млрд строк записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько мыслей.

    1) У меня устойчивое дежа-вю. Периодически в топик заходят люди с именно этим вопросом. Разница только в количестве. Кому 1 млрд. Кому 10. Можно также поискать и слинковать эти вопросы в один большой вопрос.

    2) MySQL который указан в тегах - нормально справляется с этой задачей. Он и не такое число строк
    умеет хранить. И если взять MariaDb - там есть куча новых engines которые можно крутить для тюнинга
    именно скорости чтения. Разумеется жертвуя чем-то другим. Транзакциями и записью например.

    3) Непонятно что такое минимальное время? Если использовать дисковую БД типа MySQL то деградация времени
    поиска будет примерно зависеть от логарифма количества строк. Тоесть деградация будет но очень медленно.
    Для 10 млрд индекс по key будет содержать порядка 4-5 уровней BTree дерева. Тоесть дисковой системе
    нужно будет сделать до 5 или до 6 рандомных чтений (если нужные данные лежат в таблице). Это достаточно
    быстро для того чтобы моргнуть глазом за это время. Рандомное чтение любого блока из магнитного диска
    класса SATA-3 занимает порядка 20 милисекунд. Тоесть для 5 уровней - это 100 милисекунд. Для дисков
    класса SSD и это время можно уже считать меньше милисекунды. Точно я не знаю надо мерять.

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

    4) Непонятно зачем здесь указан Redis. Его задача не хранить 10 млрд а хранить только горячие
    ключи по котороым идет очень частый доступ. Если автор хочет In-memory хранение - то время можно
    еще сильнее улучшить. Его можно свести практически до нуля (я вангую несколько микро-секунд)
    но придется прикупить планок памяти побольше и посчитать сколько памяти
    надо для 10 млрд key/values неизвестной длины. Вообще крутить регулятор в направлении
    микро-секунд нет особого смысла т.к. другие звенья вашего стека (приложение и сеть) могут
    быть на порядки медленнее а это вообще нивелирует всю пользу от такой оптимизации.
    Ответ написан
    41 комментарий
  • Как узнать, для какого процессора предназначен файл?

    bingo347
    @bingo347
    Crazy on performance...
    readelf -h /home/usr/qt-android/mylib.so
    Ответ написан
    Комментировать
  • Как защитить админку?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Любая авторизация должна выполнятся на строне сервера, всё что на стороне клиета обходится на раз!
    Как именно - дело Вашею Есть десятки систем авторизациию Имя + пароль - самая распостраненная
    Ответ написан
    1 комментарий
  • Как проложить путь в devops?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    У Девопс инженеров в основном работа удаленная и должна быть, так как в отличие от чистых сисадминов, девопс инженеры не всегда работают напрямую с железом. Но зависит от проекта.

    Девопс инженер - обычно опытный админ, поэтому конечно, было бы лучше сперва поадминить. Но опять таки, зависит от проекта. Где-то может быть куча "джуниорской" работы, которую нужно разгребать. В этих случая я бы посоветовал искать крупные компании, где девопс это целый отдел, а не 1-2 человека, тогда больше вероятность увидеть там джуниор-девопс вакансии.

    Но если интересно писать код - то не следует идти в девопсы. Девопсы это больше администрирование, поддержка инструментов, которые используются для разработки, тестирования и деплоймента и автоматизация єтих инструментов. Но непосредственно написания кода - там немного.
    Ответ написан
  • Как переименовать файлы с определенным условием в Linux?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В Linux есть замечательная утилита rename. Ну, точнее, их две: одна входит в пакет util-linux, другая - скрипт на базе perl-модуля File::Rename. В deb-дистрибутивах нужный нам скрипт устанавливается в составе пакета rename и также имеет имя второе file-rename (а версия из util-linux имеет имя rename.ul). В других дистрибутивах может быть иначе, поэтому смотрим внимательнее параметры запуска (можно запустить rename без параметров и убедиться, что это нужный вариант).

    Синтаксис предельно простой: rename регулярное_выражение_замены_perl имена_файлов

    Синтаксис rename.ul для сравнения: rename что_заменить на_что_заменить имена_файлов

    Вот что можно сделать для решения задачи (в предположении, что других точек, кроме как перед расширением, в имени файла нет):

    rename 's/-\w+\././' *

    Этот скрипт намного удобнее многоэтажных однострочников, да и пригодится в жизни ещё не раз.
    Ответ написан
    7 комментариев
  • Почему запрос возвращает не все репозитории с GitHub?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Потому что кое кто не читает документацию
    63ec08aea3982362368400.jpeg
    Ответ написан
    1 комментарий
  • Как по вашему мнению рациональнее собрать дисковую систему на сервере?

    Melkij
    @Melkij
    PostgreSQL DBA
    raid10 на 6 дисков, конечно, если место не поджимает. Быстро, удобно, нет извращений "ой, системный диск пустой и вообще по нулям i/o, вебовый забит под завязку, а диски под базой загружены в потолок".
    raid5 под базой зрелище зело печальное в работе.
    Ответ написан
  • Что делать, если не можешь понять?

    @12rbah
    Что делать, если не можешь понять или запомнить в программировании что-то новое. К примеру пытаешься понять, а результата 0.
    Спросить конкретно что непонятно и повторять до тех пор пока не получиться понять, а не задавать абстрактные вопросы. Ну и важно помнить о целесообразности, условно если вы залезли в исходники линукса и там ничего не понятно, поковырялись два дня и ничего не поняли, то стоит подумать нужно но ли оно вам, если нужно то тогда нужно начать с изучения более простых вещей. А так это нормальная практика по началу, когда читаешь что-то и даже с 10 раза не понимаешь, можно день/два отдохнуть от этой темы и заниматься другими вещами, а потом вернуться.
    P.S. Так а что конкретно непонятно?
    Ответ написан
    Комментировать
  • После подключения бд в Docker все данные стерлись, это нормально?

    @momoru_kun
    'ENGINE': 'django.db.backends.sqlite3',

    Замените 'ENGINE' c django.db.backends.sqlite3 на django.db.backends.mysql
    Сейчас у вас из-за бэкенда БД sqlite просто создается база данных django-app-db1
    Ответ написан
    1 комментарий
  • Добавление ключа luks в initramfs?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    используйте TPM, шифрование без дополнительного подтверждения (пароль, токен и т.п.), либо при возможности внести изменения в конфигурацию загрузки (которое и блокирует TPM) - не имеет смысла.
    Ответ написан
    1 комментарий
  • Как запустить команду при отсутствии пинга?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Лучше воспользуйтесь специализированной программой monit, её создали как раз для этого.
    Ответ написан
    5 комментариев