Задать вопрос
  • Как сделать разрушаемость?

    @MarkusD
    все время мелю чепуху :)
    Коротко о разрушаемости в Noita излагается в презентации разработчиков на GDC.
    Детальное описание разрушаемости в Jelly in the sky от автора игры: [1], [2], [3].

    В Червяках же реализация разрушаемости довольно простая.
    Мат. модель уровня состоит из битовой матрицы (где поднятый бит является заполненным, а снятый - пустым), и набора функций рисования в этой матрице. В этой битовой матрице изначально генерируется уровень и эта битовая матрица модифицируется в процессе игры. Функции рисования являются стандартными - это рисование линии от точки и до точки с заданной шириной, а так же рисование залитой окружности. Само рисование происходит нулевыми битами.
    По своей сути Червяки являются таким замысловатым редактором для рисования.
    Ответ написан
    4 комментария
  • Как выбрать счётчик электроэнергии совместимый с Arduino?

    @AlexSku
    не буду отвечать из-за модератора
    Я вам расскажу, как делают в "промышленности", но это реально работает, дальше можно копать в сторону удешевления и упрощения.
    1) Электросчётчки Меркурий со своим протоколом типа Modbus-RTU (RS-485).
    2) От фирмы Инсат OPC-сервер опроса. Можно получать несколько сотен данных, но я показываю несколько основных:
    60f6711479c82651630655.png

    3) Какую-нибудь SCADA (у Инсата есть MasterSCADA v.3 и 4).
    Ответ написан
    3 комментария
  • Где то слышал что префиксный инкремент работает быстрее чем постфиксный. Это так?

    @res2001
    Developer, ex-admin
    Не замерял скорость. И даже не смотрел в дизасемблере реализацию.
    Но предлагаю просто разложить обе операции на примитивные ассемблерные инструкции (где нет инкремента, данные хранятся в памяти, а считаются в регистрах). Примерно так будет в псевдокоде:
    int preinc(int i) {
      mov r1, [i];
      add r1, 1;
      mov [i], r1;
      return r1;
    }
    int postinc(int i) {
      mov r1, [i];
      mov r2, r1;
      add r2, 1;
      mov [i], r2;
      return r1;
    }

    Видно, что у постфиксного варианта на одну операцию больше, чем у префиксного. А так же постфиксный использует 2 регистра, тогда как префиксный 1.
    Логика работы префиксного проще и понятней. Так что используйте по умолчанию всегда префиксный. И только тогда когда действительно необходимо постфиксный.

    А теперь представьте, что операция производится не надо встроенным типом, а надо классом. В этом случае дополнительные затраты могут быть гораздо существенней.
    Ответ написан
    2 комментария
  • Можно ли менять логический оператор в зависимости от переменной?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    if (f_pos.x * x_direction > R) {
        rot_direction2 = false;
    }
    Ответ написан
    Комментировать
  • Как подготовиться по алгоритмам к собеседованию(junior)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Судя по слову "перечитывать", Кнут уже был ранее прочтён и должен был осесть в голове. Соответственно, достаточно бегло пробежаться по основным темам, чтобы просто освежить знания.
    Ответ написан
    Комментировать
  • Как округлять с отрицательной точностью?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    my_round(123,-2) = 100.

    Точность говорит, что все цифры после этого индекса должны быть 0. А предыдущая, может увеличится на 1, в зависимости от правил округления.
    Ответ написан
    Комментировать
  • Актуальна ли информационная безопасность?

    @nApoBo3
    Заходить нужно туда куда вам интересно.
    ИБ это настолько широкий в различных интерпретациях термин, что сначала его вам нужно узко переопределить.
    Формально ИБ это работа в первую очередь документарного характера, например описание процедур приведения системы в соответствие с законом о защите персональных данных, или в соответствие с требованиями к гостайне, банковской тайне и т.д.
    В этой плоскости, ИБ вообще не техническая специальность, требующая некоторых специальных технических знаний. Это документы.
    Есть другая интерпретация данного термина, это тестирование на проникновение, защита приложений, защита сетей, т.е. практическая безопасность сервисов, приложений, хранилищ данных, сетей, каналов передачи и т.д.
    Эта интерпретация как правило не имеет прозрачной системы обучения, не стандартизирована и очень очень широкая.

    Например защита каналов передачи данных, это и физическая защита, и инженерная с точки зрения строительства, и сетевые администраторы с VNP тоннелями, и системные администраторы с https, и математики с шифрованием, и физики с квантовыми эффектами. А еще это куча административных мер, по защите проекта прокладки канала, поскольку в проект могут быть внесены не санкционированные изменения, и проверка реальных работ по прокладке, проектным, а еще различное лицензирование на данные работы и оборудование и т.д. и т.п.

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

    @pfg21
    ex-турист
    Стоит добавить про схему "идеальный диод".
    Когда параллельно с диодом ставят МОП-транзистор и включают его при протекании прямого тока.
    Сопротивление открытого МОП-транзистора может составлять десятые доли ома, что гораздо ниже чем падение напряжения на диоде Шотки (примерно 0,2в).
    это же свойство используется в уже упомянутых синхронных выпрямителях.
    28031_screenshot%202019-01-16%20005.png
    Ответ написан
    Комментировать
  • Существуют ли транзисторные выпрямители.?

    Почитайте про синхронные выпрямители. Становятся все более актуальными по мере необходимости выжать максимум кпд.
    Ответ написан
    Комментировать
  • Может ли замкнуть ноутбук из-за оперативной памяти?

    Zoominger
    @Zoominger Куратор тега Ноутбуки
    System Integrator
    Очень вряд ли.
    Производители часто пишут странные ограничения по объёму ОЗУ, я вот, на своей памяти, превышал его в 2 раза.
    Максимум - ноутбук просто не загрузится, но не сгорит, это точно.
    Ответ написан
    Комментировать
  • Как перевести программу c++ в ехе и что бы запускал ось на любом компьютере с Windows?

    @rPman
    Вопрос очень на самом деле сложный.

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

    Зачастую, если пользуешься какой-нибудь средой разработки (IDE, например Microsoft Visual Studio) то за сборку exe файла и всего проекта будет отвечать она, а пользователю в мышевозекательном интерфейсе дается возможность настроить все необходимое.

    Например создавая проект "Консольное приложение c++" (название приблизительное, не помню точно уже) проект будет автоматически настроен на сборку консольного приложения, лишних библиотек не подключено и т.п. Мало того, возможно понадобится собрать приложение сразу для нескольких архитектур (x86 и x86_64 например), т.е. по набору exe/dll на каждую архитектуру, и бывают случаи когда даже файлы баз данных не переносимы и потребуют свои для каждой.

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

    В самых простых случаях, когда на целевой машине даже не надо создавать ярлык (просто распаковать и все), можно воспользоваться каким-нибудь self extracted archive (у winrar такая опция есть). Иногда инструменты для создания такого пакета есть в самой IDE (точно помню у visual studio для managed .net кода такое было), а иногда это стороннее приложение, для windows рекомендую попробовать inno setup, позволяет создавать не только exe установщик но и msi (специализированный формат windows для установочных архивов), это приложение позволяет описывать процесс установки в виде некоторого языка, не заморачиваясь с интерфейсом.

    p.s. windows нет прямого ограничения по запуску приложений без установки, т.е. просто копируй вручную exe файл и все

    upd. для с++ добавляется еще один челедж, решить, каким компилятором собирать, какими стандартами (стандарт реализация эксепшен try/catch/throw, формат имен подключаемых dll и т.п.), какими базовыми библиотеками (например какая будет использоваться libc) и даже для какой версии ОС собираешь (например собрав под последнюю win10 приложение может не запуститься на win7 или winxp, потому что будет требовать несовместимую версию visual studio redistributable (vcredist*.exe этот пакет обновлений таскают с собой все кому не лень, и кстати по лицензии делать это без разрешения майкрософт низязя)

    Так уж исторически сложилось, что нормально тулчейн найти под windows можно либо:
    * gcc (gnu c compiler) - задает всем остальным, тут полнее реализуют новые стандарты, работает во всех ОС, но при этом есть windows сборка (смотреть у mingw кстати она есть по до все ос, позволяет кросскомпиляцию типа из linux собрать windows exe) а есть cygwin (несовместимая ни с чем, но качественно повторяет linux стандарты)
    Поговаривают что mingw все, кончился :(
    * microsoft visual c++ compiler (идет с visual studio), пытается задавать свои ни с чем не совместимые стандарты, корежит существующие, с целью создать хаос и привязать разработчиков только к windows
    и это у майкрософт получается, к сожалению
    * llvm и clang (это отдельные проекты но когда говорят об одном то и о другом), стандарт стоит особняком, так как llvm это некая виртуальная машина, с очень эффективной реализацией, с jit и оптимизациями
    настроить на windows это еще надо уметь, но есть возможность прописать для использовании в visual studio!
    Ответ написан
    Комментировать
  • Как исправить проблему с BMP280 на Arduino?

    @VT100
    Embedded hardware & software.
    Не видно подтяжек. На обеих линиях - SDA и SCL.
    Ответ написан
    1 комментарий
  • Как решить две следующие проблемы?

    1. Использовать cin.getline https://stackoverflow.com/questions/5838711/stdcin...
    2. У вас при добавлении новых читателей цикл стартует с 0
    for (int i = 0; i < Reader_kol; i++)
    а надо, чтобы стартовал с количества уже добавленных читателей (тут надо учитывать, чтобы не было переполнения массива, т.е. totalReaderCnt + Reader_kol должно быть меньше 500)
    for (int i = totalReaderCnt; i < totalReaderCnt + Reader_kol; i++)
    Ответ написан
    2 комментария
  • Почему не могу отправить датаграмму с размером 65516, но могу с 65000?


    Длина датаграммы.
    Поле, задающее длину всей датаграммы (заголовка и данных) в байтах. Минимальная длина равна длине заголовка — 8 байт. Теоретически, максимальный размер поля — 65535 байт для UDP-датаграммы (8 байт на заголовок и 65527 на данные). Фактический предел для длины данных при использовании IPv4 — 65507 (помимо 8 байт на UDP-заголовок требуется ещё 20 на IP-заголовок).

    https://ru.m.wikipedia.org/wiki/UDP
    Ответ написан
    1 комментарий
  • Почему код неработает?

    @galaxy
    Извини, дорогой друг, но не работает, потому что ты ленивый рукожоп.

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

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Ток через параллельные ветви потечёт в строгом соответствии с законом Ома, т.е. где меньше сопротивление ветви, там через неё больший ток. Напряжение-то на них одинаковое, так что другой причины для различия токов нет.
    Поэтому делать так, как вы описали в примере с предохранителями - категорически нельзя. Те, кто думает, что ток сгорания предохранителей суммируется, полностью ошибаются, и причина тому - разброс параметров. Не может быть совершенно одинаковых деталей, и предохранители - не исключение. Поэтому если запараллелить два якобы одинаковых, а затем повышать через них ток, то первым сгорит тот, у которого сопротивление чуть меньше, а следом, оставшись в одиночестве, через считанные миллисекунды сгорит второй.
    Точно так же произойдёт и в вашем втором случае - связка 20+30 сгорит не при 50, а при (условно) 30 амперах. Условно - потому что реальный ток сгорания зависит от множества факторов и потому имеет очень большой разброс даже у одиночного предохранителя, а у запараллеленых - и подавно.
    Ответ написан
    4 комментария
  • Как на физическом уровне происходит прошивка нового выращенного процессора или любого другого микроэлектронного устройства?

    Zoominger
    @Zoominger
    System Integrator
    Все базовые операции в процессор уже зашиты, это называется "аппаратная реализация".
    То, что вы подразумеваете, называется ПЛИС, погуглите, это интересно.
    Ответ написан
    Комментировать
  • Можно ли заряжать телефон от 65W адаптером с Type C?

    xez
    @xez
    TL Junior Roo
    Можно
    Ответ написан
    Комментировать
  • Способы блокировки программ на фрилансе?

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

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