Задать вопрос
  • Как намекнуть начальству, что agile не избавляет от тз?

    1. Agile - это про то что люди должны договариваться. По тому надо не намёки делать, а говорить прямо и предметно.

    2. Вот вы говорите, что вам нужно ТЗ. А зачем вам оно нужно?
    Вам не понятна та постановка, которая описывается в карточках?
    Есть неоднозначность?
    Уже есть примеры, когда от этой неоднозначности пострадал продукт (например из-за необходимости переделывать)?

    Или вам нужно не ТЗ, а виденье того, чем в итоге должен стать продукт?
    Не понятно, для чего вообще все эти карточки перекладываются?
    Если так, то, вероятно, вам нужно не ТЗ, а какие-то OKR-ы, чтобы можно было от них отталкиваться при составлении задач.

    Возможно, произошла мискоммуникация между вами и заказчиком. Возможно, заказчик действительно ожидает от вас (команды) самостоятельности при составлении задач - по сути сочетание в себе и менеджера и аналитика.
    Это нормально, но нужно этот момент тоже прояснить.
    Ответ написан
    6 комментариев
  • Как пофиксить ошибку c++?

    Не пытаться устанавливать MySqlConnector.
    Это библиотека, которая предназначена для .NET, а не для нативных плюсов.

    Чтобы ей воспользоваться, тебе нужно сменить тип проекта на "C++/CLI ", но если тебе хочется C++/CLI, то лучше совсем переходи на C#.

    Если хочешь оставаться на C++, то тогда тебе следует поискать другие библиотеки для взаимодействия с mysql.

    PS: а если это новый проект, то лучше бери postgresql, а не mysql
    Ответ написан
    5 комментариев
  • Какой стек выбрать если я хочу разработать интернет-сервис по аналогии с Авито?

    vabka
    @vabka Куратор тега Веб-разработка
    Любой из выбранных подойдёт, чтобы создать что-то похожее на авито.
    При этом у каждого из них будут вполне объективные недостатки.
    Ну и не обязательно ограничиваться только названными.

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

    Нужно соблюдать законы об интеллектуальной собственности.
    "Разрешил всем брать" - это не лицензия.
    Ищи, на каких именно условиях автор разрешил брать.
    Ответ написан
    Комментировать
  • Как скопировать клиентскую часть сайта?

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

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

    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# не кроссплатформенный?


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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    vabka
    @vabka Куратор тега Rust
    нынче развелось довольно много

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

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

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

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

    Но мне это никак не подходит.

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

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

    Потому что в gp такого требования нет.
    Ответ написан
    Комментировать