StaticECS — Bitmap Entity Component System

За десятилетия существования ECS сложились два фундаментальных способа хранить компоненты: архетипы (Unity DOTS, Flecs, Bevy) и sparse sets (EnTT, LeoECS). Каждый из них несёт структурные ограничения, которые не устраняются оптимизацией реализации — они вытекают из самой модели данных. StaticEcs — третья модель. Она основана на инвертированном иерархическом битовом индексе : не сущности хранят маски своих компонентов, а компоненты хранят битовые карты сущностей. Фильтрация запроса — это побитовое AND, обрабатывающее 64 сущности за одну инструкцию CPU. Добавление или удаление компонента меняет один бит и не перемещает никаких данных. В статье разбираю, как устроена эта архитектура, чем она отличается от архетипов и sparse sets, и что даёт на практике.

https://habr.com/ru/articles/1027940/

#ECS #C# #NET #gamedev #game_development #performance #data_structures #Unity #архитектура #оптимизация

StaticECS — Bitmap Entity Component System

Коротко о том, что такое ECS (Entity Component System) Сущность — числовой идентификатор без данных. Компонент — структура данных (Position, Health, Velocity), которая может быть прикреплена к...

Хабр

MDM: как навести порядок в НСИ и перестать чинить интеграции

В любой компании справочники НСИ сначала выглядят как “ну это же просто таблицы”. Контрагенты, номенклатура, адреса, подразделения, единицы измерения, статусы. Пока людей и систем мало - всё держится на внимательности пары сотрудников и привычке “если что, поправим руками”.

https://habr.com/ru/articles/993368/

#НСИ #мдм #mdm #mdmсистема #нси_и_интеграция #data #data_analysis #data_structures #базы_данных #data_science

MDM: как навести порядок в НСИ и перестать чинить интеграции

В любой компании справочники НСИ сначала выглядят как “ну это же просто таблицы”. Контрагенты, номенклатура, адреса, подразделения, единицы измерения, статусы. Пока людей и систем мало - всё держится...

Хабр

Card DOM на языке Argentum: мы дома

Пятая статья в серии о DOM-подобных моделях данных в разных языках программирования. В предыдущих частях мы разобрали DOM-подобные структуры данных, оценили их поддержку в ряде языков с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript . и С++ , Rust и D-lang (а также упомянули Zig, Odin, Jai, Python, V, Cone и Pony). Эта растянутая на несколько публикаций серия показала, что современные языки удивительно плохо приспособлены для работы с документной объектной моделью — фундаментальной структурой данных современных высокоуровневых приложений. Посмотрим, как с этой задачей справляется Argentum — язык, для которого такие структуры данных являются нативными.

https://habr.com/ru/articles/967770/

#programming_languages #data_structures #структуры_данных #язык_программирования #сравнение

Card DOM на языке Argentum: мы дома

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

Хабр

"Your computer is more powerful than machines that sent humans to the moon, yet it struggles to run a web browser and video editor simultaneously. How did we get here? This is the story of the greatest lie in modern technology - the myth that more power always means better performance. From 8GB to 32GB RAM requirements for the same basic tasks, discover why your "upgraded" system feels slower than your old one, and why the tech industry wants you to believe this is progress."—YouTux

The Great Tech Lie >

https://youtu.be/eh1vOESSEdQ?si=RReMrMwa6P9wFcMP

#frameworks #computing #hardware #power_addiction #upgrades #technology #facts
#efficiency #optimization vs #bloatware #bad_code_footprints
#marketing #planned_obsolescence # subscription_model #consumption #spyware #meta_data #AI_models #novelty vs #human_agency #software_license #self_diagnose #fault_tolerance #data_structures #embedded_programming
#Assembly #RISC #simplicity #privacy #security #tech_subversion #longevity #sustainability
#software_engineering is not #PHP_development or #Python_programming

The Great TECH LIE

YouTube

