Код в мешке
208 subscribers
8.03K photos
1.28K videos
2.06K files
35.9K links
Код в мешке - про кодинг, и не только...
Это личная записная книжка

https://t.me/joinchat/AAAAAEIy6oGlr8oxqTMS5w
Download Telegram
Forwarded from Ivan Begtin (Ivan Begtin)
Не так давно я писал про распознавание классов данных в DataCrafter'е и про небольшой движок с открытым кодом metacrafter [1], но не все и не всегда понимают зачем это нужно и для чего вообще используются подобные инструменты и нужно понимание того что содержится в таблицах с данными. Я постараюсь об этом рассказать в подробностях.

То что я ранее упоминал как классы данных, иногда называют метки данных (data labels), но самое распространённое название - это semantic type (семантический тип данных). В отличие от простых типов данных таких как числа, числа с плавающей запятой, строки, даты, бинарные блоки и так далее, семантические типы определяют смысл и предназначение именно этих данных. Смысл и предназначение как в содержании, так и в последующих вариантах применения.

Например, типом поля может быть строка, а семантическим типом может быть: адрес, номер телефона, название организации или ФИО человека. Каждый из этих семантических типов имеет разный смысл и разные модели использования. Где-то это ссылка на справочные значения, где-то данные требующие расшифровки и декомпозиции, а где-то и метрики для последующего анализа и отображения.

Многие инструменты умеют определять семантические типы весьма неплохо. Например, Talend ETL поддерживает несколько десятков семантических типов данных [2] что используется в преобразованиях данных. Некоторые семантические типы понимает и распознает Google DataStudio [3] что позволяет сразу размечать данные в наборе для разных видов визуализации. А в таком инструменте как Dataprep [4] семантические типы данных используются в задачах очистки наборов данных. И таких применений ещё много.

Поэтому отвечая на вопрос: зачем это нужно, перечислю наиболе очевидные области применения:
1. Идентификации персональных данных в целях комплаенса и соответствия требованиям.
2. Автоматизация обработки данных включая (сопоставление схем, обогащение данных, автоматизация преобразований)
3. Обеспечение качества данных: автоматизация проверки на соответствие данных шаблонам и подсказки для инженеров QA.
4. Автоматизация документирования данных автоописанием полей данных на основе их смысла
5. Улучшение визуализации в BI системах за счёт того что система начинает понимать природу данных и предлагать разные способы их визуализации
6. Повышение находимости данных (data discoverability) через доп фильтры для поиска и через дополнительный способ навигации по данным.

Наиболее остроактуальные темы - это повышение качества данных и идентификация персональных данных. Многие онлайн платформы, вроде Snowflake, автоматизируют идентификацию семантических типов.

Ссылки:
[1] https://github.com/apicrafter/metacrafter
[2] https://help.talend.com/r/en-US/Cloud/data-preparation-user-guide/predefined-semantic-types
[3] https://developers.google.com/datastudio/connector/semantics
[4] https://docs.dataprep.ai/user_guide/clean/clean_df.html

#data #datatools #dataconcepts
Forwarded from Ivan Begtin (Ivan Begtin)
В рубрике полезных инструментов с открытым кодом для работы с данными Datasette [1]. Незаменим когда надо очень быстро и простым образом опубликовать данные так чтобы можно было их не просто скачать, но и связывать с другими данными, делать SQL запросы и просматривать онлайн.

Инструмент автоматически создаёт интерфейс поверх набора данных и даёт возможности поиска по нему разными способами. Его особенность в том что он работает поверх базы SQLlite, которую также можно скачать.

Примеры публикаций датасетов с помощью datasette:
- global-power-plants.datasettes.com [2] - база электростанций по всему миру
- fara.datasettes.com [3] - реестр инагентов в США (FARA)
- covid-19.datasettes.com [4] - база кейсов по COVID-19
И многие другие.

Интерфейс который создает datasette неидеален и лично мне он не нравится, но для многих он может быть и будет полезен.

Ссылки:
[1] https://datasette.io/
[2] https://global-power-plants.datasettes.com/
[3] https://fara.datasettes.com/
[4] https://covid-19.datasettes.com/

