DAX-style подход в C# для SUMMARIZECOLUMNS из Power BI

Привет, Хабр! Одной из важных функций в аналитическом языке DAX является SUMMARIZECOLUMNS
, т.к. она готовит данные для дашбордов за счет декартова произведения полей группировки, если поля группировки из разных таблиц. Понятно, что на любом языке программирования можно реализовать логику, в чем-то аналогичную SUMMARIZECOLUMNS
из DAX. Интересующимся DAX-style логикой для C# из NuGet пакета DaxSharp для функцииSUMMARIZECOLUMNS
— добро пожаловать под кат :)
Практические вопросы архитектуры ПО, из чего строить будем?

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

Время не ждёт. Мы все это чувствуем, но редко задумываемся о причине этого и о смысле времени вообще. Чаще всего у нас, обычных людей, нет времени думать о времени. А вот у некоторых физиков в этом заключается суть их работы.
В обычной жизни мы привыкли делить время на три категории: прошлое, настоящее и будущее. Даже если такое разделение кажется очевидным, суть его при дальнейшем анализе постепенно размывается. Нам нужно настоящее, чтобы определить и отделить прошлое от будущего. Но что такое «настоящее»?
Всё, что определяется временем, должно иметь продолжительность. Мы можем измерить продолжительность прошедших событий и прикинуть длительность будущих. Но настоящее как будто вообще не имеет продолжительности – это точка между прошлым и будущим на временной прямой. Это абстракция, не имеющая длительности. Следует ли из этого, что настоящего не существует?
Читать далее[Перевод] Решил перейти на Python и не пожалел

С полгода назад я начал чаще использовать для программирования Python. Почему? Конечно, из-за ИИ. Лично для меня очевидно, что сегодня эта сфера связана с очень большими деньгами перспективами во всех направлениях. А какой язык является самым распространённым для ИИ? Да-да, как-раз этот проныра.
Я уже писал на Python, но только небольшие скрипты. К примеру, вот этот скрейпит метаданные всех видео с моего канала на YouTube. Собранные метаданные выводятся в виде файла JSON, который я использую для показа красивой статистики роликов на этой статичной странице. Как можно видеть здесь, этот скромный скрипт через GitHub Actions выполняется в соло-режиме каждый понедельник. Просто реализовать всё это на Python куда проще, чем с помощью того же Batch. И не только из-за более дружественного синтаксиса, но и потому, что его интерпретатор нативно интегрирован во все дистрибутивы Unix. Разве не круто?
Читать далееНовости кибербезопасности за неделю с 21 по 27 июля 2025

