Hacker News Digest

Тег: #mermaid

Постов: 5

Who needs Graphviz when you can build it yourself? (spidermonkey.dev) 🔥 Горячее

Команда SpiderMonkey разработала новый инструмент для визуализации компиляции JavaScript и WebAssembly, создав собственный алгоритм расположения графов вместо использования Graphviz или Mermaid. Когда оптимизирующий компилятор Ion активен, система генерирует интерактивные графики, показывающие обработку и оптимизацию функций. Пользователи могут писать JavaScript-код и видеть в реальном времени, как изменяется граф, с возможностью навигации, масштабирования и просмотра различных этапов оптимизации.

Автор статьи не был удовлетворен выводом существующих инструментов, которые не отражали структуру исходного кода и создавали нестабильные макеты. Новый алгоритм, реализованный менее чем в 1000 строк кода, прост, быстр и produces высококачественный результат. Он учитывает специфические ограничения графов управления потоком, такие как наличие хорошо определенных циклов и необратимость потока управления, что позволяет создавать более интуитивные визуализации.

Для разработки автор изучал алгоритм Сугиямы, используемый в Graphviz, но создал собственное решение, специально адаптированное под нужды компилятора. Интерактивный инструмент значительно упрощает анализ и отладку сложных графов компиляции, позволяя отслеживать инструкции и блоки кода на разных этапах оптимизации.

by pdubroy • 29 октября 2025 г. в 05:17 • 460 points

ОригиналHN

#javascript#webassembly#graphviz#mermaid#ion#spidermonkey#github

Комментарии (95)

  • Обсуждение показало, что специализированные решения для визуализации превосходят универсальные инструменты вроде Graphviz, но сообщество продолжает использовать последние из-за инерции и отсутствия альтернатив.
  • Участники жалуются на то, что Graphviz и подобные инструменты не справляются с задачами даже средней сложности, и что их использование часто требует ручной доводки.
  • Проект Microdiagram нацелен на создание DSL для каждого типа диаграмм вместо одного языка для всех типов диаграмм.
  • Обсуждение также затронуло вопросы производительности и надежности инструментов, а также то, что сгенерированные ими диаграммы не всегда читаемы без дополнительной ручной работы.
  • Участники поделились ссылкой на исходники на GitHub, где можно найти код, который может быть использован как стартовая точка для собственных экспериментов в этой области.

Microsoft 365 Copilot – Arbitrary Data Exfiltration via Mermaid Diagrams (adamlogue.com)

Исследователь обнаружил уязвимость в Microsoft 365 Copilot, позволяющую произвольную утечку данных через диаграммы Mermaid. Атака работает через косвенную инъекцию команд в специально созданный документ Office. Когда Copilot просит резюмировать документ, он выполняет вредоносные инструкции, извлекает чувствительные данные (например, недавние письма), кодирует их в шестнадцатеричном формате и создает фейковую кнопку входа в виде диаграммы Mermaid. Эта кнопка содержит ссылку на сервер атакующего с зашифрованными данными, которые передаются при клике.

Для реализации атаки исследователь создал запрос, использующий инструмент search_enterprise_emails для получения писем, их шестнадцатеричного кодирования и разделения на строки по 30 символов (из-за ограничения Mermaid в 200 символов на строку). Затем генерировалась диаграмма с фейковой кнопкой, содержащей ссылку на сервер атакующего с закодированными данными. Важно отметить, что Mermaid поддерживает CSS, что открывает возможности для атак на утечку данных.

by gnabgib • 26 октября 2025 г. в 22:58 • 185 points

ОригиналHN

#microsoft-365-copilot#mermaid#data-exfiltration#llm#prompt-injection#microsoft

Комментарии (33)

  • MSRC исключил Copilot из программы вознаграждения за уязвимости, что фактически поощряет не раскрывать уязвимости и ставит под сомнение безопасность продукта.
  • Сообщество отмечает, что это не первый случай утечки данных через Mermaid/Cursor и что проблема кроется в самой архитектуре LLM.
  • Участники обсуждают, что отсутствие денежного стимула для исследователей уязвимостей в Copilot может привести к тому, что уязвимости останутся неисправленными.
  • Некоторые комментаторы поднимают вопрос о том, что сама модель LLM по своей природе уязвима к prompt-injection, и что это не может быть полностью устранено без фундаментального прорыва в AI.

D2: Diagram Scripting Language (d2lang.com) 🔥 Горячее

D2 — декларативный язык для создания диаграмм из текста. Пользователь описывает желаемую диаграмму простым текстом, а D2 автоматически генерирует визуальное представление. Например, создается файл input.d2 с текстовым описанием сети, после выполнения команды CLI получается готовая диаграмма с элементами вроде CELL TOWER, SATELLITE, TRANSMITTER и связями между ними.

