• VPN с одним статичным IP без аренды сервера?

    vabka
    @vabka
    Токсичный шарпист
    Адекватный VPN бесплатно в принципе быть не может.
    + ipv4 адрес сейчас везде денег стоит.
    Ответ написан
    Комментировать
  • Как определить, что скачиваемая модель может двигаться?

    vabka
    @vabka
    Токсичный шарпист

    но ещё умеет как то двигаться

    У неё должны быть кости. А в описании, скорее всего, автор напишет "rigged".


    И в добавок это движение как то записано в файле модели

    Если она не только rigged, но ещё и анимирована - в описании где-то от этом будет сказано.


    И текстуры данной модели тоже в файле есть?

    Если текстуры автор предоставляет, то они должны быть где-то среди файлов.
    Ответ написан
    Комментировать
  • Как скопировать клиентскую часть сайта?

    vabka
    @vabka Куратор тега ASP.NET
    Токсичный шарпист
    Есть паттерн такой "backend for frontend" - вот тебе нужно сделать как раз его.
    Отдели ту часть, которая делает SSR в отдельный проект, а те места, где идёт обращение к бизнес-логике замени на вызовы твоего web api.

    Соответственно тебе нужно будет написать web api.
    Ответ написан
    7 комментариев
  • Правильно ли я понял свойства распределенных систем?

    vabka
    @vabka
    Токсичный шарпист
    1. Ты запутался из-за того что ты смешал CAP с измеряемыми характеристиками (пропускная способность, доступность, итд)

    Доступность
    Здесь уже появляется неоднозначность.

    Это примерно такая же неоднозначность, как в слове "замок".
    Воспринимай это как разные слова из разных контекстов.
    HA - это про малое количество сбоев, которые приводят к нулевой доступности.
    A из CAP - это про сохранении доступности при выпадении узлов из кластера (если забыть про A, то можно сделать строго консистентную систему из нескольких узлов даже в случае потери связи между узлами - просто вся система будет отключаться)


    По идее, здесь мы поддерживаем согласованность, жертвуя.. доступностью? Но ведь нет же! Мы все равно получим ответ.

    Да, мы жертвуем доступностью, так как ответ мы не получим, если какой-то узел выпал из кластера => операция записи просто не будет выполнена.
    Хотя в реальной жизни мы сразу получим ответ вида "запрос не может быть обработан. Почините кластер"
    Пример такой системы - etcd, в которой ты заранее указываешь размер кластера и если кластер не может придти в состояние кворума (доступно N/2+1 узел, где N-количество узлов), то весь кластер переходит в аварийный режим без возможности чтения или записи.
    Таким образом гарантируется консистентность даже на отвалившихся от кластера узлах.


    Определение доступности из CAP вообще ничего не говорит про задержку (latency).

    Потому что CAP не про это.


    Резюмируя вопросы:


    1. Просто читаем определение:

    High availability (HA) is a system's capability to provide services to end users without going down for a specified period of time. High availability minimizes or (ideally) eliminates service downtime regardless of what incident the company runs into (a power outage, hardware failure, unresponsive apps, lost connection with the cloud provider, etc.).

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


    Какая правильная и полная формулировка Availability из CAP?

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

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

    Любой запрос - любой запрос чтения или записи к любому из работающих узлов системы.
    Завершается откликом - значит тебе дают какой-то ответ, который не является ошибкой.
    Пример доступной, но не консистентной системы управления кадрами:
    Запрос: "Какая зарплата у Иванова?"
    Узел 1: 1000 долларов
    Узел 2: две тысячи долларов
    Узел 3: Иванов у нас не работает

    Пример такой же системы, но в которой действует принцип консистентность:
    Запрос: Иванов уволен?
    Узел 1,2,3: Ошибка: кластер в аварийном режиме.
    Либо:
    Узел 1,2,3: Иванов не уволен.
    Либо:
    Узел 1,2: Иванов не уволен
    Узел 3: Ошибка: отсутствует кворум.

    Запрос: Уволить Иванова.
    Узел 1,2,3: Ошибка: кластер в аварийном режиме. Доступно только чтение.
    Либо:
    Как в третьем варианте, если возможна запись при наличии кворума.


    Единственное, как я смог притянуть за уши с существующей формулировкой.

    CAP не про это.


    Отказоустойчивая система не допускает потери функциональности вообще?

    Пуленепробиваемое стекло не допускает пробития пулями вообще?)
    В случае катастрофического отказа - возможно всё.


    Как, в двух словах хотя бы, проводится измерение производительности и пропускной способности сервиса?

    Два слова: нагрузочное тестирование.

    Теперь все дополнения тут:

    Конфиденциальность. Пользователь уверен, что данные из системы не утекут.

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


    Управляемость
    Это свойство влияет напрямую на доступность. Если система сложная, плохо настроен мониторинг (логи, трейсы, алерты), нет или просто неудобные инструменты для управления инфраструктурой, все это будет отнимать время на ремонт в случае отказа.

    Вообще это в англоязычных источниках называется observability/наблюдаемость.
    Ну да ладно. Просто опять смешали несколько вещей в одну.


    Можно провести небольшое тестирование, собрать метрику по этому эндпоинту, взять среднее арифметическое и вот тебе производительность для конкретно этого эндпоинта.

    Я бы поспорил насчёт среднего арифметического )


    Здесь вопрос в том, как мерить общую производительность сервиса?

    Никак, ведь нет никакой "общей производительности".
    Нагрузочное тестирование существует, но его проводят в профиле какой-то конкретной нагрузки/сценария.

    Например в банковской системе могут проводить нагрузочную систему по нескольким сценариям:
    1. "Чёрная пятница" - резко увеличивается количество карточных операций.
    2. "Реклама у крупного блогера" - резко увеличилось количество запросов на выпуск новой карты. Нужно проверить, как вообще выдержит сервис, отвечающий за эмбоссинг.
    3. "Экономике в стране «очень плохо»" - смотрим как выдержит клиринг при большом количестве межбанковских переводов.

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


    Пропускную способность можно увеличить, распараллелив обработку (горизонтальное масштабирование или процессы и потоки в рамках одного сервиса).

    Или добавив пакетную обработку.


    На задержка напрямую зависит от пропускной способности (производительности) и канала связи. Чем ближе сервер к пользователю, тем меньше задержка.

    А вот и нет.
    У нас вполне может быть узкий канал с низкой задержкой или же широкий канал с большой задержкой.
    А ещё задержка - это время обработки запроса твоей собственной системой.
    Например твой сервис вполне может иметь большой latency, но и большой throughput и наоборот.
    Ответ написан
    2 комментария
  • Почему C# не кроссплатформенный?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист

    Почему C# не кроссплатформенный?

    На этот вопрос нельзя ответить сразу по двум причинам:
    1. C# - это язык, а язык не может быть кросс-платформенным, так как платформы в разрезе языка и нет.
    2. .NET уже много лет как кросс-платформенный.
    Начиная с уже мейнстримного .NET 8, заканчивая mono и всякой экзотикой типа nano framework


    но при этом, это не так

    Ничто нельзя запустить на "чём угодно"


    но в неё вопрос кроссплатформенности решена абсолютно полностью

    Если вопрос "абсолютно полностью" решён, то почему я не могу запускать программы, написанные на Java, на любом железе?
    Ответ написан
    Комментировать
  • Paypal требует документов которых нет, что делать?

    vabka
    @vabka
    Токсичный шарпист
    Раз регистрировался как казах, то должны быть казахские документы - их у тебя пейпал и просит.
    Если ты себе гражданство казахское указал, то требовать они будут казахский паспорт, как подтверждение твоего гражданства.

    Если ты регался как казах, не имея подходящих документов - ССЗБ, ты знал на что шёл.

    Российские документы подойдут, но за них ты получишь бан)
    Ответ написан
    Комментировать
  • Как скрыть консоль в консольном приложении C#?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Сделай из своего приложения службу. Службы запускаются в фоне и без окошка.
    Ответ написан
    Комментировать
  • Генерация чека и отправка в ФНС программными методами?

    vabka
    @vabka
    Токсичный шарпист
    Логично, что чек возможно сформировать и направить в ФНС программным способом без посредников.

    Не забывай, что тебе нужен ещё и фискальный накопитель, чтобы информацию о всех чеках хранить.

    Верно ли я понимаю, что в любом случае придется приобрести онлайн кассу с фискальным накопителем (или использовать сервис онлайн-касса) и заключить договор с одной из ОФД?

    Верно.
    Ответ написан
    Комментировать
  • Как реализуется показ событий в онлайн?

    vabka
    @vabka
    Токсичный шарпист
    Точно также, как этот голевой момент могут показывать на камерах на стадионе - есть люди, которые следят за матчем, они и подсвечивают такие моменты.
    + Положение мяча на поле, вроде как, отслеживается при помощи маяков, как и положение игроков => мб ещё программно определяют интересные моменты.
    Ответ написан
    Комментировать
  • Репозиторий из сайта?

    vabka
    @vabka
    Токсичный шарпист
    1. Скачиваешь все исходники сайта (очевидно, что ту же базу данных в гит пихать смысла нет)
    2. Поднимаешь gitlab на какой-нибудь машине (или используешь облачный)
    3. Закидываешь исходники в гитлаб.
    Ответ написан
    Комментировать
  • Насколько рискованная операция - перепайка сокета в мат. плате? Какова вероятность, что плата будет работать плохо?

    vabka
    @vabka
    Токсичный шарпист
    Если будешь делать сам на коленке, то с вероятностью около 100% убьёшь до конца
    Если ремонтник имеет опыт и обладает всем нужным оборудованием (в первую очередь - это шаблоны для нанесения паяльной пасты для твоего сокета и ИК-станция), то тогда это вполне стандартная процедура.

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

    Если под повреждением понимается просто пара погнутых ног - их можно выправить без перепаивания всего сокета целиком.

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

    Если повреждены внутренние слои платы, то тогда шансов нет.

    Перепаять сокет - это звучит, сложно. Как пересадка жизненно-важного органа.

    А вот свою фантазию подключать не надо.
    Ответ написан
    Комментировать
  • Какие существуют кольцевые lock free очереди / каналы для Rust?

    vabka
    @vabka
    Токсичный шарпист
    Если используешь async, то tokio::sync::mpsc - в токио нет выделенного spsc, так что для таких сценариев рекомендуют его.
    Если допустимо терять какие-то данные, то можешь tokio::sync::watch попробовать.

    Если не используешь async, то блокировка будет, если канал пуст.
    Но в принципе можешь попробовать crossbeam.

    Если нужно настоящее кольцо, то вроде есть крейты с соответствующим названием, но их я не пробовал
    Ответ написан
    Комментировать
  • Какой интерфейс выбрать для SSD для ОС?

    vabka
    @vabka
    Токсичный шарпист
    Брать SSD формфактора M.2 с интерфейсом PCIe Gen3 x4 (так как x2 очень мало вариантов)?

    this.
    Если у тебя будет меньше линий и будет более старое поколение pcie - диск будет работать на скорости этого интерфейса.

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

    ОС по своим размерам просто крошечная, если сравнивать с играми и грузится в память не так часто.
    Честно скажу, что я не особо почувствовал прироста в скорости после переноса ОС с sata на очень быстрый nvme

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

    vabka
    @vabka
    Токсичный шарпист
    Используется только во время хендшейка, чтобы обменяться ключами и проверить подлинность.
    Данные не шифруются, тк асимметричное шифрование медленное из-за сложной математики.
    Ответ написан
    Комментировать
  • Проверяет ли Роскомнадзор на территории какой страны расположен сайт?

    vabka
    @vabka
    Токсичный шарпист
    По идее для каких-то сертификаций ты должен будешь пройти аудит, и во время аудита как раз выяснится, где ты хранишь данные.
    Вообще ничего сильно сложного нет в том чтобы небольшой сервер в россии взять чисто для ПД.

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

    Тем более что тебе не запрещают хранить на иностранных серверах, а обязывают хранить на российских.
    Ответ написан
    4 комментария
  • Какой Rust GUI лучше для прода в 2024?

    vabka
    @vabka
    Токсичный шарпист
    нынче развелось довольно много

    Не так уж и много.

    Наиболее близкое к проду, кмк - tauri из-за коммьюнити, хорошей документации, и гибкости, тк html+css.

    Если тебе допустимо immediate mode и внешний вид не сильно важен (к примеру какая-то небольшая утилита или ui для отладки в игре), то egui тоже норм.
    Ответ написан
    4 комментария
  • Как сделать шаблонный метод для мат операций с числами и Типом Vector2?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Vector2 не реализует интерфейсы INumber и прочие новые => никак ты вокруг него женерик не сделаешь.
    Ответ написан
    Комментировать
  • Как опубликовать приложение в App Store с платным контентом и пополнением баланса виртуальной валюты?

    vabka
    @vabka
    Токсичный шарпист
    Но мне это никак не подходит.

    Значит Apple store тебе мимо. Вот Fortnine тоже из-за этого с аппстора погнали

    В Google Play приняли без проблем

    Потому что в gp такого требования нет.
    Ответ написан
    Комментировать
  • Как рассчитать температуру воды в общей емкости?

    vabka
    @vabka
    Токсичный шарпист
    По формуле теплоёмкости.
    Чтобы нагреть 500 литров воды с 20 градусов до 45, нужно 4200дж/кг*К*500кг*(45-20)=52500000 дж = 52500 кДж

    в минуту мы гоняем по 2 литра, которые нагреваем до этих 45 градусов, получается мы будем гонять по 210 кДж.

    Получается 52500/210 чуть больше 4х часов.
    Но! Это нижняя граница, тк вода постепенно перемешивается и в минуту уже будет передаваться меньше 210 кДж.
    + С какой-то скоростью тепло будет уходить, тк бочка не термос, причём чем выше температура, тем быстрее будет уходить тепло.
    Строго говоря, до 45 градусов вода вообще может никогда и не нагреться, если теплообменник нагревает воду ровно до 45 градусов, тк пока вода крутиться - какое-то количество тепла уйдёт и будет температура 44.99999
    Ответ написан
    9 комментариев
  • Почему x ограничен от -1 до 1?

    vabka
    @vabka
    Токсичный шарпист
    Потому что тогда это уже будет не биективное отображение.
    Вроде как дальше есть доказательство.
    Ответ написан
    Комментировать