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

    Я хочу уточнить - блокируется микросервис (мс) вообще целиком или все-таки только поток, из которого сделан вызов?

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

    Я себе представляю работу так: пусть у нас 2 мс, А и В, сделаны на Spring Web или любом другом веб-фреймворке. Каждого мс по одному экземпляру.
    * Пользователь что-то щелкает.
    * запрос уходит в А.
    * в А создается новый поток (или берется из пула - не важно) для обслуживания пришедшего запроса.
    * А вызывает В и ждет от него ответа.
    * при этом блокируется не весь А, а только поток, который обслуживает запрос.

    Условно так, но на практике даже поток не будет блокироваться - только обработка запроса от пользователя (пользователь не получит ответ, пока B не вернёт ответ)

    Стало быть, если другой пользователь тоже что-то щелкнет, то его запрос тоже будет обслуживаться отдельным потоком, и поэтому сам мс А не блокируется, продолжает нормально работать. Так почему тогда в книге написано, что блокируется микросервис?

    В книге так написано, чтобы было различие между асинхронными и синхронными запросами.
    При асинхронных запросах, вызывающий сервис вообще ничего не должен ждать - он получит уведомление о том, что его запрос обработан.
    Ответ написан
    Комментировать
  • С какой версии unity можно убрать заставку Made With unity?

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

    Технология называется OIDC.
    Бэкенд нужен, дабы ты мог сопоставлять id пользователя сторонней системы с id пользователя своей системы.
    Как подключить аутентификацию через discord/google/госуслуги ты можешь прочитать в соответствующей документации на каждый из сервисов.
    Ответ написан
    Комментировать
  • Как усилить GPS сигнал на модулях для Arduino?

    Вроде сам же ublox даже предлагает собственные активные/пассивные антенны - я бы их попробовал.

    + neo 6m считается устаревшим. Более новые чипы должны лучше справляться с различными помехами (хотя если у тебя толстый слой железобетона, то врядли это сильно поможет.)

    + Можно попробовать разные способы геолокации.
    Если нельзя точно определить местоположение по спутникам, то пусть хотябы по вышкам gsm и по wifi-точкам поблизости определяй. (можно тупо список mac-адресов в смс-ке послать и название оператора, к которому удалось подключиться. В случае кражи - этого будет вполне достаточно, чтобы через полицию и оператора узнать более точное местоположение)
    Ответ написан
  • Можно ли переключать с любого канала на hdmi и обратно на телевизоре автоматически когда придет сигнал с сервера?

    Большинство телевизоров возвращаются на тот же канал, на котором он был в момент переключения на внешний источник.
    Так что остаётся только научиться управлять телевизором - для этого тебе нужен управляемый ИК-пульт (собирай самостоятельно или бери готовый, которые в экосистемах умных домов используются)
    Ответ написан
    5 комментариев
  • Как написать на ассемблере программу без ос?

    Писать программы, которые не зависят от ОС или писать без ОС?
    Если первое, то можно (ОС и EFI же как-то пишутся и работают)
    Если второе, то сейчас не получится. Раньше код писали на перфокартах, которые сразу же были и носителем данных. Сегодня носителями данных являются hdd и ssd, на которые ты сам данные записать никак не сможешь.
    Ответ написан
    Комментировать
  • Палевно ли переводить криптовалюту из США в СНГ?

    1. В момент покупки крипты будет видно, что ты на что-то потратил деньги.

    2. Емнип, криптовалютами занимается комиссия по ценным бумагам, и если ты будешь покупать и передавать криптовалюту через биржу, которая сотрудничает с правительством, то тогда твои операции с криптой тоже будут известны.

    Если не через биржу, то это будет эквивалентно передаче налички из рук в руки - никто ничего не увидит, если специально не будет искать транзакции.

    3. Если ты будешь переводить очень большую сумму, то тобой в любом случае заинтересуются и будут вопросы задавать.

    4. Следует различать "СНГ" и конкретные страны. Переводить "в СНГ" не запрещено. Запрещено только в РФ и РБ.
    Ответ написан
    Комментировать
  • Компьютер начинает плохо работать после 10-30 минут работы. Что делать?

    Больше всего похоже на перегрев: процессор перегревается, уходит в троттлинг, из-за этого не может подготавливать достаточно кадров для видеокарты - из-за этого мало кадров и низкая нагрузка.

    Попробуй для интереса сильно повысить качество графики или зайди в игру, которая слабо нагружает процессор, ограничь fps - если в таких условиях всё будет ок, то значит точно дело в перегреве.
    Ответ написан
    1 комментарий
  • Есть ли разница запуска контейнеров по отдельности или через докер компос?

    А что поднятие одним файлом всех контейнеров, всех сетей, и всех волюмов, с последующим освобождением всего одновременно уже не является достаточным преимуществом? Да ещё и без конфликта имён
    Ответ написан
    Комментировать
  • Можно ли писать бэк на C#, а фронт на React и есть ли в этом смысл?

    vabka
    @vabka Куратор тега Веб-разработка
    Схема вполне рабочая и такой стек применяется во многих компаниях.
    Никаких проблем в C#, применительно к этой задаче я не вижу.
    Ответ написан
    1 комментарий
  • На сколько Java отличается в обозначении типизации от C# для понятия TS?

    У TS типизация структурная и там есть алгебраические типы данных, а у C#/Java номинативная и алгебраических типов данных нет (upd: хотя вроде в жаве есть enum class)
    Ответ написан
    3 комментария
  • Как вы ведете документацию кода?

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

    Так говорят только про случаи типа:
    // Время до перегрева реактора в секундах
    var a = 42;

    return id % 3; // 3 - это количество наших серверов. Тут мы находим id нужного сервера, на котором хранятся данные

    В вышеназванных случаях комментарий не нужен и может быть заменён нормальным неймингом.
    В некоторых случаях комментарии можно заменить на нормальные типы.
    // ПЛОХО!
    /// <param name="time">Дата и в формате rfc2822</param>
    public void DoSomething(string time) {}
    
    // Хорошо!
    public void DoSomething(DateTime time) {}

    Писать комментарии в коде нужно там, где что-то не очевидно (описание какого-то алгоритма или протокола, например, ссылки на задачи, в рамках которых был добавлен какой-то неочевидный, но важный "костыль" и так далее)
    + Следует пользоваться встроенными средствами для документирования.

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

    Если вашей команде документация действительно важна, то её нужно вносить в основной цикл разработки.
    Что-то типа
    Specification -> Design review -> Development -> Review -> Testing -> Documentation -> Release
    Тоесть нет документации - нет релиза. Нужно вносить роль технического писателя, который будет писать тексты и следить за актуальностью.

    которые автоматически показывали бы покрытие кода документацией.

    Код документацией покрывать не надо (по крайней мере так, как это обычно тестами происходит).
    А вот для покрытия методов и публичного api и так есть инструменты для проверки. Например в C# даже warning есть соответствующий.

    что-то похожее на TDD - когда ты пишешь документацию а потом код

    Ну так это и так должно быть в процессе разработки. Аналитик пишет спецификацию, ты, как разработчик, её дорабатываешь до уровня "это вот так лучше реализовать", потом по этой спецификации можно написать тесты и код.

    PS: Попробуй отталкиваться от того, кто будет эту документацию читать.
    1. Новые разработчики в твоей команде во время онбординга? Тогда проще C4 Diagram нарисовать
    2. Другие разработчики, которые хотят с твоим сервисом интегрироваться? Тогда и описывай протокол взаимодействия, примеры приложений, и имеющиеся публичные методы
    3. Техподдержка? Тогда лучше посмотреть в сторону базы знаний
    4. Пользователи системы? Тогда лучше отталкиваться от вариантов использования - инструкции, как сделать то или иное действие, обзоры разных модулей.
    5. Аналитик при продумывании новых фич? Тогда тут нужно что-то среднее между п1, п2, и п3.
    6. Никто? Тогда и не мучай бумагу.
    Ответ написан
    Комментировать
  • Как заставить работать обе видеокарты вместе над одним процессом?

    Это возможно только при условии, если такой сценарий предусмотрен драйверами твоих видеокарт, графическим API, и самой игрой.

    Сейчас такого нет ни в том, ни другом, ни третьем. Когда-то давно подобное можно было организовать при использовании процессора и карточки AMD через crossfirex

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

    Так что ответы:
    1. Сейчас нет.
    2. Только лишь перегрев
    3. Иногда да, а иногда нет.
    Ответ написан
    Комментировать
  • В чем разница между моделями OSI и TCP/IP?

    Модель - это способ классификации сетевых протоколов, а не какой-то стандарт.
    Просто набор слов, чтобы разные специалисты, говоря об одном и том же, использовали одни и те же слова.
    Потому вполне нормально, что при чтении статей о OSI и TCP/IP ты видишь упоминание одних и тех же протоколов.

    Различие у них лишь в количестве уровней и немного в их смысле.
    OSI считается переусложнённой (избыточной) и оторванной от реальности.
    TCP/IP - более простая и более близкая к тому, что ты можешь увидеть на практике (тк по сути закрывает глаза на экзотику, которая работает не на IP-стеке)
    Ответ написан
  • Нужен ли Сетевой уровень в локальной сети.?

    "уровни" в сетевой модели - это просто способ классификации протоколов в сетевом стеке.
    В рамках одной сети возможна маршрутизация по физическим MAC-адресам (именно на них работает протокол Ethernet, например, который в модели OSI считается протоколом Канального уровня).

    В рамках нескольких сетей адресация уже идёт по IP-адресам и используется уже IP-протокол.

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

    Протоколы уровней выше должны обязательно основываться на чём-то. Тот же TCP и UDP, например, обязательно строятся поверх IP-протокола, который принято считать протоколом сетевого уровня. => если ты хочешь в своей локальной сети использовать TCP, UDP или какой-то протокол, который строится поверх них (например HTTP, LDAP, IPP), то тебе обязательно придётся использовать протокол канального уровня в лице IP.

    Есть протоколы, которые вполне могут работать и без IP, но дома ты их у себя врядли увидишь)
    Ответ написан
    Комментировать
  • Под какой лицензией стоит выпускать программу, если спецификация к ней публикуется под лицензией CC-BY-SA?

    Допустим, я разрабатываю техническую спецификацию алгоритма и указываю лицензию CC-BY-SA.

    Авторским правом защищается только текст, но не алгоритм.

    Является ли программа, реализующая данную спецификацию, производной (по условиям CC-BY-SA)?

    Нет, не является.

    Программа может быть выпущена под любой лицензией, так как она реализует алгоритм, а не является копией/редактурой текста спецификации.

    Тут уместна аналогия с шахматами.
    Спецификация - это всё равно что текст правил.
    Алгоритм, который эта спецификация описывает - это всё равно что сами правила игры (поле 8*8 из белых и чёрных клеток, и столько-то фигур, которые могут двигаться определённым образом.)
    Ответ написан
    Комментировать
  • Кто сейчас предлагает бесплатный Tier в месяц кроме Amazon AWS и Google Cloud?

    У Яндекса и MS тоже есть free tier, но учитывай что везде есть нюансы. Например балансировка нагрузки, трафик, и IP адрес часто идут платно
    Ответ написан
    Комментировать
  • Могу ли я отправлять сообщения от чужого имени с помощью telegram бота?


    API телеграмма

    Только тот API, который используется клиентами, а не ботами: mtproto.


    Можно ли использовать для этого AIOgram

    Нет, нельзя.


    Например мне нужно написать сообщение другому боту через бота

    Это звучит как что-то катастрофически неправильное. Скорее всего вашу задачу можно решить иначе.
    Ответ написан
  • Возможно ли роутеру задать нужный мне маршрут?

    1. Вручную задавать маршруты можно только на управляемых роутерах. И то это рекомендуется очень редко.

    2. Роутер имеет информацию только о тех узлах, к которым он подключен напрямую и имеет у себя внутри табличку, в которой сопоставляются подсети, интерфейсы, и абстрактная "стоимость" доставки пакета до этой подсети по этому интерфейсу.

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

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

    3. Изменение маршрута при помощи VPN работает благодаря тому что в ДЦ, где стоит сервер VPN вполне может быть несколько линий связи и прямое подключение к магистрали, которого у твоего домашнего провайдера может и не быть.
    Ответ написан
    Комментировать