#datatools #opendata #data #opensource
Forwarded from Ivan Begtin (Ivan Begtin)
Для тех кто работает с данными и кому нужно регулярно кто-либо архивировать из социальных сетей, продвинутый инструмент для этой задачи - snscrape [1]. Поддерживает Faceboo, VK, Twitter, Instagram, Reddit и ещё много чего. Лучше всего архивирует данные твиттера.

Когда надо сохранить/регулярно сохранять чьи-то социальные сети - вещь незаменимая.

Работает с командной строки, написан на языке Python.

Ссылки:
[1] https://github.com/JustAnotherArchivist/snscrape

#datatools #opensource #digitalpreservation
Forwarded from Ivan Begtin (Ivan Begtin)
Для всех кто учится работать с данными и работать с SQL я рекомендую сразу начинать изучать dbt, например, по ссылкам из awesome-dbt [1] и начиная с бесплатного официального курса [2]. Пройдёт год-два максимум и dbt в России начнут повсеместно использовать, а для работы инженера-аналитика (analytics engineer) дистанционно на проект/компанию в любой стране - это будет одна из наиболее востребованных технологий.

Почему dbt? Потому что пока это наиболее развитый инструмент преобразования данных. Если в областях ETL/ELT, data orchestration, data visualization, BI и других есть масштабная конкуренция и авторы и создатели проектов регулярно пишут о том как заменить одно на другое или как отказаться от чего-либо, например, как отказаться от Airflow [3], то про dbt все пишут только о том как они заменили свои механизмы трансформации данных на dbt.

Продукт получился просто таки попаданием в яблочко, в России он мало применяется только по причине малой применимости тут других зарубежных облачных продуктов. Но важная особенность dbt что он, и облачный, и как изначальный open source продукт.

Ссылки:
[1] https://github.com/Hiflylabs/awesome-dbt
[2] https://courses.getdbt.com/collections
[3] https://blog.fal.ai/the-unbundling-of-airflow-2/

#datatools #studies #learning #sql #dbt
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки про данные, технологии и не только:
- Perforator [1] профайлер приложений от Яндекса и с использованием eBPF [2]. Полезно для отладки многих сложных и простых нативных приложений и отдельно расписано как профилировать и оптимизировать серверные приложения на Python. Выглядит как очень добротный open source продукт
- GPT Researcher [3] автономный инструмент для исследований с аккуратной простановкой цитат, использует внешние и локальные источники. Интегрирован с OpenAI
- The Illustrated DeepSeek-R1 [4] подробно о DeepSeek в картинках, позволяет легче ухватить суть продукта
- DataLumos [5] проект Университета Мичигана по архивации государственных и социальных данных, построен на базе OpenICPSR [6], данных не очень много, но они адаптированы под исследовательские задачи
- Data Formulator: Create Rich Visualizations with AI [7] полноценный движок для визуализации данных с помощью ИИ. Выпущен исследователями из Microsoft вместе с научной работой, под лицензией MIT. Выглядит как proof-of-concept, не факт что его можно применять в практических задачах сразу и из коробки, но для экспериментов самое оно. И для идей и вдохновения
- Chat2DB [8] открытый код (community edition) и сервис по управлению базами данных с помощью ИИ. Всё самое вкусное вынесли в коммерческие версии, но посмотреть стоит в любом случае.

Ссылки:
[1] https://perforator.tech
[2] https://ebpf.io
[3] https://github.com/assafelovic/gpt-researcher
[4] https://newsletter.languagemodels.co/p/the-illustrated-deepseek-r1
[5] https://www.datalumos.org
[6] https://www.openicpsr.org/openicpsr/
[7] https://github.com/microsoft/data-formulator
[8] https://chat2db.ai

#opensource #datatools #opendata #ai
Forwarded from Ivan Begtin (Ivan Begtin)
Ещё один проект по быстрому созданию приложений на основе датасетов Preswald [1]. С открытым кодом, под лицензией Apache 2.0, вместо low code/no-code пропагандируют принцип Code-First Simplicity (минимальный, но необходимый код), а также декларативное программирование через конфигурацию в toml файлах.

Когда и кому такой инструмент зайдёт? Тем кому нужно быстро визуализировать данные в наглядном виде и предоставлять их в таком виде пользователям. В этом смысле продукт похож чем-то на Observable или Datasette [2] .