Всё самое интересное из мира кибербезопасности /** с моими комментариями.
На этой неделе новости про милый вредонос для Linux, Америка рассказала о своих стратегических планах в ИИ, Британия запретила платить хакерам, Google занялась безопасностью open source и другие только самые важные и интересные новости из мира информационной безопасности.
Читать далееНеобычный гиковский девайс: как китайский стартап сделал планшет с тремя ОС одновременно

Пожалуй, все мы с вами любим диковинные гаджеты из 2000-х годов, когда производители всё ещё пытались удивить пользователя некой изюминкой. Таким необычным устройством был и предок современных планшетов — MID SmartQ V7, где за цену в 150$, производитель предлагал неплохое железо, приятный дисплей и целых три предустановленных операционных системы!
Что было «под капотом» у первых планшетов и что умел «дедушка» современного iPad с Android, Ubuntu и Windows CE «на борту» — читайте в сегодняшней подробной статье!
Читать далееНостальгические игры: Army Men Air Attack

Эпоха первой PlayStation стала для многих геймеров постсоветского пространства по-настоящему тёплым временем: ведь именно тогда большинство из нас «по-серьёзному» открыло для себя видеоигры. Это была прекрасная совокупность факторов, что смогла взрастить целое поколение, с нежной теплотой вспоминающее то время. Повсеместно прошитые приставки, пиратские диски по двадцать рублей, от чего 95% геймеров никогда не видели лицензионного диска, и бесконечный поток великолепных, подчас гениальных игр, что поражали неискушенного геймера, на всю оставшуюся жизнь оставляя яркие впечатления.
Сегодня я хочу вспомнить одну из лучших, на мой взгляд, частей серии — Army Men: Air Attack. Несмотря на достаточно невысокую сложность, она была действительно интересной и весёлой игрой, и пока я писал этот обзор, я не без удовольствия прошёл её от начала и до конца. Air Attack на PS1 была именно той игрой, где всё почти сложилось как надо, от чего она осталась не только в памяти, но и в сердцах геймеров! И вот теперь, спустя годы, самое время поделиться этими воспоминаниями — и рассказать, чем же так запомнилась Army Men: Air Attack.
Читать далееУправление проектами: дайджест публикаций #37

Классификатор рисков проекта, оценка задач, вредный фидбэк, обзор канбан-досок, лучшие книги для управленца, сторителлинг на пресейле, тревожность и всё интересное, что писали за последние 2 недели про управление проектами. Мы прочитали все публикации и выбрали для вас самые крутые и полезные. Читайте, сохраняйте и применяйте!
Читать далееИндейцы, пеммикан и уничтожение видов бизонов и лошадей до прихода европейцев

Простой факт - до прихода индейцев в Северную Америку, её населялимного видов лошадей лошадей, несколько видов чего то из семейства верблюдов, конечно были хоботные - аналоги мамонтов и слонов, овцебыки, несколько видов бизонов. Причём были бизоны совсем рогато-здоровые и помельче. По итогу индейцы, обладая на момент прихода ( 20 000 лет назад примерно ) передовым на тот момент копьями, быстренько ( относительно конечно, ходили то пешком, за несколько тысяч лет ) прошли оба континента туда-сюда, везде расселились и перебили к границе 12 000 - 9 000 лет назад всех хоботных и лошадей.
Для сравнения, в Евразии тоже лошадей перебили сильно, но они всё таки сохранились как вид в степях между каспийским и Чёрным морями. В Америках лошадей, все виды - извели под корень. Да, вымирание было на фоне потепления, когда ледники стали таять. Но когда за лошадьми круглый год шастают сотни племён индейцев и жрут их, и за бизонами так же - шансов у них нет. Бизоны выжившие - это самый злой и быстрый подвид, только лошадь и ещё какая то копытная мелочь, может соревноваться с эти видом в показателях скорости и способности поддерживать эту скорость. Индейцы убили всех кто был медленнее.
Что делали индейцы? Кое чего, чем занимались люди и в Евразии - они загонную охоту часто практиковали. Что делает индейцев такими же как и все - они не лучше и не хуже любых других народов планеты. А то сейчас даже нормальный режиссёр Тейлор Шеридан, рисует полу-святых любителей природы. В реальности, прежде чем поумнеть до состояния 19 века, индейцы были похуже европейцев в отношении природы.
Читать далееJules у меня дома… буквально
В последнее время тестил разные инструменты для вайб-кодинга и зашёл на Jules чисто дать ему очередную задачку. Jules выполняет все операции в изолированном окружении. Он клонирует ваш github-репозиторий, выполняет ваши просьбы, редактирует файлы, формирует коммиты и публикует в ваш репозиторий pull request с выполненной задачей. Если задача простая, то Jules прекрасно подойдёт, чтобы решить её автономно. В этой статье расскажу про его бесплатный аналог agent zero. Пристёгивайтесь, будет жарко!
Пристегнуться!Сердце Фреймворка: Философия и Практика Dependency Injection в Angular

Dependency Injection (DI) один из столпов, на которых держится фреймворк Angular. Каждый разработчик, так или иначе, сталкивается с ним с первого дня: запрашивает сервисы в конструкторе, добавляет providedIn: 'root' и видит, как «магия» работает. Но именно в этом и кроется ловушка.
Для многих DI так и остается на уровне «магии» удобного механизма, который просто работает. Однако поверхностное понимание этого мощнейшего инструмента неизбежно приводит к архитектурным компромиссам: неочевидным утечкам памяти, сложностям в тестировании, созданию неявных связей между компонентами и, в конечном счете, к коду, который трудно поддерживать и масштабировать.
Эта статья не очередной пересказ официальной документации. Это глубокое погружение в архитектуру и философию Dependency Injection в Angular. Наша цель демистифицировать «магию» и превратить ее в предсказуемый, управляемый и мощный инженерный инструмент в вашем арсенале.
Мы пройдем путь от фундаментальных принципов инверсии контроля (IoC) до тонкостей иерархического инжектора. Мы разберем на атомы все стратегии предоставления зависимостей, научимся управлять их жизненным циклом и областью видимости. Мы изучим продвинутые паттерны с использованием InjectionToken и multi-провайдеров и поймем, как современная функция inject() меняет подход к композиции логики.
Перейти к полному анализуНаука и «Астрология»

Дело было вечером, делать было …до фига чего, но не охота. Поэтому, мною было принято решение познакомить моих малочисленных подписчиков с родоначальником современной псевдонауки, а именно натальной астрологии («индивидуальные гороскопы», для тех, кто не знает, что смотрит ваша женщина в интернете).
Началось всё во II веке, в Александрии. Один известный ученый по имени Клавдий Птолемей, собрал все свои многочисленные труды в области астрономии в единый трактат под названием «Тетрабиблос», или «Четверокнижие». В этом трактате ученый сопоставил уже традиционные аспекты астрологии (тогда «астрология» и «астрономия» ничем не отличались) с представлениями Аристотеля о природе и материи.
Читать далееC#, Логи которые пишут себя сами
Всем привет.
Пару лет назад мне пришлось заняться интеграцией СБП с АБС банка, писать надо было на C#. Первое о чём я подумал, конечно, это было логирование. Писать логи руками это конечно не мой выбор. Конечно хотелось чтобы при вызове метода в логи записывались его входные аргументы и выходные результаты и конечно эксепшены.
В C#, на тот момент (конец 2023 года), для этого надо было делать обёртку над классом, пример обёртки я приведу ниже.
Читать далееOWASP Top 10 API: Полный разбор всех угроз и как от них защититься

API — это «кровеносная система» современного веба, но без должной защиты они становятся лёгкой добычей для хакеров. OWASP выделил Топ-10 уязвимостей API, которые чаще всего эксплуатируют злоумышленники. Разберём ключевые риски и методы защиты.
Читать далееКитайский интернет: как там?

Последние несколько лет в Рунете часто говорят, будто тот движется по китайскому сценарию — будь то Великий китайский фаервол или Государственный мессенджер, аналог WeChat. А какой этот "китайский интернет" с бытовой точки зрения? Восемь лет назад я уже писал, как он меня бесит. Интернет в Китае изменился, а и Рунет, кхм, тоже. Пора освежить знания.
Читать далееDocker для тестировщика: команды, приёмы и практическая шпаргалка

Если вы работаете в тестировании, то Docker должен быть в вашем ежедневном инструменте так же прочно, как баг-репорт в Jira. Современный QA — это не просто “прокликать” интерфейс. Мы работаем с API, БД, UI-автотестами, моками и целыми микросервисами. А значит, нам нужно уметь быстро разворачивать изолированные и воспроизводимые окружения.
В этой статье — сжатая, но насыщенная шпаргалка по Docker-командам, которые особенно полезны тестировщику.
Читать далееApache Kafka: что нужно знать тестировщику

Если ты уже начал осваивать тестирование, но Кафка для тебя — по-прежнему только чешский писатель, у нас плохие новости….
Но есть и хорошие! Сегодня мы поговорим про брокер сообщений Apache Kafka: из чего он состоит, как работает, зачем нужен и где применяется. А главное — разберем на конкретных примерах, как его можно протестировать.
Читать далееМоя коллекция индейцев. Воспоминания детства и собирательство по-русски

Статья посвящена аспектам коллекционирования солдатиков - резиновых индейцев, производимых в ГДР в период с 50-х до 90-х годов XX века. Освещается "история" вопроса и взгляд автора на её состояние на сегодняшний день.
Читать далееТот самый звук

Это интересное явление — то, как в головах даже профессионалов десятилетиями живут настоящие заблуждения. Особенно поразительно, когда они касаются вещей, находящихся буквально под носом.
По случаю чудесного воскресного дня поговорим о том, что нас развлекает ещё со времён каменного века: о музыке.
Наверняка вы слышали: учиться играть на электрогитаре нужно исключительно через аналоговый усилитель — так называемый «комбик». А если вы подключаете гитару через внешнюю звуковую карту с эффектами, всё будет плохо. Будто бы создаётся иллюзия, что вы умеете играть, но при подключении к настоящему, особенно ламповому усилителю, всё «вылезет наружу».
А вот если вы учились на комбике — особенно ламповом, — то с бездушными цифровыми плагинами справитесь без труда. Такие утверждения нередко можно услышать даже от признанных гитаристов, например Сергея Калугина или Сергея Табачникова. Последний, например, заявляет, что через цифровую обработку гитара звучит как MIDI-клавиатура — все ноты одинаковы, а вот через аналог слышны мельчайшие нюансы, включая шуршание медиатора (а также пуканья гитариста, но это не точно). Калугин же утверждает (со слов своего бас-гитариста), что для звука уровня Фли (басиста Red Hot Chili Peppers) нужен аппарат за 5000 долларов, причём высшего класса должны быть все компоненты — от гитары до проводов. У них на студии якобы даже есть специальный серебряный провод за отдельную плату.
Кажется, эти люди работают со звуком каждый день. Могут ли они ошибаться? Слышат ли они то, чего не улавливают профаны?
Читать далееМашина Слонимского для умножения (1844 г.): новые результаты и веб-модель
На Хабре была статья https://habr.com/ru/articles/232255/, в которой говорилось о приборе для умножения – «машине Слонимского».
Читать далееВсё о Directus. От установки до настройки

Directus — это open?source платформа для управления данными, которая превращает любую SQL?базу в headless CMS, предоставляя автоматическую REST и GraphQL API и удобный веб-интерфейс для управления контентом.
Она устанавливается поверх существующей базы данных и не требует её миграции — Directus быстро строит схему, интерфейс и API на лету, позволяя пользователям работать с данными через визуальную Data Studio.
В статье я рассмотрю пример базовой настройки Directus.
Читать далее5 DIY-устройств на Raspberry Pi: от ретроконсолей до портативных ПК

Лето в самом разгаре — хорошее время, чтобы собрать что-то полезное. Если не знаете, что именно — эта подборка может подсказать. Мы собрали пять интересных проектов на Raspberry Pi. Это не концепты, а работающие устройства: компактные, автономные, с понятной задачей и аккуратной реализацией. Тут нет абстрактных прототипов — все собрано, протестировано и продемонстрировано.
Читать далееЭффективная перегрузка. Человек, которого не видит система

Мы привыкли думать, что перегрузка — это результат плохой настройки. Неоптимальные процессы, слабые инструменты, устаревшие системы. Поэтому каждый сбой мы встречаем с новой волной оптимизации. Перестраиваем, автоматизируем, сокращаем — чтобы стало легче. Но легче не становится.
Каждое улучшение ускоряет поток. Но в этом потоке остаётся одна переменная, которая почти никогда не входит в расчёты. Это сам человек — тот, кто проходит через интерфейсы, переключается между задачами, принимает решения. И тот, чьё восприятие оказывается вне внимания системы.
Читать далееМой старый друг Pyro

Пост выходного дня, не претендующий ни на глубину мыслей, ни на звание полезного.
Я вырос — и, как теперь, по истечении многих десятков лет, хорошо понимаю, сформировался в эпоху позднего совка с его двойной или тройной лживой моралью и однобоко-убогим образованием, неплохо учившим физике и математике, но совершенно не готовившим к практической стороне жизни, — среди прочего, не дававшим ни малейшего представления о том, как обращаться с персональными финансами, вести личный бюджет, считать и сравнивать баланс цена–выгода.
И это неумение укоренилось во мне так надёжно и глубоко, что даже спустя более чем 30 лет в бизнесе, я личный бюджет так и не веду, не говоря уже про анализ эффективности вложений перед какой-нибудь средней или даже крупной персональной покупкой. Что чаще всего — плохо, но иногда волей игривого случая даёт звёздные результаты: есть несколько покупок, трат, ставшими в моей жизни знаковыми, почти поворотными. И ни покупка замка в Швейцарии, ни пентхауса в Нью-Йорке, ни супер-яхта к ним не относятся. А вот велосипеда Pyro— да, это да. N (более 15) лет тому назад случилось такое счастливое исключение: без холодных расчётов – пришёл, увидел и победил. Совсем как Юлий Цезарь…
Ладно, «победил» – не совсем удачное слово. Лихорадочный перебор вариантов — и пусть будет «влюбился». Что, раз уж вещь идёт о прозе жизни, привело к покупке. Хотя любовь, как говорят книги, прочитанные в огромном количестве в совковой молодости, — не покупается.
Как бы там ни было, я за Pyro заплатил, подождал, пока его соберут, погрузил в багажник авто — и увёз к себе домой.
Читать далееНовая страница в фэнтези с дьявольским драйвом. Чем удивил DOOM: The Dark Ages?

Привет, Хабр! Меня зовут Настя, я иллюстратор, фанатка видеоигр, а еще пишу для блога МТС на Хабре. В прошлый раз рассказывала о высокобюджетных провалах последних пяти лет. Спасибо всем за столько комментариев! А сегодня хочется поговорить о новой части легендарной франшизы — DOOM: The Dark Ages. Новая страница в истории всеми горячо любимого Палача!
Предлагаю вспомнить хронологию игр, окунуться в сюжет и обсудить графическую составляющую новинки. А еще в тексте будут пасхалки, которые игроки смогли отыскать в игре.
Читать далееМобильная разработка за неделю #595 (21 — 27 июля)

В новом дайджесте рассказ последнего UIKit-разработчика и погружение в разработку плагинов для Android Studio, дизайн киты iOS и iPadOS 26 и зачем нужен Navigation 3, автоматизация тестирования, TikTok для роста, ИИ, который удалил производственную базу данных пользователя, и многое другое. Заходите!
Читать далееМинификация кода для повышения эффективности LLM: влияние на лингвистику, генерацию и анализ программ

Большие языковые модели (LLM) становятся неотъемлемой частью инструментов генерации, анализа и автоматизации программирования. Их возможности позволяют автоматизировать разработку, искать ошибки, генерировать тесты, осуществлять перевод между языками программирования. Однако одно из ключевых ограничений – контекстное окно, то есть максимально возможная длина входных данных. С ростом объема современных программ эффективность работы LLM с длинным кодом становится всё более актуальной задачей, особенно учитывая вычислительные и финансовые издержки обработки длинных последовательностей.
Минификация кода – процесс сокращения программного текста до минимального, необходимого для сохранения семантики. Для современных LLM это уже не только техническая задача (как раньше для web-ресурсов), а способ оптимизации использования ресурсов, экономия токенов, увеличение объема анализируемого кода, ускорение анализа и генерации. В данной статье рассматривается современное состояние исследований по минификации в контексте LLM, формулируются гипотезы о её влиянии, а также обсуждаются перспективы для программной лингвистики.
Читать далееИнтересные факты о Vigilante 8 (и не только) — из первых уст

Я связался с Дэвидом Годричем — одним из разработчиков Vigilante 8 — и он любезно предоставил мне часовое интервью.
Сейчас я занимаюсь его переводом, и чтобы подогреть интерес, хочу поделиться несколькими итересными фактами разработки этой игры.
Читать далее[Перевод] JunoCam залечивает последствия радиационного поражения

24.07.2025, Эван Гоф, Universe Today
Миссия «Юноны» к Юпитеру столкнулась с множеством трудностей и препятствий. Газовый гигант находится далеко от Солнца, что ограничивает доступную солнечную энергию. Расстояние также затрудняет связь с космическим аппаратом. Добавьте к этому сложную окружающую среду: мощное гравитационное притяжение Юпитера и сложная орбитальная структура его четырёх галилеевых спутников создают постоянно меняющееся поле гравитационных взаимодействий.
Однако самым большим препятствием, вероятно, является интенсивное излучение Юпитера.
У Юпитера чрезвычайно мощные магнитные поля, которые захватывают заряженные частицы, создавая разрушительную среду для космических аппаратов и их чувствительной электроники. У «Юноны» есть титановый контейнер, в котором хранится самая ценная электроника, но, к сожалению, внутри контейнера не хватило места для всего. Поскольку камера JunoCam не входит в число основных научных инструментов миссии, она не прошла отбор. JunoCam — это оптическая камера, установленная на космическом аппарате. Она предназначена прежде всего для обычных людей, желающих увидеть то же, что видит аппарат, хотя также внесла свой вклад в науку.
Читать далееСтартап за выходные: AI-агент для БД, часть 2

Ну кто не мечтает запустить стартап за одни выходные?
Давно хотел развеяться, и чутка отвлечься от рутины и работы.
А ещё давно хотел пощупать Tauri v2, и новомодные фреймворки для построения AI-агентов (ai-sdk / mastra / llamaindex).
Идея простая: десктопное приложение, внутри ИИ-агент, который подключается к БД, получает данные о структуре таблиц/вьюшек. Справа сайдбар: интерфейс чата с агентом, а основное пространство - холст, на котором агент размещает что хочет сам. А именно - виджеты, которые делают запросы к БД, и выводят их в приятном глазу виде.
Никакого удалённого бекенда, open-source, доступы к БД хранятся исключительно локально, всё секьюрно.
Часть 2 - как мы в runtime React-компоненты компилировали.
Читать далееСтоицизм, самурайство и пофигизм в ИТ

Для тех, кто устал от корпоративного театра, но все еще любит своё дело.
Статья о моей философии в ИТ и изрядно приправлена самоиронией.
Мы не в эпоху сёгунов, но ИТ — та же война: против глупости, выгорания и бессмысленных скрамов.
И причём здесь катана и JBL?
Настройка кастомного декодера для PostgreSQL и редактирование декодера auditd в Wazuh

Wazuh — мощная платформа для мониторинга безопасности, которая позволяет анализировать логи систем и приложений. В этой статье мы разберём, как создать кастомный декодер для логов PostgreSQL, чтобы отслеживать подключения, запросы и ошибки базы данных, а также как улучшить дефолтный декодер auditd для более точной обработки системных логов.
Читать далееКарточка товара через 10 лет

Последнее время, карточка товара - моя Римская империя, с мыслями о которой я засыпаю.
Попалась на глаза статистика от WB, где они обрабатывают 750 тысяч заказов в день.
И это только один магазин.. Миллионы сценариев..
В общем, компонент карточки товара сейчас безумно популярный. И захотелось поразгонять, а что с ним станет через 10 лет.
Efficient Computer: программируем по кафелю

Экспериментируем с компилятором для новой не Фон-Неймановской архитектуры, обещающей повышение энергоэффективности в 100 раз.
Читать далее