Как GC останавливает весь мир, чтобы вынести мусор

Как GC останавливает весь "мир", чтобы "вынести мусор"!
Концептуальное описание работы GC в Ваших приложениях.
Объектно-ориентированный язык программирования
Как GC останавливает весь "мир", чтобы "вынести мусор"!
Концептуальное описание работы GC в Ваших приложениях.
Первая встреча с Turbo Pascal
Начать стоит с самого начала, когда я впервые увидел Turbo Pascal 5.0. Тогда для меня это было что-то на грани чуда.
Ведь как в те времена делалось "в норме":
Привет, Хабр! Одной из важных функций-модификаторов в DAX является REMOVEFILTERS
, он позволяет, например, убрать фильтр для расчета знаменателя в доле. Однако логика REMOVEFILTERS
для столбцов может выглядеть неочевидной, например, REMOVEFILTERS
только для одного поля, по которому есть условие в FILTER
, не влияет на результат DAX запроса. Так, REMOVEFILTERS(customer[customer_id])
не влияет на FILTER
в SUMMARIZECOLUMNS
вида FILTER(customer, customer[customer_id] > 2)
и для сброса фильтра нужен REMOVEFILTERS(customer)
по всей таблице. В связи с этим удобно представить принципы работы REMOVEFILTERS
более формально, например, в виде ER диаграммы с подписанными связями. Для построения ER диаграммы был выбран Mermaid и генерация кода диаграммы реализована на C#. Интересующимся особенностями REMOVEFILTERS
— добро пожаловать под кат :)
Сегодня я расскажу, как из-за случайной встречи с ANTLR я создал RCParsing, библиотеку на C# для парсинга практически любого вида синтаксиса, поддерживающую парсинг отступов из коробки. Мы разберемся, как работают разные алгоритмы парсинга и чем отличается тот, что используется у меня. Также я закину пример кода для парсинга упрощенного YAML с использованием моей библиотеки.
Фраза "вопросов нет" часто слышна в конце встречи или доклада. Чаще всего она означает, что всё прошло хорошо. Однако в мире программирования её буквальное значение обретает совершенно иной, даже тревожный оттенок. Когда речь заходит о разработке, отсутствие "вопросов" зачастую указывает не на ясность, а на скрытые проблемы. Давайте разберём, как их отсутствие может навредить качеству проекта.
Привет! С вами снова писатель-программист из компании Simpl Group (да, без e).
Совсем недавно я выступала на нашем внутреннем Meet Up — уже 6-м, между прочим, — и рассказала своим коллегам занимательную историю, которую поведаю сегодня и вам. Не про ведьм и демонов, конечно, как в моей книге. А про цирк — цифровой цирк, в котором задачи прыгают через обручи, катаются на велосипедах и не падают. Или, по крайней мере, мы стараемся, чтобы не падали.
Сообщество DotNetRu совместно с издательством «Питер» завершило перевод книги Нира Добовицки «C# Concurrency». Мы тщательно выверили терминологию, сгладили стиль и сохранили точность оригинала. Это практическое руководство для тех, кто хочет уверенно проектировать конкурентные компоненты на .NET 8/9 — без догадок и шаманства.
Возможно вы уже читали анонс от издательства, а в этой статье традиционно поделимся нашим мнением о книге и расскажем про работу над переводом.
Меня зовут Артём, в данный момент я работаю на должности ведущего программиста. Перед вами текст в стиле черновика статьи о размышлениях автора на тему современных ИИ инструментов в разработке программного обеспечения — о том, как это связано с эффектом «Зловещей долины», помощью с развитием профессиональных навыков и инцестом.
Привет всем поклонникам вселенной Fallout, особенно её первых двух частей. Сегодня речь пойдёт о Fallout 2 — попытки перенести вторую часть Fallout предпринимались не единожды. Есть вот такой интересный ремейк, а ещё есть группа энтузиастов, пытающихся перенести вторую часть Fallout на движок Fallout 4. Я не знаю, в каком статусе находятся эти проекты; подозреваю, что воз и ныне там. Как бы то ни было, намерения самые что ни на есть благие. В этот раз я хочу представить очередную попытку перенести Fallout 2 в 3D, на этот раз на движок Unity.
Почему Unity?
Изначально мой выбор пал на Unreal Engine 5, так как уровень графики и богатый API движка впечатляют. Но я быстро понял, что Unreal Engine 5 — это выбор для AAA-проектов либо для полноценных команд, которые уже собраны и готовы работать. В то время как Unity идеально подходит для энтузиастов-одиночек. Дополнительным обстоятельством послужил мой ноутбук — Unreal Engine 5 он банально не тянет, даже редактор работает со скрипом. В итоге звёзды сошлись и указали на Unity: выбор сделан.
Привет, Хаброжители! Асинхронные и многопоточные программы могут выполнять несколько задач одновременно, не теряя скорости или надежности. Но правильная организация параллельного выполнения может вызвать затруднения даже у опытных разработчиков. Эта практическая книга научит вас создавать параллельные приложения на C#, работающие с максимальной скоростью и не имеющие взаимоблокировок и других проблем синхронизации, которые ухудшают производительность и требуют огромных усилий для их обнаружения.
«C# Concurrency» помогает получить полное представление об особенностях многопоточности и асинхронного программирования. В ней особое внимание уделено практическому использованию операторов async/await в C# для упрощения асинхронных задач. Вы научитесь избегать распространенных ошибок, обходить классические проблемы многопоточности, такие как состояния взаимоблокировки и гонки, а также узнаете о многих сложных нюансах управления потоками и использования потокобезопасных коллекций.
Привет, Хабр!
В .NET живёт старый, понятный инструмент для конкурентной обработки — BlockingCollection<T>
. Коллекция, которая упрощает модель producer–consumer, даёт строгую ограниченную вместимость и предсказуемую блокировку при пустоте или переполнении. Да, у нас есть Channel<T>
, есть TPL Dataflow, есть миллион самодельных очередей на SemaphoreSlim
. Но когда нужны простые правила и железный backpressure без BlockingCollection
по-прежнему закрывает задачи хорошо.
"Продолжаем серию статей про автоматизацию десктопных приложений. В этой статье я покажу, как работать с элементами на практике. Расскажу о стратегиях поиска локаторов, умных ожиданиях и динамическом UI. Поделюсь готовыми решениями для создания стабильных тестов."
Привет дорогой читатель, не спеши листать дальше, ведь тут очередной раз «без всякого вранья», автор пишет про то как он за 1-у неделю сделал игру своей мечты и заработал миллионы миллионов...Ладно, шучу. Хочу просто жестко проехать по вот таким вот статьям.
Много «букаф» не планирую, хотя как пойдет. Итак — добро пожаловать в Netkot бар:‑)
Твоя игра на Unity тормозит?
В этой статье гайд о том, как поднять FPS с 30 до 60+.
Мы вместе разберем Profiler, GC, Object Pooling и другие "болевые точки".
Привет! Я Миша Симонов. Работаю в Контуре ведущим специалистом по тестированию и являюсь техлидом автоматизации тестирования кластера из 17 команд. Сегодня хороший день, чтобы рассказать об одной из задач, которой я занимаюсь — повышение квалификации сотрудников в области автоматизации тестирования.
Если ты опытный автоматизатор, то не проходи мимо и поделись своим опытом в комментариях к курсам. Эти комментарии прочтут не только администраторы, но и новички, проходящие курсы.
Привет, Хабр!
Если вы когда-нибудь чувствовали, что стандартных инструментов EPLAN не хватает, значит пора взглянуть на его API. В статье я покажу, как написать свой первый Add-In на C#, добавить кнопку на Ribbon и заставить её выполнять полезные действия. Всё на примерах — от простого «Hello World» до работы с объектами и настройками EPLAN.
Сложно следить за околонаучными темами, и понимать, что ветка эволюции научного направления пошла не туда. Сейчас случился некий бум псевдонаучного взлета LLM, и я приведу в качестве современной статьи на хабре лишь одну, но это по прежнему массовое явление. Например, в статье компании Friflex за 2024 год История LLM-агентов: 10 ярких моментов по прежнему утверждается "На смену однослойному перцептрону Розэнблатта пришел многослойный. В статье Learning representations by back-propagating errors («Обучение представлений с помощью обратного распространения ошибки») Румельхарт и Хинтон показали, что многослойный перцептрон справляется с задачами, которые были не под силу его однослойному предшественнику. Например, с XOR. ". Совершенно излишне говорить, что это полное вранье, а авторы статьи даже не потрудились открыть эту статью, чтобы её прочитать. Это стало массовым явлением, и я его наблюдаю как минимум 20 лет, я когда то написал тут на хабре цикл статей объясняющих детали, лучше всего посмотреть эту Какова роль первого «случайного» слоя в перцептроне Розенблатта. Поэтому к этому возвращаться не будем. Я не знаю почему, может это массовая культура так влияет на людей, а порог вхождения в тематику ИИ слишком сложный? Не знаю, но не важно. Чтобы продемонстрировать скорость обучения перцептрона я написал несколько реализаций перцептрона Розенблатта и выложил их на гитхабе. А затем мы коснемся LLM.
Это вторая статья из небольшого цикла, посвящённого знакомству с некоторыми любопытными VR-играми, а заодно и с примерами проблем в их исходном коде, найденных с помощью PVS-Studio. Знакомьтесь, NorthStar!
SOLID для начинающих Unity-разработчиков.
Разбираю 5 принципов программирования через аналогии из жизни.
Каждый принцип - с примерами кода на C#.
Если вы хотите создавать код по запросу, делать переводы текстов, генерировать резюме, и при этом всем не хотите чтобы данные уходили в сеть, то вы наверняка задумывались как развернуть свой ИИ(например deepseek) на локальном компьютере. Эта статья расскажет о том, как просто это сделать. Для этого нам понадобится небольшое знание C# и «docker» для ИИ моделей — Ollama.