• Как работают ObscuredTypes у Anticheat?

    ayazer
    @ayazer
    Sr. Software Engineer
    как-то так

    public struct WrappedInt
        {
            private readonly int _value;
    
            public WrappedInt(int val)
            {
                _value = val;
            }
    
            public static implicit operator WrappedInt(int val)
            {
                return new WrappedInt(val);
            }
    
           ... 
        }
    
    ....
    
    WrappedInt wrapped = 1;
    Ответ написан
    Комментировать
  • Есть ли хорошие книги по Интернет Сетям для новичка?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ну олиферы ж :)
    Ответ написан
    Комментировать
  • Есть ли хорошие книги по Интернет Сетям для новичка?

    ramaelektro
    @ramaelektro
    Люблю копаться в электричестве
    Э. Таненбаум, Д. Уэзеролл "Компьютерные сети"
    Д. Куроуз, К. Росс "Компьютерные сети. Нисходящий подход"
    А. Сергеев "Основы локальных компьютерных сетей"

    Остальное в принципе все повторяется
    Ответ написан
    Комментировать
  • Есть ли хорошие книги по Интернет Сетям для новичка?

    Zoominger
    @Zoominger Куратор тега Компьютерные сети
    System Integrator
    Куроуз: "Компьютерные сети. Нисходящий подход".
    Ответ написан
    1 комментарий
  • Можно ли использовать VueJS для VK App вместо React?

    Fragster
    @Fragster
    помогло? отметь решением!
    Как я понимаю, там обычный вызов API + отображение результатов. Хоть вообще без библиотек пиши.
    Ответ написан
    Комментировать
  • Можно ли использовать VueJS для VK App вместо React?

    @unewe
    full stack developer
    Видимо вы не совсем понимаете, чего именно собираетесь делать. Здесь куда больше работы в backend части. Продумывать архитектуру хранения/получения данных, формирования запросов. Выбор баз данных (вероятно комбинировать часть в sql, часть в nosql) и тд и тп. Фронт пишите на чем пожелаете (это вершина айсберга) . На МОЙ взгляд самые интересные фреймворки React, Angular, Vue. Ну и js я бы заменил на ts.
    Ответ написан
    Комментировать
  • Какие отличия у NodeJS сервера от LAMP?

    khegay
    @khegay
    Founder, Garuna
    Тут подход к разработке и деплойменту нужно чуток объяснить:

    LAMP - это стак технологий: Linux, Apache, MySQL, PHP.
    node.js - это технология.

    Чтобы удалённый сервер смог общаться с внешним миром, используются веб-сервера: nginx / Apache / IIS и т.п. Дальше запросы переходят к языку программирования. Лучше всего использовать фреймворки. А дальше, запросы обрабатываются (делаются запросы в БД, общение с файловой системой и т.д.).

    Если вы говорите, что вам удобнее работать с JS, то тогда советую вам данный подход:

    • Виртульная машина VirtualBox. Виртуальная машина необходима для того, чтобы создать примерно такое же окружение, как и на сервере, а также для того, чтобы выделить исполнение кода из вашей системы в отдельное окружение.
    • Vagrant - это такая надстройка над виртуальными машинами. Коробки, внутри которых есть всё для ВМ.
    • В виде ОС - Linux Ubuntu (18.04 либо 20.04)
    • nginx в виде веб-сервера, он же как обратный прокси
    • nvm в виде менеджера версий node.js, с помощью nvm вы сможете устанавливать нужные версии node.js и npm
    • MongoDB в виде базы данных. Либо MariaDB, если нужна SQL-подобная БД
    • express.js в виде веб-фреймворка, который будет работать с БД, файлами и прочим
    • Если нужна визуальная админ-панель, то лучше взять один из мейнстрим фреймворков: Angular / Vue / Reqct
    Ответ написан
    7 комментариев
  • Какие отличия у NodeJS сервера от LAMP?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    LAMP - это Linux-Apache-MySQL- PHP.
    Нодой ты заменяешь сразу A и P, и никакой это уже не LAMP получается. Я бы ещё посоветовал поверх ноды поставить Nginx (из стека LEMP :))
    Так же и БД ты можешь использовать другую.
    Не понимаю почему ты так привязался именно к стеку.

    Т.е. я где-то в консоли админ панели моего сервера пишу node имяфайла.js и сервер будет круглосуточно работать и возвращать ответ при запросе по определённому пути?

    Да, именно так.
    Лучше это сделать через screen или tmux


    И получается, что раз сервер будет без стэка LAMP, то я теряю возможность конфигурации через .htaccess?

    Да. Но не вижу в этом ничего страшного
    Ответ написан
    Комментировать
  • Можно ли в C# привести JSON в объект, но при этом не создавая его заранее?

    2chevskii
    @2chevskii
    Если бы каждый мог в поиск, тостер бы вымер.
    Нет, не сможете, т.к. object не содержит в себе таких полей. Несмотря на то, что полученный обьект по факту эти поля содержит, при упаковке подобная конструкция выдаст ошибку компиляции. Выхода два - использовать Json.Net, который десериализует все в свои jobject, которые, по сути - словари, или же использовать DLR, но, как по мне - лучше повеситься, чем юзать такую медленную тему.
    Ответ написан
    3 комментария
  • Как разработчики игр и софта оптимизируют свои игры и программы под определённое железо?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    Есть ощущение что в игровой индустрии этим вообще никто не занимается, запустилось - скорей в магазин продавать.
    Ответ написан
    1 комментарий
  • Как разработчики игр и софта оптимизируют свои игры и программы под определённое железо?

    Jump
    @Jump
    Системный администратор со стажем.
    Я тут задался вопросом, а как это происходит?
    Разработчик изучает возможности железа и думает как их максимально эффективно задействовать. По сути переписывает код, под изменившиеся условия.

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

    Например у вас программа которая шифрует данные по популярному алгоритму AES - код программы описывает какие данные передать процесору, и какие операции процессор должен сделать и в какой последовательности.
    Потом вы узнаете что ваш процессор поддерживает криптографию на аппаратном уровне- и вносите изменения в код. Добавляете в код программы условие проверки поддержки AES процессором, и если она есть, вместо страницы кода добавляете инструкцию AESENC. В результате шифрование выполняется на порядок быстрее.
    Ответ написан
    Комментировать
  • Как разработчики игр и софта оптимизируют свои игры и программы под определённое железо?

    gbg
    @gbg Куратор тега Железо
    Любые ответы на любые вопросы
    Десятки экстеншенов OpenGL как бы намекают
    NV_bindless_multi_draw_indirect
    NV_bindless_texture
    NV_blend_equation_advanced
    NV_blend_square
    GL_NV_command_list.txt
    NV_compute_program5
    NV_conditional_render
    NV_conservative_raster
    NV_copy_depth_to_color
    NV_copy_image
    NV_deep_texture3D
    NV_depth_buffer_float
    NV_depth_clamp
    NV_draw_texture
    NV_explicit_multisample
    NV_fence
    NV_fill_rectangle
    NV_float_buffer
    NV_fog_distance
    NV_fragment_coverage_to_color
    NV_fragment_program
    NV_fragment_program_option
    NV_fragment_program2
    NV_fragment_shader_interlock
    NV_framebuffer_mixed_samples
    NV_framebuffer_multisample_coverage
    NV_geometry_shader_passthrough
    NV_geometry_shader4
    NV_gpu_program4
    NV_gpu_program5
    NV_gpu_program5_mem_extended
    NV_gpu_shader5
    NV_half_float
    NV_light_max_exponent
    NV_multisample_coverage
    NV_multisample_filter_hint
    NV_occlusion_query
    NV_packed_depth_stencil
    NV_parameter_buffer_object
    NV_parameter_buffer_object2
    NV_path_rendering
    NV_path_rendering_shared_edge
    NV_pixel_data_range
    NV_point_sprite
    NV_primitive_restart
    NV_register_combiners
    NV_register_combiners2
    NV_sample_locations
    NV_sample_mask_override_coverage
    NV_shader_atomic_counters
    NV_shader_atomic_fp16_vector
    NV_shader_atomic_float
    NV_shader_buffer_load
    NV_shader_storage_buffer_object
    NV_shader_thread_group
    NV_shader_thread_shuffle
    NV_texgen_reflection
    NV_texture_barrier
    NV_texture_compression_vtc
    NV_texture_env_combine4
    NV_texture_expand_normal
    NV_texture_multisample
    NV_texture_rectangle
    NV_texture_shader
    NV_texture_shader2
    NV_texture_shader3
    NV_transform_feedback
    NV_transform_feedback2
    NV_vertex_array_range
    NV_vertex_array_range2
    NV_vertex_attrib_integer_64bit
    NV_vertex_buffer_unified_memory
    NV_vertex_program
    NV_vertex_program1_1
    NV_vertex_program2
    NV_vertex_program2_option
    NV_vertex_program3
    NV_video_capture
    NVX_conditional_render
    NVX_gpu_memory_info


    И объясняют, почему Торвальдс показал им широкий жест
    Ответ написан
    Комментировать
  • Как разработчики игр и софта оптимизируют свои игры и программы под определённое железо?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ради интереса гляньте в исходники dlib, OpenCV, ffmpeg
    Там тема оптимизации раскрыта полностью. Грубо говоря код идет по другой ветке и использует другие инструкции.
    Ответ написан
    Комментировать
  • Как разработчики игр и софта оптимизируют свои игры и программы под определённое железо?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Дополнительные шейдерные инструкции, CUDA, вполне возможно - форматы текстур. Возможно - ковыряние в драйверах и понимание процессов рендеринга на низком уровне.
    Да, чаще всего такое встречается не то чтобы в самописных движках, а в тех где какая то часть рендер-пайплайна открыта или редактируема.
    Ответ написан
    Комментировать
  • Как рассчитать Хеш сумму файла по средствам C#?

    @Jewish_Cat
    Увлекаюсь C#
    Как вариант забей на проверку хешей файлов. Это такое себе. Лучше шифровать информацию в файле игры.
    Смысл в чем? Если игру он не будет разбирать, то ты просто создаешь любой свой "строковый ключ" для шифрования. При выходе из игры, ты значение с "монетами" шифруешь и записываешь в файл. Если он захочет отредактировать, то ему придется помучиться в подборке алгоритма шифрования и дешифрования. Я тебе дал готовое решения для шифрования/дешифрования, только подставь свой ключ. Как вариант сгенерируй ключ через какой нибудь sha1 алгоритм.

    P.S. Откажись от шифрования используя MD5. Он намного медленее SHA1 и менее надежнее
    public static string keyStr = "ТУТ ЛЮБАЯ ТВОЯ СТРОЧКА(Любой рандомный текст)";
      
            public static string Encrypt(string PlainText)
            {
                RijndaelManaged aes = new RijndaelManaged();
                aes.BlockSize = 128;
                aes.KeySize = 256;
                aes.Mode = CipherMode.ECB;
    
                byte[] keyArr = Convert.FromBase64String(keyStr);
                byte[] KeyArrBytes32Value = new byte[32];
                Array.Copy(keyArr, KeyArrBytes32Value, 32);
    
                aes.Key = KeyArrBytes32Value;
    
                ICryptoTransform encrypto = aes.CreateEncryptor();
    
                byte[] plainTextByte = ASCIIEncoding.UTF8.GetBytes(PlainText);
                byte[] CipherText = encrypto.TransformFinalBlock(plainTextByte, 0, plainTextByte.Length);
                return Convert.ToBase64String(CipherText);
            }
            public static string Decrypt(string CipherText)
            {
                RijndaelManaged aes = new RijndaelManaged();
                aes.BlockSize = 128;
                aes.KeySize = 256;
                aes.Mode = CipherMode.ECB;
    
                byte[] keyArr = Convert.FromBase64String(keyStr);
                byte[] KeyArrBytes32Value = new byte[32];
                Array.Copy(keyArr, KeyArrBytes32Value, 32);
    
                aes.Key = KeyArrBytes32Value;
    
                ICryptoTransform decrypto = aes.CreateDecryptor();
    
                byte[] encryptedBytes = Convert.FromBase64CharArray(CipherText.ToCharArray(), 0, CipherText.Length);
                byte[] decryptedData = decrypto.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
                return ASCIIEncoding.UTF8.GetString(decryptedData);
            }
    Ответ написан
    Комментировать
  • Как рассчитать Хеш сумму файла по средствам C#?

    Griboks
    @Griboks Куратор тега C#
    1. Вы можете придумать любую формулу хеша. Идея простая - зафиксировать состояние файла. Этого можно добиться различными стандартными хеш-функциями (есть в оф. примерах), контрольными суммами (тоже есть в оф. примерах). Вы можете подсчитать длину файла, количество 1 в файле, сохранить первые 1000 байт файла. В общем, формулы могут быть любыми.

    2. Затем вам надо сохранить хеш. Ваш друг ломает хеш, а вы хешируете хеш. Затем ваш друг ломает хеш хеша и т. д.

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

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

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

    @Ksushqa
    Unity developer
    Боюсь, что в 14 лет вы пока очень ограничены тем, что у вас мало знаний. И не в силу лени или глупости, а просто в силу возраста. Как минимум, вам нужно будет хорошо знать школьный курс математики (алгебра + геометрия) за 9-11 класс. Навскидку, сюда войдут тригонометрия, планиметрия (теорема Пифагора, синусы-косинусы и т.п. и обратные к ним функции), стереометрия, векторы (10 класс, очень важная тема на пару занятий), начала теории вероятности и мат.статистики. Нужно понимать, что такое прямые углы, параллельные прямые, объем. Что такое функция, потому что очень много завязано на этом понятии (зависимость между величинами на плоскости и в пространстве). Физика — раздел движения (равномерное, равноускоренное, по окружности, маятник и т.д.). Информатика — полезен весь материал, который нужен для сдачи ЕГЭ.

    Здесь, на тостере, сидят дяди и тёти, которые очень давно были в школе, и в такой ситуации довольно трудно вспомнить всё то, что стоило бы знать)))

    Всё, что вам здесь напишут более серьёзного, будет относиться, по большей части, к вузовской программе какой-нибудь технической специальности... Ну, лично я не уверена, что вы пока сможете воспринять. В вашем случае, как раз было бы лучше пойти от более конкретного — от движка. Вы ведь хотите знать, что такое движок, из чего он состоит, как эти части связаны между собой? Начните изучать конкретный движок, и будет вам счастье. Первое время акцент на язык программирования и инструменты движка. И да, вам очень будет нужен английский язык. Туториалы записывают не всегда компетентные в разработке люди, поэтому лучше смотреть официальные уроки от разрабов движка, а они чаще всего на английском и если ждать перевода, можно и не дождаться)))
    Ответ написан
    Комментировать