На мой взгляд в части демонстрации возможностей инструмента команда как-то сильно недорабатывает, не видно интерактивных демо, а с другой стороны это же просто ещё один инструмент в копилку аналогичных. Возможно, полезный в будущем.

Ссылки:
[1] https://github.com/StructuredLabs/preswald
[2] https://datasette.io

#opensource #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки про данные, технологии и не только:
- Kreuzberg [1] библиотека для Python по извлечению текста из документов, поддерживает множество форматов, внутри использует Pandoc и Tesseract OCR. Создано как раз для использования в задачах RAG (Retrieval Augmented Generation) с прицелом на локальную обработку данных и минимумом зависимостей. Лицензия MIT
- Validoopsie [2] другая библиотека для Python для валидации данных. Использует библиотеку Narwhals благодаря которой подключается к почти любым видами дата-фреймов. Выглядит полезной альтернативой Great Expectations, лично для меня в валидации данных глобальный нерешённый вопрос в том что тут правильнее, код или декларативное программирования. Иначе говоря, правила проверки должны ли быть отчуждаемыми от языка разработки. Здесь валидация встроена в код, но поверх можно сделать и декларативный движок. Лицензия MIT
- Scripton [3] коммерческое IDE для Python с необычной фичей визуализации данных в реальном времени. Есть только скриншоты, записи экрана и коммерческая версия для macOS. Для тех кто занимается алгоритмической визуализацией может быть удобно, для остальных задач пока нет такой уверенности.
- New horizons for Julia [4] по сути статья о том что язык программирования Julia ещё жив и развивается. Правда медленно, на мой взгляд, но вроде как есть позитивное движение за пределами научных областей. Лично я почти не сталкивался с Julia кроме как на уровне примеров кода, но хорошо если он кому-то нравится и полезен.
- Data-Driven Scrollytelling with Quarto [5] визуализация дата-историй с помощью движка Quarto, итоги конкурса таких визуализаций с большим числом примеров и победителей. Примеры все от команды компании Posit которая этот open-source движок Quarto и разрабатывает. Скажу отдельно что это очень правильно. Если ты делаешь любой движок по визуализации, то просто обязательно надо проводить такие конкурсы.
- The Best Way to Use Text Embeddings Portably is With Parquet and Polars [6] ещё один обзор о том насколько эффективен Parquet в связке с Polars для работы с данными, в данном случае данными карт Magic of the Gathering. Автор тоже задаётся вопросом о том почему Parquet не поддерживается в MS Excel.
- How to Make Superbabies [7] особенно длинный лонгрид о том как генетическими изменениями можно улучшать человека, создавать супер детей или "оптимизированных детей", как ещё пишет автор. Читать и думать об этом надо потому что всё идёт к тому что скоро это станет ещё одной острой социальной и геополитической темой.

Ссылки:
[1] https://github.com/Goldziher/kreuzberg
[2] https://github.com/akmalsoliev/Validoopsie
[3] https://scripton.dev/
[4] https://lwn.net/Articles/1006117/
[5] https://posit.co/blog/closeread-prize-winners/
[6] https://minimaxir.com/2025/02/embeddings-parquet/
[7] https://www.lesswrong.com/posts/DfrSZaf3JC8vJdbZL/how-to-make-superbabies

