Сразу три причины, из-за которых контроллер GD32F450 теряет UDP пакеты

Пользователь


Привет, Хабр!
Продолжаем собирать эмулятор Сферы на коленке. В прошлой части мы справились с логином и выбором персонажа, на очереди: вход в игру, загрузка инвентаря, пинг. Научимся оставаться в игровом мире дольше чем на 10 секунд после запуска и попробуем не сойти с ума в процессе – пришло время разбираться, как Сфера передает координаты.
После этой статьи на нашем эмуляторе можно будет гулять по миру и загружать персонажа в любой его точке, даже на других материках и в общих подземельях.

Привет, Хабр! Спустя 13 лет я решил рассказать как однажды начал писать dedicated-сервер для игры NFS Underground 2, как решил возродить функционал оригинального онлайн-сервера, закрытого ещё в 2007 году, и как получилось, что это всё ещё WIP, несмотря на килотонны написанного кода и сотни часов, проведённых в реверс-инжиниринге.
Материал поделю на 3 части: в этой статье будет предыстория, причины и общая картина сетевой реализации сервера. Во второй части расскажу про проблемы и нюансы реверс-инжиниринга. А в завершающей части уделю внимание организации структуры проекта и тому, “что” и “почему” до сих пор не реализовано.

Мне всегда нравилась визуальная эстетика дизеринга (dithering, псевдотонирование, псевдосмешение цветов), но я не знал о том, как он применяется. Поэтому я провёл кое-какие изыскания. Эта статья может содержать отголоски ностальгии, но в ней не будет никаких следов Лены.

Работая со студентами я заметил, что нередко от изучения некоторой области отталкивает не столько сложность непосредственно разработки, сколько проблемы, связанные с настройкой рабочей среды и тестового окружения. Особенно остро эта проблема стоит при низкоуровневой разработке, в частности, драйверов ядра ОС Windows. Данная публикация содержит подробное описание процесса создания, запуска и отладки простейшего драйвера Windows.

Управление доступными ресурсами в облачной среде по запросу – тема, которая бывает очень непростой. Но эта работа стоит того, поскольку вы сможете использовать ресурсы гораздо эффективнее. Поэтому многие компании и проекты решаются мигрировать на облачные платформы, в частности, на Azul, AWS, Google Cloud или другие. С точки зрения программиста, есть одна истина, которая сохраняется и в облаке: рекомендуется понимать поведение и ограничения того JVM-приложения, что вы развернули (или не приложений, а подов, минимальных развертываемых единиц в Kubernetes). Платформа Java является многопоточной, и, даже если вы не собираетесь использовать какие-либо доступные для этого API, платформа все равно порождает множество потоков-демонов, работающих в фоновом режиме. Такие потоки нужны не только для очистки и подхватывания неиспользуемой памяти. Они относятся к платформе, а что насчет фреймворков? Фреймворки Java пытаются обслуживать большие эксплуатационные мощности; следовательно, инициируется работа множества вспомогательных потоков. Ниже мы немного заглянем под капот. В этой статье будет подробнее рассмотрено, как устроены популярные фреймворки Quarkus и Spring-Boot, сколько потоков они инициируют, чтобы обслужить все результаты. Давайте вместе пробежимся по примерам и для начала разберемся, какова разница между мониторингом и профилированием.



Начиная с PVS-Studio 7.14, для C и C++ анализатора появилась поддержка межмодульного анализа. В этой статье, которая будет состоять из двух частей, мы расскажем, как устроены похожие механизмы в компиляторах и раскроем некоторые технические подробности реализации в нашем статическом анализаторе.

Поставщики компонентов наперебой рассказывают, как просто при помощи их изделий создать готовое к промышленному выпуску решение. После посещения одного из таких мероприятий от Wurth Electronic по проектированию пассивных фильтров электромагнитных помех (ЭМП) у меня появились смутные сомнения по поводу методики подбора компонентов, и мы решил провести собственное исследование.
Сегодня мы постараемся рассеять маркетинговый туман и внести осознанность в проектирование фильтров ЭПМ для импульсных преобразователей (DC-DC).

В этом посте будет проанализировано, как каналы Unix реализуются в Linux. Для этого мы напишем и в несколько итераций оптимизируем тестовую программу, которая записывает и считывает данные через канал.
MySQL предоставляет широкий набор встроенных функций, которые покрывают значительную часть ежедневных задач. В ситуациях, когда необходимо реализовать что-то специфичное для вашего проекта - можно создать Хранимую Функцию (Stored Function). Однако, при всей своей гибкости, не все задачи можно легко написать на SQL. В таких ситуациях на помощь приходят User Defined Functions - компилируемые в нативный код функций загружаемых из shared library.
Создать свою UDF, в целом, не сложно надо реализовать несколько методов си-API.
Для самой простой UDF достаточно реализовать всего лишь одну функцию.

Логисторная логика это набор концепций, применение которых может позволить ускорить вычисления, сократить затраты энергии на вычисления и увеличить плотность транзисторов на кристалле без существенного изменения техпроцесса. Она находится в разработке и статья ниже является лишь первичным результатом. Мы надеемся что она вызовет интерес в научных кругах и среди энтузиастов и разработка будет продолжена.

В этом тексте я написал о забытом понятии: блок-схемы для разработки электроники. В ГОСТ(е) их называли Э1 (Схема структурная). Блок-схем это хороший уровень абстракции при анализе электронного устройства или PCB. Представил несколько атрибутов, которые сформировались при создании блок-схем. Привел примеры образцовых блок-схем.

До меня было написано 4 статьи по экспорту статей с хабра в FB2 и pdf:
Я захотел получить исходники своих статей.

Не так давно автор материала работал над сложной головоломкой: как пропатчить операционную систему сэмплового синтезатора 1996 года Kurzweil K2500. О путешествии автора в старый код музыкального инструмента рассказываем к старту курса по разработке на C++.

В Arcanum, как и в любой другой игре, существует масса собственных бинарных форматов. Эта статья познакомит вас с форматом упаковки изображений, который использовала студия Troika Games.

Четыре года назад я уже писал статью на тему обработки кардиограммы. Тогда я показал, как можно перевести бумажную кардиограмму в цифровой формат PCM данных, отрыв затем её в звуковом редакторе. Мне было интересно воспроизвести, послушать и оценить, как это будет звучать. В этот раз предстоит не менее интересная задача. Необходимо разобраться в структуре файла кардиограммы, переписанного с цифрового кардиографа, и извлечь из него всю информацию о кардиограмме в понятном для пользователя виде.

В далёком уже 2015 году Алексей aka ClusterM опубликовал статью про то, как он сконструировал дампер на двух atmega64. В статье говорилось о принципах взаимодействия консоли с картриджами и как можно сдампить игру, не разбирая сам картридж по запчастям.
В свою очередь, я не буду дублировать то, что он уже рассказал. Расскажу же о нюансах, которые поджидают того, кто решил собрать свой собственный дампер.