• Как избавиться от спама Яндекс карт?

    Это не "спам", а запись действий пользователя в вебвизор.
    Если помимо Я.Карт у вас ещё подключена Я.Метрика, то вы можете уменьшить количество сигналов, отключив вебвизор в её настройках. Скорее всего, это ваш случай.
    Если же это сами карты отправляют себе аналитику, то вы с этим ничего не сделаете, вряд ли они сделали опцию для отключения.
    Ответ написан
    Комментировать
  • Где лучше получать ввод - в Update или FixedUpdate?

    GavriKos
    @GavriKos Куратор тега Unity
    Вся документация говорит что "в апдейте".

    Аргументация - FixedUpdate работает не каждый кадр, что в целом и написано в документации. И он предназначен для просчетов физики.
    А вот как раз всякие ивенты привязаны именно к Update.
    Ответ написан
    Комментировать
  • Почему мой код работает медленнее?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    В более быстром варианте вот тут за константное время проверка делается.
    if (track.ContainsKey(chest))
            {
              yield return track[chest];
              continue;
            }

    У тебя она сделана через цикл:
    for (int i = 0; i < chests.Length; i++)
                    {
                        if (point.Value.Equals(chests[i]))
                        {
                            yield return point;
                        }
                    }

    Если я не туплю, и эти куски действительно делают одно и то же.

    А вообще более детально разобраться в причинах низкой скорости ты можешь:
    1. При помощи бенчмарков (гугли BenchmarkDotNet)
    2. Посмотрев на листинг кода, который генерирует компилятор (смотри sharplab)
    3. Путём профайлинга - посмотри на dotmemory и dottrace
    Ответ написан
    Комментировать
  • На каком игровом движке создают подобного рода игры?

    @dima20155
    you don't choose c++. It chooses you
    Полагаю, что самый первый скил, который вам необходим - это умение гуглить. Мобильные игры довольно часто создаются на unity, но есть и другие движки поддерживающие такую функциональность тот же unreal (погуглите возможности движков, погуглите распределение рынка мобильных игр). На счёт литературы: многое терабайты курсов, книг на любом языке платно и бесплатно есть в интернете, все свободно находится в поисковике, вот прям без малейших проблем.

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

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Ты никак не используешь возвращаемое значение.
    enemy.GetComponent<Enemy>().TakeDamage(Damage, EXP)


    Видимо тебе нужно чтото типа:
    var exp = enemy.GetComponent<Enemy>().TakeDamage(Damage, EXP);
    Debug.Log(exp);


    Чтобы в будущем таких конфузов не случалось - изучай C# как самодостаточный язык, а не как "скрипты для юнити"
    Ответ написан
    2 комментария
  • Как эффективно использовать 'сервисы' для обращения к БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По поводу смыслов. Обычно с БД работают сущностями (entities). Я не специалист в Node и я не знаю
    как у вас принято. Кажется в новых ecma-спецификациях уже ввели понятие класса.

    В данном коде идет проверка на то что email существует. Но полезный эффект - слабый.
    Я-бы сразу возвращал сущность пользователя. Чтоб не бегать потом в базу еще
    раз когда надо поискать имя или дату регистрации. Ну идея такая что
    если вы уж пошли в базу (это сетевой round-trip) то постарайтесь
    за этот трип собрать максимум информации.

    Вот это более рационально
    export const findUserEntityByEmail = async (
      email: string
    ): Promise<User> => {
      try {
        const users = await db
          .query('SELECT * FROM accounts WHERE email = $1', [email])


    Тоже самое относится к выборкам множества строк по множеству ключей.
    Лучше сделать 1 callback который вернет коллекцию чем для коллекции
    ключей дергать один несчастный метод который по штучке что-то достает.

    Еще важне - join. Если соединяете сущности - то соединяйте сразу в БД
    без попыток соединять в приложении. Это кстати еще бонус к компетенции
    в части ACID.

    Тоесть идеальный вариант работы с БД - запросить пакетом всю информацию
    что может потербоваться на ближайшие несколько секунд. Это рациональнее
    чем потом что-то подтягивать.
    Ответ написан
    6 комментариев
  • Ошибка SqlDataReader?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Так вам же английским по белому пишет - не инициализировано свойство Connection.
    Где инициализация sqlConnection?
    Ответ написан
    3 комментария
  • Программа как сделать com file?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    ; устанавливаем сегмент стека
    mov ax, s_seg
    mov ss, ax
    ; устанавливаем сегмент данных
    mov ax, d_seg
    mov ds, ax


    пишет segment relocate

    Ну правильно пишет, вот же у тебя код хочет загрузить в ax то s_seg, то d_seg как константы, откуда он их возьмёт без релокаций? Если хочешь com-файл, то либо пиши вместо этого mov ax, cs ; mov ds, ax, либо вообще этот код выкинь, потому что com-файл и так стартует со всеми сегментами указывающими в одно и то же место.
    Ответ написан
    Комментировать
  • Как сделать сертификаты для поддоменов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если портятся сертификаты - лечить нужно причину порчи сертификатов, а не вот это вот все!
    Ответ написан
    Комментировать
  • Для чего на микрике мыши 3 контакта?

    Stalker_RED
    @Stalker_RED
    микрик для мыши распиновка
    bc6c5b.jpg
    Один нормально замкнутый, другой нормально разомкнутый, можно было и догадаться или прозвонить.
    Теперь ваша мышь ловит наводки на провод, либо же, даблклики были из-за излома в проводе, и перепайка микриков ничем не помогла (а может проблемы были и в микрике и проводе одновременно).
    Попробуйте отрезать несколько сантиметров провода, чаще всего он убивается в точке выхода из мыши. Жилы изламываются и начинают плохо контачить, изоляция изнашивается, вот это все.
    Ответ написан
  • Как лучше вносить изменения в стороннюю библиотеку С?

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

    vabka
    @vabka
    Токсичный шарпист
    В любой непонятной ситуации - читай ToS:


    Subject to the above license, You own all Assets You create with the Services, to the extent possible under current law. This excludes upscaling the images of others, which images remain owned by the original Asset creators. Midjourney makes no representations or warranties with respect to the current law that might apply to You. Please consult Your own lawyer if You want more information about the state of current law in Your jurisdiction. Your ownership of the Assets you created persists even if in subsequent months You downgrade or cancel Your membership. However, You do not own the Assets if You fall under the exceptions below.

    If You are an employee or owner of a company with more than $1,000,000 USD a year in gross revenue and You are using the Services on behalf of Your employer, You must purchase a “Pro” membership for every individual accessing the Services on Your behalf in order to own Assets You create. If You are not sure whether Your use qualifies as on behalf of Your employer, please assume it does.

    If You are not a Paid Member, You don’t own the Assets You create. Instead, Midjourney grants You a license to the Assets under the Creative Commons Noncommercial 4.0 Attribution International License (the “Asset License”).
    The full text is accessible as of the Effective Date here: https://creativecommons.org/licenses/by-nc/4.0/leg....

    В общем можно, но только если твой GPL-3 проект не коммерческий.
    + нужно соблюсти CC
    Ответ написан
    2 комментария
  • Как в архитектурах risc одинаковые виртуальные адреса разных контекстов задач различаются?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В risc вроде там куча csr регистров

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

    на разных компиляторах одна си операция ассемблируется то в комбинацию lui + addi, то в комбинацию auipc +addi

    Ты указал ARM в тегах, но у ARM нет инструкций lui и auipc. Такие инструкции есть у RISC-V.
    Если ты посмотришь в The RISC-V Instruction Set Manual, раздел 2.4 Integer Computational Instructions, то увидишь, что опкод lui загружает константу собранную из 20 битов непосредственного значения из инструкции и 12 нулевых младших битов в целевой регистр, а auipc прибавляет такую же точно константу к PC и загружает в целевой регистр результат сложения, и в этом вся разница между ними.

    где какая используется не совсем понимаю.

    lui используется для генерации констант, которые не зависят от того, где расположен код, а auipc для генерации констант, которые двигаются вместе с кодом. Т.е. Если ты хочешь вызвать функцию, которая находится дальше чем ±2К от точки вызова, ты можешь сгенерировать её адрес инструкцией auipc, и полученный код будет работать одинаково, независимо от того, по какому адресу он будет размещён. А если тебе надо поместить в регистр константу, например 0x12345678, то ты можешь это сделать парой инструкций lui rd, 0x12345 ; addi rd, rd, 0x678 и значение константы будет всегда одинаковым, вне зависимости от того, где будет этот код.

    Каким образом одинаковые адреса различаются. Или они просто не могут быть одинаковыми(типа ос позаботиться)?

    Если есть MMU и он используется ОС, то есть и виртуальные адреса и они могут быть одинаковыми у разных процессов. Если MMU нет или он не используется, то ОС размещает все процессы в одном адресном пространстве, нет смысла говорить отдельно о виртуальных адресах, поскольку они равны физическим, адреса выделяемые ОС разным процессам могут быть как одинаковыми (например несколько процессов запущенных из одного исполняемого образа могут использовать один и тот же код и константные данные), так и разными (например изменяемые данные разные у всех процессов, а стеки разные у всех потоков).

    Как они в tlb обрабатываются, если вдруг они реально могут быть одинаковыми, и там нету ни каких дополнительных индексов процесса)

    Выбери конкретную процессорную архитектуру -- обсудим. у многих RISC-архитектур есть ASID, который идентифицирует адресное пространство и записывается вместе с виртуальным адресом в TLB. Но в любом случае ASID -- это просто оптимизация для повышения производительности, когда он отсутствует или переполняется ОС должна сбрасывать содержимое TLB при переключении адресного пространства.

    У ARM есть регистры TTBR с примерно той же функцией, что и cr3 в x86.
    У RISC-V есть CSR satp, содержащий ASID и базовый адрес корневого каталога страничных таблиц. Об этом можно прочитать в разделе 4.1.12 Supervisor Address Translation and Protection (satp) Register спецификации The RISC-V Instruction Set Manual Volume II: Privi....
    Ответ написан
    Комментировать
  • Что нужно для авторизации через Google?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    "Sign in with google" реализуется при помощи OIDC:
    В документации есть ссылки и на стандарт, как это работает, и что примерно нужно сделать у себя в приложении, чтобы это заработало.
    https://developers.google.com/identity/openid-conn...

    Кстати, если ты такую кнопку добавляешь у себя в приложение на яблоке, то ты также будешь обязан сделать "Sign in with apple"
    https://developer.apple.com/sign-in-with-apple/get...

    Но на яблоке вроде для игр есть какой-то свой API, так что ты вполне можешь на Android использовать Google Play Games, а на яблоке - яблочное.
    Ответ написан
    3 комментария
  • While Do не работает?

    GavriKos
    @GavriKos Куратор тега Unity
    Ну так первая дистанция больше 300. false && true && true даст false. Цикл и прервется.

    P.S. за такие циклы в целом надо руки отрубать. Их время выполнения неизвестно от слова совсем. Могут вообще никогда не завершитсья
    Ответ написан
  • Как можно использовать Foreign Key?

    vabka
    @vabka
    Токсичный шарпист
    Очевидный пример:
    Допустим у тебя есть таблица с домашними животными и таблица с хозяевами домашних животных.

    Чтобы указать у животного, кто его владелец - ты заводишь колонку "идентификатор владельца".

    И вот чтобы гарантировать, что эта колонка всегда содержит реально существующий идентификатор, и что, например, никто не удалит владельца, к которому привязаны какие-то животные - ты можешь завести foreign key.

    В случае попытки удалить запись о владельце, на которого кто-то ещё ссылается, или при попытке указать несуществующий ИД - СУБД выдаст ошибку, что было нарушено ограничение.
    Ответ написан
    4 комментария
  • Leaflet как отцентровать карту в зависимости от Маркеров нанесенных на карту?

    yous
    @yous Автор вопроса
    Отвечаю сам себе как обычно))

    var bounds = new L.LatLngBounds([
        [40.712, -74.227],
        [40.774, -74.125]
    ]);
        map.fitBounds(bounds);
    Ответ написан
    Комментировать
  • Как реализовать прикидывание сигнала/ключа из unity/unreal engine в другое приложение?

    shai_hulud
    @shai_hulud
    На одной машине можно создать именованный мьютекс. Один создал, другой его открыл. И через него сигнализировать.
    Есть и другие примитивы синхронизации, которые могут быть зашарены по имени.
    Ответ написан
    Комментировать
  • Как поставить точку в коде?

    @rPman
    везде одинаково:

    return - выход из функции/метода
    break - выход из switch для выбранных секций case
    goto - выход на метку (только в пределах метода), можно использовать как выход из многоуровневого цикла без определения переменных состояний, но вообще плохой тон
    Ответ написан
    2 комментария