#opensource #data #datatools #dataviz #genetics #python
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки про данные, технологии и не только:
- Kreuzberg [1] библиотека для Python по извлечению текста из документов, поддерживает множество форматов, внутри использует Pandoc и Tesseract OCR. Создано как раз для использования в задачах RAG (Retrieval Augmented Generation) с прицелом на локальную обработку данных и минимумом зависимостей. Лицензия MIT
- Validoopsie [2] другая библиотека для Python для валидации данных. Использует библиотеку Narwhals благодаря которой подключается к почти любым видами дата-фреймов. Выглядит полезной альтернативой Great Expectations, лично для меня в валидации данных глобальный нерешённый вопрос в том что тут правильнее, код или декларативное программирования. Иначе говоря, правила проверки должны ли быть отчуждаемыми от языка разработки. Здесь валидация встроена в код, но поверх можно сделать и декларативный движок. Лицензия MIT
- Scripton [3] коммерческое IDE для Python с необычной фичей визуализации данных в реальном времени. Есть только скриншоты, записи экрана и коммерческая версия для macOS. Для тех кто занимается алгоритмической визуализацией может быть удобно, для остальных задач пока нет такой уверенности.
- New horizons for Julia [4] по сути статья о том что язык программирования Julia ещё жив и развивается. Правда медленно, на мой взгляд, но вроде как есть позитивное движение за пределами научных областей. Лично я почти не сталкивался с Julia кроме как на уровне примеров кода, но хорошо если он кому-то нравится и полезен.
- Data-Driven Scrollytelling with Quarto [5] визуализация дата-историй с помощью движка Quarto, итоги конкурса таких визуализаций с большим числом примеров и победителей. Примеры все от команды компании Posit которая этот open-source движок Quarto и разрабатывает. Скажу отдельно что это очень правильно. Если ты делаешь любой движок по визуализации, то просто обязательно надо проводить такие конкурсы.
- The Best Way to Use Text Embeddings Portably is With Parquet and Polars [6] ещё один обзор о том насколько эффективен Parquet в связке с Polars для работы с данными, в данном случае данными карт Magic of the Gathering. Автор тоже задаётся вопросом о том почему Parquet не поддерживается в MS Excel.
- How to Make Superbabies [7] особенно длинный лонгрид о том как генетическими изменениями можно улучшать человека, создавать супер детей или "оптимизированных детей", как ещё пишет автор. Читать и думать об этом надо потому что всё идёт к тому что скоро это станет ещё одной острой социальной и геополитической темой.

Ссылки:
[1] https://github.com/Goldziher/kreuzberg
[2] https://github.com/akmalsoliev/Validoopsie
[3] https://scripton.dev/
[4] https://lwn.net/Articles/1006117/
[5] https://posit.co/blog/closeread-prize-winners/
[6] https://minimaxir.com/2025/02/embeddings-parquet/
[7] https://www.lesswrong.com/posts/DfrSZaf3JC8vJdbZL/how-to-make-superbabies

#opensource #data #datatools #dataviz #genetics #python
Forwarded from Ivan Begtin (Ivan Begtin)
Для тех кто пользуется или планирует пользоваться DuckDB я закинул в рассылку подборку ограничений и особенностей применения из личного опыта.

На удивление их не так много, но знать их важно. Важно помнить что DuckDB это не только и столько инструмент хранения данных, сколько инструмент обработки данных и запросов к условно любым данным.

#duckdb #rdbms #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Для тех кто работает с CSV файлами, неплохой и даже немного смешной текст A love letter to the CSV format [1] где автор рассуждает и расхваливает преимущества CSV формата для данных и аргументы его неплохи, но... лично мне недостатки не перевешивают. На его 9 пунктов я могу пару десятков пунктов написать о недостатках CSV, но плюсы тоже есть, чего уж тут скрывать. И, правильнее сказать что не один автор, а авторы, создатели утилиты xan, the CSV magician [2] для обработки CSV файлов.

Утилита эта является переписанной и переработой утилиты xsv [3] и позволяет вытворять самое разное с CSV файлами, включая визуализации, параллельную обработку, просмотр с командной строки и ещё многое другое.

Хороший инструмент, у него только один недостаток, он работает только с CSV файлами😂

Для тех кто любит командную строку и CSV формат - незаменимая штука.

Ссылки:
[1] https://github.com/medialab/xan/blob/master/docs/LOVE_LETTER.md
[2] https://github.com/medialab/xan
[3] https://github.com/BurntSushi/xsv

#opensource #data #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Обнаружил ещё один инструмент по проверке данных validator [1], умеет делать кросс табличные проверки данных и использует схему из спецификации Frictionless Data [2]. Пока малоизвестный, но кто знает. Он выглядит неплохо по способу реализации, но есть проблема с самой спецификацией и о ней отдельно.

Я неоднократно писал про Frictionless Data, это спецификация и набор инструментов созданных в Open Knowledge Foundation для описания и публикации наборов данных. Спецификация много лет развивалась, вокруг неё появился пул инструментов, например, свежий Open Data Editor [3] помогающий готовить датасеты для публикации на дата платформах на базе ПО CKAN.