Для работы доступны CLI с режимом отслеживания изменений и интерактивный Playground для экспериментов. Исходный код D2 и документации размещены на GitHub. Тур по основам занимает 5-10 минут, а краткое руководство "Hello World" — около 2 минут. Для каждого примера в документации есть возможность открыть код в Playground для тестирования.

by benzguo • 25 октября 2025 г. в 22:40 • 254 points

ОригиналHN

#d2#diagrams#github#cli#compiler#graph#mermaid#plantuml

Комментарии (63)

  • Обсуждение в основном вращается вокруг инструмента D2 и его места в экосистеме диаграмм-как-кода, включая сравнение с Mermaid, PlantUML и прочими.
  • Участники обсуждают визуализацию изменений в графах, анимацию переходов между снапшотами и влияние на восприятие изменений.
  • Упоминается, что D2 — это компилятор, а не просто синтаксический сахар, и что он может быть использован как библиотека или как CLI-утилита.
  • Поднимается вопрос о цене и лицензии: TALA стоит $3000 в год, что вызывает споры о целесообразности такого подхода.
  • Участники также обсуждают, как D2 сравнивается с другими инструментами в терминах синтаксиса, возможностей и удобства использования.

Less is safer: How Obsidian reduces the risk of supply chain attacks (obsidian.md) 🔥 Горячее 💬 Длинная дискуссия

Obsidian минимизирует риски цепочек поставок, сознательно сокращая зависимости от стороннего кода. Приложение переиспользует или форкает небольшие модули, а для крупных библиотек вроде pdf.js или Mermaid использует версионно зафиксированные файлы с редкими обновлениями после тщательного тестирования. Это создаёт мелкую и контролируемую структуру зависимостей.

Все зависимости жёстко закреплены через lock-файлы, исключены пост-установочные скрипты, а обновления проводятся медленно и вручную — с изучением изменений, проверкой подзависимостей и тестами. Такой подход снижает вероятность попадания вредоносных обновлений и даёт время на обнаружение проблем до релиза.

by saeedesmaili • 19 сентября 2025 г. в 22:02 • 475 points

ОригиналHN

#obsidian#supply-chain-security#dependencies#electron#security#plugins#pdf.js#mermaid#lock-files

Комментарии (224)

  • Пользователи выражают обеспокоенность уязвимой моделью безопасности плагинов Obsidian, которые имеют полный доступ к файлам.
  • Обсуждается компромисс между использованием зависимостей и безопасностью: одни выступают за минимализм, другие — за осторожное обновление.
  • Многие отмечают, что пост Obsidian игнорирует риски, связанные с плагинами, которые являются ключевой особенностью продукта.
  • Высказывается критика в адрес Electron-архитектуры приложения из-за её ресурсоёмкости и потенциальных уязвимостей.
  • Предлагаются альтернативы с меньшим количеством зависимостей и более нативными решениями, такие как Zim или Emacs.

D2 (text to diagram tool) now supports ASCII renders (d2lang.com) 🔥 Горячее

ASCII-вывод в D2 0.7.1
Файлы с расширением .txt теперь рендерятся в ASCII. Пример: при сохранении .d2-файла Vim-плагин мгновенно показывает ASCII-превью.

Для документации кода
ASCII-диаграммы удобно вставлять в комментарии: выделите блок d2, плагин заменит его ASCII-версией.

Unicode или чистый ASCII
По умолчанию используются символы Unicode, но флаг --ascii-mode=standard вернёт строгий ASCII.

Ограничения (альфа-версия)

  • Без стилей: animated, font, темы не поддерживаются; цвета в терминале — возможно позже.
  • Неравномерные отступы из-за дискретной сетки.
    Сообщайте о багах: github.com/terrastruct/d2/issues.

Попробуйте сейчас
Откройте пример в D2 Playground.

by alixanderwang • 19 августа 2025 г. в 18:14 • 403 points

ОригиналHN

#d2#ascii#vim#github#wasm#mermaid

Комментарии (70)

  • Представлена новая альфа-функция D2: рендеринг диаграмм в ASCII.
  • Пользователи сравнивают D2 с Mermaid, отмечают лучший внешний вид и CLI без Chromium, но упрекают в отсутствии GitHub-рендеринга и сложных grid-раскладок.
  • Появились вопросы о браузерной офлайн-работе, vim-/emacs-плагинах, Python-обёртке и возможности ручной подгонки элементов.
  • Автор подтвердил, что WASM-версия (d2.js) уже работает в браузере, но пока неанонсирована; официальный релиз и поддержка PR-диаграмм ожидаются позже.