• Есть ли возможность обойти блокировку раздачи моб интернета для windows 10?

    @rPman
    Провайдеры определяют это через значение TTL, которое устанавливает конечное устройство и уменьшается на 1 если пакет проходил через промежуточное устройство.

    Провайдер знает, какие стартовые значения TTL по умолчанию прописаны в разных ОС и при их изменениях может детектировать раздачу интернета. Решение - изменить это значение на каждой машине. с которой хочешь выходить в интернет.

    p.s. Универсально можно поставить на роутере http/socks прокси и прописать его в браузерах на других компьютерах, тогда провайдер ничего сделать не сможет, так как в этом случае выходить в интернет будет прокси. На самом роутере не всегда это можно сделать но почти на каждом есть ssh сервер, т.е. выбираешь машину в своей сети, с нее подключешься к роутера ssh клиентом с ключом -D1080 (1080 любой порт) и теперь в браузерах прописываешь socks прокси с ip этой машины и портом 1080

    upd. можно эту подмену делать на роутере сразу, вот к примеру инструкция для keenetik
    Ответ написан
    2 комментария
  • Замедляющая вода. Возможно ли?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Конечно возможно. Нужно проверять коллизию с водой (с объектом "лужа") и при наличии коллизии умножать скорость на определенный коэффициент. Можно соответственно менять другие параметры, например уменьшать силу трения - получится эффект скольжения.
    Ответ написан
    Комментировать
  • Как адекватно округлить Int до тысячи в сокращенной форме?

    textCost.text = ShortFormat((double) cost);
    
    // ...
    static string ShortFormat(double number) => number > 1000 ? $"{number/1000:F2}K" : number.ToString();
    Ответ написан
    Комментировать
  • Какую выбрать СУБД, если в день может быть более 11млн записей?

    При такой постановке задачи лучшим вариантом СУБД будет та, которую знают и умеют обслуживать ваши админы.
    С таким объёмом вставок справится любая мейнстримная на правильно подобранном железе. Что ещё вы собираетесь делать с этими записями нам неведомо, посему на выбор повлияеть не может.
    Ответ написан
    1 комментарий
  • Какую выбрать СУБД, если в день может быть более 11млн записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    11 миллионов inserts в день - это 127 в секунду. При такой нагрузке справится любая современная БД. Ну я не знаю таких чтоб не справлялись. Делайте только короткую буферизацию и batch-insert пачками по 100 - 1000 чтобы оптимизировать сетевой roundtrip.

    Есть специализированные NoSQL системы такие как RocksDb, Tarantool в которых именно много оптимизаций сделано было для быстрой вставки. Они выдерживают и во много раз быстрее.

    И в данной задаче нужно также спросить бизнес - как быстро данные нужны к чтению пользователя. Нужно сию секунду чтоб они отобразились на UI или можно подождать пару минут или часов.
    Ответ написан
    1 комментарий
  • Почему не работает директива платформы в Unity?

    freeExec
    @freeExec
    Участник OpenStreetMap
    А почему редактор должен её определять? Сделайте билд и там проверяйте.
    Ответ написан
    2 комментария
  • При уничтожений одного обьекта уничтожаются все, как исправить?

    K0TlK
    @K0TlK
    Буллю людей.
    Потому что хп зомби у тебя статик поле. Всё, что статик - принадлежит классу, всё что не статик принадлежит конкретному объекту, класс - фабрика объектов, существует в единичном экземпляре => твое хп одно для всех => если хп == 0, то оно 0 у всех зомби. Убирай статику, делай TryGetComponent(out Zombie zombie) в OnCollisionEnter в Bullet и отнимай хп у конкретного зомби.
    Ответ написан
  • Проблема с отрисовкой спрайтов UI Spine. Как решить?

    @Elsper
    Сразу бросается в глаза вариант сделать refresh и reimport на атлас и текстуру. (Прежде убедиться, что они актуальные)

    Потому, что визуально это косяк нарезки. Я с этим сталкивался.

    Так же можно удалить (убрать на время поиска ошибки) файлы с расширением .asset (вместе с .meta), и пусть юнити их заново создаст при реимпорте папки содержащей файлы вашей анимации.
    Ответ написан
    Комментировать
  • С чего начать системному администратору в школе?

    paran0id
    @paran0id
    Умный, но ленивый
    Системному администратору всегда нужно начинать с инвентаризации
    Ответ написан
    Комментировать
  • Как вы делаете code-review?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    У code review должна быть цель. В моей практике обычно проекты небольшие и там нет отдельных тестировщиков. Получается, что code review отвечает на три вопроса:

    1. Соответствует ли функционал ТЗ?
    2. Создает ли код проблемы команде?
    3. Есть ли тут какой-то специфичный для проекта опыт, который лучше задокументировать, пока мы еще в контексте?


    Получается что-то такое:

    • До выполнения задачи: проводится анализ задачи, формулируется ТЗ. Бывает, что нужно подключиться и помочь с требованиями, с контекстом, в котором все делается. Чем более подробный анализ мы делаем и чем лучше мы понимаем контекст на этом этапе, тем больше вероятность, что потом весь процесс выполнения задачи пойдет как по маслу и code review будет чистой формальностью в конце.
    • До ревью: линтеры проверяют код на соответствие стилю, на отсутствие синтаксического бреда.
    • Дальше - проверка на соответствие функционала ТЗ. Это защита от глупых ошибок в продакшене, которые коснутся пользователей.
    • Потом - на сответствие принятым соглашениям по коду, если они есть в проекте. Обычно это архитектурные паттерны и что-то про зависимости, смотрим не создает ли код проблем окружающим, а то разные глупости порой случаются. Особенно это важно в коде, который не сам в себе, а затрагивает много чего вокруг. Иногда возникает конфликт интересов, когда что-то явно устарело, и соглашения дополняются чем-то. Чем лучше был анализ в начале, тем меньше вероятность, что тут будет, что обсуждать.
    • Дальше уточняющие вопросы по странным местам, если они есть. Это больше с целью узнать контекст задачи, почему приняты те или иные решения. Происходит передача специфичных для проекта знаний в сторону команды. Возможно там же будут какие-то рекомендации по поводу практик, на что стоит обратить внимание в следующий раз. Это будет передача опыта от команды.


    А кто там будет, джун или синьер-помидор - не важно. Все люди ошибаются, и всем нужен контекст происходящего для эффективной работы.
    Ответ написан
    Комментировать
  • Можно ли найти работу gml(GameMaker)-разработчику игр?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Найти работу до достижения 18-и лет почти нереально.
    2. Найти первую работу разработчиком очень тяжело.
    3. Найти работу в геймдеве, не имея опыта разработчика, почти нереально.
    4. Найти работу с GameMaker почти нереально.

    В вашем случае наложение всех этих факторов многократно умножает сложность задачи.
    Ответ написан
    Комментировать
  • Нужно ли хранить ресурсы проекта в папке Assets/Resources?

    freeExec
    @freeExec
    Участник OpenStreetMap
    В папке ресурсы нужно держать именно то, что будет загружаться в ручную. Держать там всё своё барахло не стоит.
    Ответ написан
    Комментировать
  • Как можно оптимизировать (уменьшить) передачу данных?

    2ord
    @2ord
    Для начала:
    MessagePack, Protobuf и их альтернативы для сериализации данных.
    Дельта-кодирование - для уменьшения разрядности чисел.
    Ответ написан
    Комментировать
  • Как сделать поворот врага в сторону игрока в юнити 2д?

    LittleBob
    @LittleBob
    Сравнивайте позицию игрока и врага. Если позиция игрока по Y больше, чем у врага, значит игрок справа, и наоборот.
    Ответ написан
    Комментировать
  • Как реализовать условные конструкции в языке Форт?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как мне реализовать оператор ветвления так, чтобы он поддерживал вложенность.

    Стеком, конечно. Для этого, обычно, используется т.н. стек управления или управляющих структур. Он существует только во время компиляции. Точный механизм не помню, но то ли кладем в этот стек код операции то ли адрес точки ветвления для вычисления смещения ветвления то ли все вместе.
    И ещё, не подскажите ли, как разбить код на функции? А то функция eval-forth-program слишком большая и сложная.

    Традиционно форт реализуется с использованием т.н. шитого кода. Так же есть и вариации шитого кода и другие механизмы. В целом логика такая: есть список - это словарь слов. Логика интерпретатора крайне проста:
    1. Получить следующий символ из входного потока
    2. Если ноль или конец строки - выход
    3. Если не разделитель - перейти к следующему символу
    4. Если разделитель - искать слово в словаре
    5. Если слово найдено - выполнить его
    6. Не найдено - сообщить об ошибке

    Далее, организовываем два стека - основной, возврата, переменную STATE (интепретация/компиляция), основной словарь или список словарей, минимальный набор слов для компиляции - двоеточие, точка с запятой и далее по мере надобности все остальное. Главное запустить интерпретатор, от него компилятор, а далее уже можно средствами самого форта реализовать остальной минимальный набор слов, затем учим форт компилировать и собирать самого себя и получаем самодостаточную систему. Рекомендую книги Лео Броуди к прочтению и регистрацию на форт-форуме - там тоже очень много материалов по теме реализации форта )
    Ответ написан
    1 комментарий
  • Авторские права на машину. Так ли это?

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

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Вам отладчик в руки, смотрите, может исключение вылетает, например NullPointerException на data. Проверьте data на null в PutGamesInList перед использованием, хорошая практика.
    Ответ написан
    1 комментарий
  • Какие инструменты нужны для разработки игр?

    @MarkusD
    все время мелю чепуху :)
    Сегодня существует ровно два базовых направления разработки конкретного коммерческого проекта.
    Способ первый: купить лицензию или подписку на уже готовый инструмент разработки и заняться непосредственно разработкой своей игры.
    Способ второй: иметь в своем штате команду разработчиков собственного инструмента, на базе которого можно заняться разработкой своей игры.

    Первый способ популяризирует публичные универсальные инструменты разработки.
    Второй способ эксплуатирует проприетарные инструменты.

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

    DirectX, Vulkan и OpenGL, равно как Metal и ряд проприетарных GAPI некоторых закрытых платформ, не являются графическими библиотеками. Это все - Graphics Application Programming Interface - GAPI.
    Это - низкоуровневые интерфейсы драйвера GPU, позволяющие эксплуатировать ресурсы видеокарты в своих целях. Не только для рисования чего-то, а для ИИ, ML, сложных статистических вычислений, предсказаний и прочих расчетов на больших объемах данных.
    Под капотом любого инструмента, будь-то проприетарный или публичный, в его графическом слое используется один или несколько GAPI. Без этого никак.
    OpenGL, как и DirectX 11, нисколько не устарели, поскольку предоставляют упрощенный интерфейс управления ресурсами GPU. Они используются тогда, когда разработчикам не нужны самые тонкие механизмы управления ресурсами GPU, которые предоставляют DirectX 12 или Vulkan. Потому что последние, помимо прочего, требуют от разработчиков более глубокой экспертизы и больше ресурсов на разработку всего того же, что на OpenGL и DirectX 11 реализуется меньшими силами и за меньшее время.

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

    Информации по каждой отдельной области разработки игр хоть отбавляй. Ее настолько много, что одному человеку за жизнь не усвоить. Поэтому от современного специалиста сегодня требуется спрофилироваться, т.е. определиться со своим профилем работы и стать экспертом.
    Я больше 15 лет занимаюсь разработкой игровых движков и медиаферймворков. Более 10 лет занимаюсь коммерческой разработкой кросслпатформенных инструментов. Я начинал свое обучение по книгам и документации для всех интересующих меня областей еще 20 лет назад. Я самостоятельно освоил множество API, включая графические, сетевые, звуковые и API целевых платформ, используя книги и документацию. Экспертные знания C++ и прочих языков я получил тоже через изучение документации, стандартов и книг.
    Я могу сказать что обучаться по книгам и документации можно и самостоятельно. Еще можно заплатить деньги и получить более точечные знания через их интерпретацию на распространенных сегодня онлайн-курсах. Такие знания не всегда бывают лучше полученных самостоятельно, но времени на освоение того же объема знаний на курсах уйдет меньше чем при самостоятельном изучении. Иными словами, занятия на онлайн-курсах не отменяют важности самостоятельного изучения основных источников информации.
    По открытым видеоурокам на ютубе и прочих видеохостингах обучаться нечему. Цель этих видео - чтобы зритель посмотрел рекламу и этим принес доход автору.
    Ответ написан
    2 комментария
  • Как сохранять и сокращать ОЧЕНЬ большие числа типа int?

    Варианта три:
    1. Использовать double - тогда максимум у тебя будет примерно 1e308 (1 с 308 нулями)
    2. Хранить число в виде двух чисел - значение и степень десятки Точность на больших числах будет низкая, но предела по сути нет - можно будет хранить числа вплоть 2^64*10^(2^64) (если использовать два long). Эту же методику можно и с double реализовать - получится ~10^308*10^(10^308), что ещё больше
    3. Можно попробовать BigInteger - по памяти не эффективно, медленно, но зато точность идеальная.

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

    Вот пример, без реализации операторов

    struct ExponentialInteger
    {   
        private readonly int value;
        private readonly int exp;
        
        //.ctor
        // operator +
        // operator -
        // operator *
        // operator /
        // operator implicit
        // operator explicit
        // IEquatable, IComparable, IFormattable
        // итд
        private static string[] suffix = new[]
        {
            "", "K", "M", "t", "q", "Q", "s", "S", "o", "n", "d", "U", "D", "T", "Qt", "Qd", "Sd", "St", "O", "N", "v", "c"
        };
    
        public override string ToString()
        {
            if (exp >= suffix.Length || exp < 0)
            {
                return $"{value}*10^{exp}";
            }
            else
            {
                return $"{value}{suffix[exp]}";
            }
        }
    }

    Ответ написан
    3 комментария
  • Как на Android/iOS дать возможность пользователю выбирать изображение и загружать его в приложение?

    @Mark116
    Тебе нужно создать элемент с изображениям в лаяут, затем написать код маинактивити который отвечает за загрузку файла, указав id переменной, а еще посмотри примеры на ютубе, написав на англ по типу avatar profile adnroid studio tutorila. Тут тебе вряд ли с исходниками помогут, тема узкая. Держи ссылки и удачи
    https://developer.android.com/guide
    https://developer.alexanderklimov.ru/android/libra...
    Ответ написан
    1 комментарий