С этой спецификацией есть лишь одна, но серьёзная проблема. Она полноценно охватывает только плоские табличные файлы. Так чтобы работать со схемой данных, использовать их SDK, тот же Open Data Editor и тд. Это даёт ей применение для некоторых видов данных с которыми работают аналитики и куда хуже с задачами дата инженерными.

Существенная часть рабочих данных с которыми я сталкивался - это не табличные данные. К примеру, в плоские таблицы плохо ложатся данные о госконтрактах или юридических лицах или объектах музейных коллекций. Там естественнее применения JSON и, соответственно, построчного NDJSON.

Для таких данных куда лучше подходят пакеты валидации данных вроде Cerberus [4]. Я использовал её в случае с реестром дата каталогов [5] в Dateno и пока не видел решений лучше.

Ссылки:
[1] https://github.com/ezwelty/validator/
[2] https://specs.frictionlessdata.io
[3] https://opendataeditor.okfn.org
[4] https://docs.python-cerberus.org/
[5] https://github.com/commondataio/dataportals-registry/

#opensource #data #datatools #dataquality
Forwarded from Ivan Begtin (Ivan Begtin)
В рубрике как это устроено у них о том как управляют публикацией открытых данных во Франции. Частью французского национального портала открытых данных является schema.data.gouv.fr [1] на котором представлено 73 схемы с описанием структурированных данных. Эти схемы охватывают самые разные области и тематики:
- схема данных о государственных закупках
- схема данных о грантах
- схема данных архивных реестров записей
и ещё много других.

Всего по этим схемам на портале data.gouv.fr опубликовано 3246 наборов данных, чуть более 5% от всего что там размещено.

Особенность портала со схемами в том что все они опубликованы как отдельные репозитории на Github созданными из одного шаблона. А сами схемы представлены, либо по стандарту Frictionless Data - тот самый формат про таблицы о котором я писал и он тут называется TableSchema, либо в формате JSONSchema когда данные не табличные. В общем-то звучит как правильное сочетания применения этих подходов.

А для простоты публикации данных по этим схемам у был создан сервис Validata [2] в котором загружаемые данные можно проверить на соответствие этой схеме.

Ссылки:
[1] https://schema.data.gouv.fr
[2] https://validata.fr/

#opendata #datasets #data #datatools #france
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки про данные, технологии и не только:
- Cloudflare R2 data catalog [1] свежий каталог данных на базе Apache Iceberg от Cloudflare поверх их сервиса хранения файлов R2. Хорошая новость, потому что R2 дешевле Amazon S3 при сравнимом качестве сервиса. Жду когда Backblaze запустит аналогичный сервис для их Backblaze B2
- xorq [2] читается как zork, фреймворк для обработки данных с помощью разных движков. Там и DuckDB, и Pandas, и DataFusion и др. Удобство в универсальности, но продукт пока малоизвестный, надо смотреть
- Iceberg?? Give it a REST! [3] автор рассуждает о том что без REST каталога Iceberg малополезен и, в принципе, про развитие этой экосистемы. Многие уже рассматривают стремительный взлёт Iceberg как хайп, что не отменяет того что технология весьма любопытная.
- BI is dead. Change my mind. [4] текст от Engeneering director в Clickhouse о том как меняется (может поменяться) BI в ближайшее время. TLDR: LLM + MCP + LibreChat. Чтение полезное для всех кто занимается внутренней аналитикой и использует Clickhouse
- Roadmap: Data 3.0 in the Lakehouse Era [5] изменения в экосистеме управления данными с точки зрения венчурного капитала. Простым языком для тех кто инвестирует средства в то какие новые технологии в дата инженерии появились и развиваются.

Ссылки:
[1] https://blog.cloudflare.com/r2-data-catalog-public-beta/
[2] https://github.com/xorq-labs/xorq
[3] https://roundup.getdbt.com/p/iceberg-give-it-a-rest
[4] https://www.linkedin.com/pulse/bi-dead-change-my-mind-dmitry-pavlov-2otae/
[5] https://www.bvp.com/atlas/roadmap-data-3-0-in-the-lakehouse-era

#opensource #dataanalytics #datatools #dataengineering
Forwarded from Ivan Begtin (Ivan Begtin)
По поводу каталогов данных на базы Apache Iceberg, я не поленился и развернул один на базе Cloudflare R2 о котором писал ранее и могу сказать что всё прекрасно работает, с некоторыми оговорками конечно:

