Dgsh – Directed graph shell
Dgsh — это оболочка для создания направленных ациклических графов процессов, расширяющая возможности стандартных Unix-конвейеров. Она позволяет строить сложные нелинейные пайплайны с параллельным выполнением задач, используя существующие утилиты и специально адаптированные инструменты. Это повышает эффективность обработки больших данных и потоков, распределяя нагрузку между несколькими ядрами процессора.
Ключевые особенности включают многоканальные пайпы (multipipes) для связи команд с несколькими входами и выходами, блоки {{ ... }} для асинхронного выполнения процессов и хранение значений (stored values) для обмена данными между произвольными узлами графа. Примеры использования охватывают бенчмарки сжатия, анализ кода, поиск дубликатов и обработку научных данных, демонстрируя гибкость подхода.
Комментарии (52)
- Идея Dgsh оценивается как устаревшая по синтаксису, но перспективная для современных оболочек вроде nushell и elvish.
- Обсуждаются преимущества представления конвейеров данных в виде направленного ациклического графа (DAG) перед линейными пайплайнами.
- Сравнивается удобство Dgsh для создания конвейеров с написанием аналогичных задач на Python, Ruby или в чистом bash.
- Отмечается сложность работы с пайпами и процессами в Python по сравнению с shell-инструментами.
- Упоминаются альтернативные инструменты, такие как Murex, и фреймворки для оркестрации, например Apache Airflow.
DeepFabric – Generate high-quality synthetic datasets at scale
DeepFabric — это библиотека для генерации синтетических датасетов высокого качества, предназначенных для обучения, оценки и исследований языковых моделей. Она использует иерархические деревья тем и экспериментальные графы для создания разнообразных и контекстуально насыщенных примеров. Подходит для исследователей и инженеров, работающих с дистилляцией моделей, оценкой агентов или статистическими исследованиями.
Библиография предлагает инструменты для масштабируемой генерации данных, включая поддержку различных форматов инструкций, таких как Chain of Thought, и интеграцию с популярными платформами, включая Hugging Face. Она распространяется под лицензией Apache 2.0 и активно развивается с открытым исходным кодом.
Комментарии (16)
- Представлен интерактивный инструмент для генерации синтетических данных с возможностью интерактивного редактирования и проверки на каждом шаге.
- Обсуждается техническая реализация: интеграция с существующими схемами БД, поддержка экспорта в txt/csv, переход от древовидных структур к графам (DAG).
- Упоминаются публично доступные синтетические датасеты (GSM8K, DevOps CoT) на Hugging Face для обучения моделей.
- Затронуты вопросы качества данных: низкий уровень дублирования и высокая диверсификация, проверяемая с помощью great-expectations.
- Проводятся параллели с другими методами (GLAN) и обсуждаются возможные заимствования кода между проектами.
Build durable workflows with Postgres
-
Выбор хранилища метаданных рабочих процессов оказался ключевым. Нужно было простое: чекпойнт состояния и восстановление после сбоя. Postgres выбрали за технические возможности, а не только за популярность и 40-летнюю проверку временем.
-
Масштабируемые очереди
Классическая таблица-очередь страдает от конкуренции: все воркеры пытаются взять одни и те же задачи. Postgres решает это черезFOR UPDATE SKIP LOCKED: строки блокируются и пропускаются, если уже захвачены. Воркеры без конфликтов берут следующие N записей, позволяя обрабатывать десятки тысяч задач в секунду. -
Наблюдаемость
Каждый шаг сохраняется, поэтому можно строить дашборды и фильтры. SQL позволяет писать сложные запросы напрямую; индексы поcreated_at,executor_id,statusускоряют выборки из миллионов записей без лишних затрат. -
Exactly-once для шагов с БД
Обычно гарантируется «по крайней мере один раз», но если шаг меняет данные в той же транзакции, что и чекпойнт, Postgres обеспечит, что изменения зафиксируются ровно один раз даже после перезапуска.
Комментарии (49)
- Пользователи хвалят DBOS за простоту миграции с graphile-worker и отсутствие необходимости менять инфраструктуру.
- Сравнения с Temporal, Azure Durable Functions, Inngest, Restate и Cloudflare: DBOS выглядит проще и легче, но Temporal/Cloudflare критикуют за сложность самостоятельного хостинга и высокую цену.
- Некоторые жалуются, что «сервер» DBOS (Conductor) не open-source, что ограничивает самостоятельное развёртывание.
- Планы по добавлению Java, C#, Go и поддержке сообщества уже анонсированы; Python и TypeScript уже поддерживаются.
- Отмечена возможность комбинировать DBOS с Dagster/Oban/pgflow для более сложной оркестрации.
Representing Python notebooks as dataflow graphs
marimo — новый open-source Python-ноутбук, в котором программа представлена графом потока данных. Это снимает главные боли Jupyter: скрытое состояние, невоспроизводимость, невозможность повторного использования и сложную поддержку.
Почему старый формат не подходит
- Воспроизводимость. Исследования 2019–2020 гг. показали: только 4–24 % ноутбуков на GitHub можно перезапустить без ошибок и получить те же результаты. Причина — скрытое состояние: удаление или переупорядочивание ячеек ломает выводы.
- Интерактивность. В Jupyter интерактивен процесс, но не сами данные: выделение точек на графике не возвращает датафрейм.
- Поддержка и переиспользование. Файл
.ipynb— это JSON-блоб, не валидный Python-код; сложно версионировать в Git и переиспользовать как модуль или пайплайн.
Как marimo решает задачу
- Каждый ноутбук — корректный Python-скрипт и модуль.
- Граф зависимостей ячеек строится статически; изменение одной ячейки автоматически перезапускает только зависимые.
- Реактивность: обновление переменной мгновенно отражается во всех графиках и виджетах.
- Один файл можно экспортировать как приложение или запускать без ядра Jupyter.
Комментарии (27)
- Пользователи хвалят marimo за реактивное исполнение, «песочницу» uv и лёгкий обмен с коллегами.
- Сторонники Jupyter считают, что «restart kernel & run all» решает проблему воспроизводимости, но критики отвечают: это требует дисциплины и не работает при тяжёлых вычислениях.
- Некоторые видят в ноутбуках лишь инструмент разведки и предлагают после исследования переносить код в обычные .py-файлы.
- Участники сходятся, что метаданные зависимостей и чистые DAG-подобные модели вычислений могли бы улучшить ситуацию.