Задать вопрос
  • Два IP на одном домене. Как настроить переадресацию?

    Это разруливается не через DNS, а через балансировщик.
    У тебя будет, получается, три узла: Основной, Резервный, и Балансер.
    В DNS ты прописываешь балансер (через A/AAA или CNAME - не важно).
    Все запросы от клиентов идут на Балансер и он их пересылает на основной.
    В случае сбоя, Балансер каким-то образом выясняет состояние основного узла (может прямо запрашивать периодически какой-нибудь GET /health или смотреть на ответы, которые он даёт клиентам), и перераспределяет запросы на Резервный в случае, когда был выявлен сбой, и наоборот - в случае сбоя Резервного можно попробовать перенаправить запросы снова на Основной (тут уже как настроишь).

    Попытаться обойтись без балансера можно, но тогда ты столкнёшся с той ситуацией, с которой ты столкнулся:

    При коннекте к www.site1.ru провайдеры через раз подключаются к правильному айпи, то к основному, то к резервному.
    Соответственно где то на сайт заходит, где то нет так как конектится ко 2 айпи который в текущий момент сервер не использует.

    И уйти от этого не получиться, тк это не баг, а фича - DNS сервер провайдера будет кэшировть информацию о записях в твоём домене, чтобы не нагружать твой сервер лишними запросами и быстрее отдавать ответ своим абонентам, при этом при кэшировании может учитываться тот TTL, который ты сам указал.
    + Кэширование может, и скорее всего будет в том числе и на стороне конечного клиента.

    Придирки к терминологии

    Не существует "DNS регистраторов". Есть просто регистраторы, которые говорят что домен принадлежит тебе и позволяют назначить dns-сервера, которые будут этот домен обслуживать.
    И есть отдельно dns-хостинги, где ты можешь прописать различие записи в рамках домена.
    Ответ написан
    5 комментариев
  • НЕ ВЫДАЕТ 144 ГЕРЦ?

    Либо кабель некачественный, либо материнская плата/процессор не поддерживают 144гц в выбранном тобой разрешении
    Ответ написан
    Комментировать
  • Что использовать для хранения файлов, картинок?

    За банку пива можно хранить файлы в S3 - это удобно и хорошо масштабируется.
    Все облачные провайдеры предлагают подобную услугу.

    Если у тебя там счёт не на терабайты идёт и сервис не очень нагруженный - выйдет очень дёшево:
    (Яндекс в качестве примера)
    https://cloud.yandex.ru/docs/storage/pricing
    + Тебя может заинтересовать CDN, который достаточно хорошо с S3 интегрируется

    В базу данных сохраняй только идентификатор, по которому потом сможешь найти файл в хранилище.

    А бесплатным бывает только сыр в мышеловке
    Ответ написан
    2 комментария
  • Как запустить программу Siemens NX?

    Процессор устарел - обновляйся.
    Видимо Siemens NX нужны AVX-инструкции, которых нет в твоём атлоне.
    "Пропатчить" невозможно.

    Ну и встречный вопрос - зачем тебе Siemens NX?
    Ответ написан
    9 комментариев
  • Где создать бесплатную PostgreSQL с соответствием 152-ФЗ?

    1. 152 ФЗ распространяется только на операторов ПД.

    2. Большинство требований 152 ФЗ идут не от использования какого-то "кошерного" ПО, а от введения различных регламентов и процедур на предприятии. Ведение различных журналов доступа к ПД, ограничение круга лиц, которые имеют к ПД доступ, введение ответственных за сохранность ПД, итд.

    3. Есть куча провайдеров, которые предоставляют IaaS, сертифицированный по 152-ФЗ, но просто перенести свои сервера в него, это:
    3.1. Дорого
    3.2. Не достаточно
    3.3. Не является безальтернативным вариантом - ты точно также можешь, в принципе, расположить в кладовке своего офиса стойку с сервером, и таким образом соблюсти требования ФЗ.

    4. Не всегда нужно покупать за 200к лицензию на сертифицированный постгрес - до определённых уровней защиты это можно компенсировать процедурами и регламентами.
    Ответ написан
    Комментировать
  • Как определить ОС с которой пользователь сидит в телеграм?

    Если бы такая функция была, то что она должна была бы вернуть, если пользователь сидит одновременно с десктопа и с мобильного клиента?
    Ответ написан
    2 комментария
  • Почему поле значимого типа не меняется при вызове метода?

    Не меняется оно у тебя из-за того что поле объявлено как readonly:
    private readonly Brick _controllableBrick;

    Убери readonly и всё будет работать.

    PS: Подобный код в тестах сильно снижает читабельность:
    Brick controlledBrick = new(Vector3Int.up * 5, BrickPatterns.LBlock);

    Убери сетап и пиши сразу так:

    var controlledBrick = new Brick(new Vector3Int(0,5,0), BrickPatterns.LBlock);
    var brickSpace = new(controlledBrick);
    brickSpace.LowerControllableBrick();
    Assert.AreEqual(new Vector3Int(0, 4, 0), _brickSpace.ControllableBlockPosition);
    Ответ написан
  • Unity выдает ошибку CS0103 что делать?

    В сообщении об ошибке всегда указывается строка, на которой она возникла и подробное описание.
    Ответ написан
  • Можно ли обучать нейросеть на базе книг?

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

    Если у тебя узкая задача - генерировать рецепты, то лучше как-нибудь предварительно обработать данные и формализовать их, чтобы работать именно с рецептами, а не их текстовым представлением.
    В идеале стоит это всё совместить с классическими алгоритмами, чтобы не получился в итоге рецепт помидоров, жареных в огуречном кляре с заправкой из рыбных потрохов.

    Советую также почитать про IBM Chef Watson:
    https://www.bonappetit.com/entertaining-style/tren...
    Там вообще нет по сути никакого машинного обучения.

    + Ещё учитывай, что просто взять текст произвольной книги и использовать для обучения нейросети - это преступление
    Ответ написан
    7 комментариев
  • В чем отличия между вариантами покупки Visual Studio 2017?

    Слева - только Visual Studio
    Справа - ещё и подписка на Azure Devops
    Ответ написан
    Комментировать
  • Есть ли статьи, которые приводят наглядные примеры того, как код на rust превосходит код на других языках?

    vabka
    @vabka Куратор тега Rust

    Особенно там, где был использован язык Си или С++

    (если исключить memory safety и fearless concurrency)
    1. Хороших плюсовиков найти всё сложнее, ибо молодые разработчики часто хотят что-то более современное/простое/приятное.
    2. Переход с какого-нибудь более высокоуровнего языка на Rust гораздо легче, чем на C++
    3. DX у Rust на порядо лучше.
    4. Код на Rust на порядок более выразительный, чем код на Си

    За счёт этого поддержка кодовой базы на Rust заметно дешевле выходит

    Например вот что Тинькофф пишет:

    Наш Процессинговый Центр занимается разработкой финансовых систем, критичных к даунтайму и времени обработки. Изначально мы делали все свои продукты либо на чистом Си, либо на плюсах (C++14), однако пару лет назад мы переписали большой кусок нашего бэкенда на Rust, и нам настолько понравилось, что теперь все наши новые процессинговые сервисы пишутся на нём.



    Мне бы хотелось видеть какое-то сравнение, что вот так стало сильно лучше и безопаснее, а вот было так написано изначально на оригинальном языке

    Это можно будет определить только если ведётся статистика по багам и они классифицируются по причинам возникновения, но такую статистику ведут не все.
    В среднем статистика показывает, что багов связанных с неправильной работой с памятью в проектах на Rust на порядки меньше, чем в проектах на C++.


    ну тут все-равно unsafe

    В проектах на Rust он явный и от него можно избавиться, завернув в безопасную обёртку, которая будет гарантировать корректную работу с памятью и ffi.
    В проектах на C++ у тебя по факту всё является unsafe.

    ну, нам еще нужен подсчет ссылок

    В плюсах тоже активно пользуются подсчётом ссылок и всякими умными указателями, если по коду не очевидно, когда можно будет освободить память
    Ответ написан
    6 комментариев
  • Eсть ли способ настройки OWA для почтового клиента outlook 2010?

    Thunderbird + SMTP
    Ответ написан
    Комментировать
  • Схема работы с git и dev-сервером. Что посоветуете?

    Проблемы начали возникать когда появился новый разработчик и в прод стали попадать задачи которые еще не протестированы на staging сервере.

    Видимо нужно запретить push в main и разрешить мержить в main только через PR-ы.
    Делается это в настройках репозитория. Branches-> add branch protection rule
    Ответ написан
    9 комментариев
  • Как правильно поставлять готовые приложения на Python?

    А в случае Python есть виртуальные окружения (venv) и pip.
    Инициализируешь venv.
    А потом просто перечисляешь все пакеты и их версии в файле requirements.txt и запускаешь pip install -r requirements

    А вот как передавать заказчикам - зависит от того, что это за софт.
    Где-то может оказаться удобнее использовать zipapp, а где-то может будет лучше запаковать Docker/OCI-образ.
    Ответ написан
    Комментировать
  • Есть ли оболочки (cms) для работы с mysql таблицами?

    и функционала фильтрации я там не видел,

    Через SQL-запросы всё можно отфильтровать)

    Вообще кажется, что вам в принципе нужна какая-то CMS, а не "интерфейс для работы с БД", в которую можно будет закинуть ваши данные и работать с ней.
    Ответ написан
  • Насколько опасно использование заголовка X-Frame-Options: SAMEORIGIN?


    X-Frame-Options
    The X-Frame-Options HTTP response header can be used to indicate whether or not a browser should be allowed to render a page in a <frame>, <iframe>, <embed> or <object>. Sites can use this to avoid click-jacking attacks, by ensuring that their content is not embedded into other sites.

    The added security is provided only if the user accessing the document is using a browser that supports X-Frame-Options.


    Тоесть если этого заголовка нет вообще - значит браузеру разрешается всё.
    Если заголовок идёт со значением SAMEORIGIN - значит разрешается встраивать iframe только если совпадает урл сайта.
    Если заголовок идёт со значением DENY - значит браузеру вообще запрещается рендерить сайт в frame / iframe / embed / object.

    Вывод: если указать значение SAMEORIGIN, то источником click-jack attack может быть только твой собственный сайт.
    Получается, ты будешь уязвим, только если вдруг злоумышленник встроит такую атаку на твой сайт, что возможно только если твой сайт подвержен атакам html-injection или js-injection.

    Если тебе не нужно встраивать нигде на твоём сайте iframe с твоим же сайтом - используй значение DENY чтобы уменьшить возможную площадь для атаки.
    Ответ написан
    Комментировать
  • Как принудительно разлогинить пользователя в случе бана?

    1. Заводишь какую-нибудь табличку для бан-листа, в которую записываешь идентификаторы каждого клиента, которые забанены. (Предварительно тебе бы следовало как-нибудь запомнить, что клиент с таким-то идентификатором от некоторого oidc-провайдера является таким-то пользователем в твоей системе.)

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

    3. Естественно, во всех местах ты должен проверять, что токен не внесён в чёрный список, не отозван, и что сам пользователь не забанен. В случае провала такой проверки - кидай 403 код ошибки, а на фронте при получении такого кода - выводи какое-нибудь сообщение.
    Ответ написан
    Комментировать
  • Как получить корпоративный аккаунт в synthesia.io?

    Напиши в саппорт и опиши свою ситуацию, что уже опробовал и убедился в применимости.
    Ответ написан
    Комментировать