- каталог в Cloudflare R2 настраивается очень просто, без танцев с бубном, но требует ввода карты даже если не надо платить (на бесплатном тарифе в R2 можно хранить до 10GB и бесплатный исходящий трафик). Фактически там просто одна галочка которую надо включить
- подключение к pyIceberg также крайне простое, и в части загрузки данных, и в части запросов к ним. Для всего есть примеры
- а вот для прямого подключения DuckDB к этому каталогу танцы с бубном явно понадобятся, потому что в документации нет ничего про R2, примеры только с Amazon S3 Tables и Amazon Glue, скорее всего всё вскоре появится, но пока ничего нет.
- не заработало передача параметров фильтрации в функции table.scan, что решается последующим запросом к не фильтрованным записям, но при фильтрации требует очень много памяти;
- какие-либо UI для каталогов Apache Iceberg пока отсутствуют. Вернее есть встроенные инструменты в облачных сервисах и возможность посмотреть на загруженное в open source каталогах типа Nessie и Lakehouse, но всё это встроенные интерфейсы. Явно напрашивается UI для Iceberg browser и доступ к таблицам из веб интерфейса через DuckDB WASM к примеру.
- спецификация предусматривает возможность задания метаданных таблицам и пространствам имён, но у меня это не сработало. Впрочем я бы метаданные по пространствам имён хранил бы отдельно. Как то это логичнее
- хотя UI для каталога нет, но UI для доступа к данным в нём можно обеспечить через UI к DuckDB. Хотя для DuckDB нет пока инструкций для подключения к R2, но есть примеры прямого чтения метаданных по файлу манифеста в JSON
- есть ощущение что для работы с Iceberg и подобными таблицами напрашивается кеширующий клиент. Собственно я не первый и не один кто об этом думает.

В целом выглядит перспективно как долгосрочная технология, но ещё много что требует оптимизации и инструментарий только на стадии становления.

#datatools #data #dataengineering #dataanalytics
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки для работы с данными, технологиями и не только:
- DocsGPT и LocalGPT два похожих продукта для извлечения знаний и чата с локальными документами. Первый под лицензией MIT, второй под Apache 2.0. Поддерживают множество форматов документов, работают с облачными и локальными моделями ИИ. Какой лучше не знаю, надо пробовать оба продукта.
- Markitdown утилита от Microsoft по преобразованию чего угодно в формат markdown. Поддерживает документы MS Office, PDF, HTML, аудио и изображения и многое другое.
- AI Dataset generator генератор синтетических наборов данных с помощью ИИ. Умеет подключаться к разным LLM и интегрировано с инструментом визуализации Metabase. Открытый код, лицензия MIT
- gt-extras расширение для пакета great-tables для Python позволяющее рисовать красивые таблицы в Python в средах научных тетрадок Jupyter или в Quatro из фреймов данных Pandas и Polars. Удобное для всех кто занимается аналитикой на данных
- OpenAIRE changelog хороший пример версионирования и журнала большого открытого дата-продукта.

#opensource #data #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки про данные, технологии и не только:
- DuckDB XML Extension - расширение для DuckDB для парсинга XML/HTML, пока не пробовал и интересно как он сможет съесть XML в пару пару десятков гигабайт, но выглядит полезно
- remote-jobs - репозиторий с огромным числом IT компаний имеющих вакансии для дистанционной работы. Некоторые компании remote-only, без офисов, в некоторых гибридный подход, в любом случае список полезный для тех кто ищет работу дистанционно
- Embedding User-Defined Indexes in Apache Parquet Files - для тех кто хочет поглубже разобраться с тем что такое Parquet, разбор реализации специализированного индекса внутри Parquet файлов.
- Rethinking CLI interfaces for AI у автора рефлексия о переосмыслении подхода к созданию и развитию утилит командной строки в контексте MCP и LLM. Текст довольно короткий, но здравый
- Edit перевыпуск древнего редактора Edit для MS-DOS переписанного на Rust под множество платформ. Для тех кого пробивает на ностальгию, но у меня лично по Edit'у никакой ностальгии не осталось, он мне не нравился ещё тогда;)

#opensource #ai #datatools