Реализация DOM-подобных структур данных на C++

Это третья статья в серии про DOM-подобные модели данных в различных языках программирования. Ранее мы рассмотрели что такое DOM-подобные структуры данных и как оценить их поддержку языках программирования и препарировали JavaScript . Сегодня мы проверим как с Card DOM справится С++.

https://habr.com/ru/articles/957906/

#programming_languages #benchmark #c++ #data_structures #языки_программирования #сравнение #структуры_данных

Реализация DOM-подобных структур данных на C++

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

Хабр

Как JavaScript справляется с DOM-подобными структурами данных

Это вторая статья в серии о поддержке DOM-подобных моделей в различных языках программирования. Сегодня мы рассмотрим как JavaScript справляется с бенчмарком Card DOM.

https://habr.com/ru/articles/956542/

#programming_languages #benchmark #javascript #garbage_collector #data_structures

Как JavaScript справляется с DOM-подобными структурами данных

Это вторая статья в серии, посвященной сравнению языков программирования по необычному критерию — как они справляются с организацией DOM-подобных структур данных. Вводная часть тут: Настоящий тест для...

Хабр

Настоящий тест для языков программирования — как они справляются с DOM-подобными структурами данных

Большинство тестов языков программирования — это синтетика. Мы сравниваем скорость сортировки массивов, подсчёт аллокаций и другие упражнения, которые почти не встречаются в реальной жизни. А вот настоящие приложения — редакторы, движки, интерфейсы, базы данных — живут совсем в другом мире. Они управляют не числами, а сложными структурами объектов. И если присмотреться, почти все эти структуры сводятся к одной универсальной модели: DOM-подобному графу .

https://habr.com/ru/articles/955158/

#programming_languages #data_structures #benchmark

Настоящий тест для языков программирования — как они справляются с DOM-подобными структурами данных

Большинство тестов языков программирования — это синтетика. Мы сравниваем скорость сортировки массивов, подсчёт аллокаций и другие упражнения, которые почти не встречаются в реальной жизни. А вот...

Хабр

Boolean — плохой флаг для данных

Мы все видели и использовали поля типа boolean в базах данных как часть структуры данных. На первый взгляд это удобно: два значения — «да» или «нет», просто и понятно. Например, у пользователя может быть флаг is_active , который показывает, включён аккаунт или нет, или поле is_deleted , которое используется как мягкое удаление. Такие поля встречаются повсюду. Но на практике хранение boolean в базе данных как элемента модели часто приводит к проблемам. В этой статье разберёмся, почему boolean может быть плохим выбором, и что использовать вместо него, чтобы избежать ошибок в будущем.

https://habr.com/ru/articles/942910/

#clean_code #clean_architecture #data_structures #data_storage #architectureascode #architecture_design #architecture_principles #architectural_decision_records

Boolean — плохой флаг для данных

Вступление Мы все видели и использовали поля типа boolean в базах данных как часть структуры данных. На первый взгляд это удобно: два значения — «да» или «нет», просто и понятно. Например, у...

Хабр

Computing simplified coverage polygons

https://lemmy.world/post/35235672

Computing simplified coverage polygons - Lemmy.World

Lemmy

What would be the "least boring" sorting algorithm?

https://lemmy.world/post/34542137

What would be the "least boring" sorting algorithm? - Lemmy.World

I’m currently working on a little web app that allows the user to sort a list of elements (like a tier-list maker). Instead of just asking the user to sort the list through drag’n drop, I thought I could run a sorting algorithm that would ask the user every time it needs to make a comparison. The whole thing would feel a bit magic, since you would have several questions like “Which one do you prefer, A or B?” and get your sorted list. The question is: which algorithm should I use to keep the user entertained? I don’t want to compare A with everything, then B with everything and so on with something like a Bubble Sort, that would be boring. What do you think about it? Please be aware this is not a big project, just something I make out of curiosity. Thanks in advance!