Для тех кто задумывается об архивации личных и не самых личных файлов утилита ydiskarc для архивации парок и файлов размещённых на Яндекс.Диск. Я создал её довольно давно и недавно актуализировал до удобного вида. Она использует открытое API Яндекс.Диск для получения метаданных о файлах и выгрузки их локально без использования ПО Яндекса или получения ключа доступа. Можно использовать на собственных папках или на каких-либо общедоступных, не требующих авторизации.
Поддерживает две команды:
- full - делает дамп всего содержимого в виде ZIP файла
- sync - сохраняет файлы с сохранением структуры папок
В процессе работы сохраняет все полученные метаданные в файлах _metadata.json в папках.
Может применяться, например, при архивации российских сайтов где какие-то материалы опубликованы на Яндекс.Диск и не поддаются индексированию классическими инструментами такими как веб-краулеры.
Ошибки, предложения и идеи можно оставлять в issues к репозиторию.
#opensource #tools #digitalpreservation
Поддерживает две команды:
- full - делает дамп всего содержимого в виде ZIP файла
- sync - сохраняет файлы с сохранением структуры папок
В процессе работы сохраняет все полученные метаданные в файлах _metadata.json в папках.
Может применяться, например, при архивации российских сайтов где какие-то материалы опубликованы на Яндекс.Диск и не поддаются индексированию классическими инструментами такими как веб-краулеры.
Ошибки, предложения и идеи можно оставлять в issues к репозиторию.
#opensource #tools #digitalpreservation
👍16✍3❤1⚡1
Когда-то довольно давно размышляя об архивации материалов с сайтов у меня был тезис что архивация зависит от CMS сайта, к разным CMS и соответственно сайтам на их основе должны быть разные подходы, как минимум отличающиеся списки неиндексируемых веб-страниц и как максимум разные стратегии индексирования зависящие от приоритета контента:
Первый приоритет: веб-страницы и документы
Второй приоритет: изображения
Третий приоритет: видео и архивы, иной "тяжелый контент"
В архивационных инструментах вроде wpull это реализовывалось через списки игнорирования по регулярным выражениям. Способ действенный чтобы не собирать мусор, но не идеальный. Вебархивы пытаются воспроизвести веб интерфейс, не всегда отдавая приоритет контенту.
Для проверки гипотезы я подумывал сделать/заказать фрилансерам/организовать конкурс или хакатон с такими инструментами под разные CMS. Продвинулся тогда только с анализом типовых API каталогов данных что потом превратилось в Dateno где идет именно индексация датасетов через API.
Но несколько инструментов я все таки сделал и один из них wparc умеет архивировать содержимое сайтов на Wordpress. Дело в том что у сайтов на базе Wordpress по умолчанию есть REST API через интерфейс /wp-json через который можно получить контент страниц, постов, таксономий, файлов и иных материалов. Интерфейс этот держат открытым не на всех сайтах, но на очень многих.
Многие российские госсайты тоже использовали и используют Wordpress и этот инструмент я использовал во время нескольких архивационных кампаний для сохранения контента и файлов. Кроме того он косвенно является инструментом форенсики потому что часто на сайт загружают файлы которые через API доступны, а на веб-страницах уже нет (ссылки удаляют, файлы остаются), кроме того есть точки подключения API через которые отдают чувствительный контент.
Не буду показывать пальцем на организацию которая через такое API отдает всю инфу о подписчиках их рассылки.
Поэтому инструмент многосторонне полезный, но именно для цифровой архивации как приоритетное использование.
Мысли у меня когда-то были сделать что-то более универсальное и уметь архивировать сайты на Bitrix, Drupal и других популярных CMS'ках, но это было довольно давно и цифровая архивация для меня хобби (работа - это Dateno) и все наработки пошли на сбор данных для Dateno.
Тем не менее wparc весьма полезен а я для разгрузки головы в последнее время беру разный legacy код и привожу его в порядок и wparc также привел добавив туда опции анализа точек подключения к API.
Открытый код доступен, инструмент рабочий, пригодится еще не раз.
#opensource #digitalpreservation
Первый приоритет: веб-страницы и документы
Второй приоритет: изображения
Третий приоритет: видео и архивы, иной "тяжелый контент"
В архивационных инструментах вроде wpull это реализовывалось через списки игнорирования по регулярным выражениям. Способ действенный чтобы не собирать мусор, но не идеальный. Вебархивы пытаются воспроизвести веб интерфейс, не всегда отдавая приоритет контенту.
Для проверки гипотезы я подумывал сделать/заказать фрилансерам/организовать конкурс или хакатон с такими инструментами под разные CMS. Продвинулся тогда только с анализом типовых API каталогов данных что потом превратилось в Dateno где идет именно индексация датасетов через API.
Но несколько инструментов я все таки сделал и один из них wparc умеет архивировать содержимое сайтов на Wordpress. Дело в том что у сайтов на базе Wordpress по умолчанию есть REST API через интерфейс /wp-json через который можно получить контент страниц, постов, таксономий, файлов и иных материалов. Интерфейс этот держат открытым не на всех сайтах, но на очень многих.
Многие российские госсайты тоже использовали и используют Wordpress и этот инструмент я использовал во время нескольких архивационных кампаний для сохранения контента и файлов. Кроме того он косвенно является инструментом форенсики потому что часто на сайт загружают файлы которые через API доступны, а на веб-страницах уже нет (ссылки удаляют, файлы остаются), кроме того есть точки подключения API через которые отдают чувствительный контент.
Не буду показывать пальцем на организацию которая через такое API отдает всю инфу о подписчиках их рассылки.
Поэтому инструмент многосторонне полезный, но именно для цифровой архивации как приоритетное использование.
Мысли у меня когда-то были сделать что-то более универсальное и уметь архивировать сайты на Bitrix, Drupal и других популярных CMS'ках, но это было довольно давно и цифровая архивация для меня хобби (работа - это Dateno) и все наработки пошли на сбор данных для Dateno.
Тем не менее wparc весьма полезен а я для разгрузки головы в последнее время беру разный legacy код и привожу его в порядок и wparc также привел добавив туда опции анализа точек подключения к API.
Открытый код доступен, инструмент рабочий, пригодится еще не раз.
#opensource #digitalpreservation
👍9❤3
Я как то уже рассуждал здесь и вслух о том что ИТ профессии часто формируют устойчивые когнитивные искажения, например, когда все окружающее воспринимается как таблицы или как данные, лично я считаю что в этом нет ничего зазорного и сам иногда впадаю в состояние автоматического построения структур данных в голове и доведение их до 3NF.
Но то что кто-то может назвать когнитивным искажением, можно назвать и способом взгляда на те или иные явления. И вот один из таких способов восприятия реальности - это смотреть на все как на список. Список дел, список строк в файле, список записей в БД и так далее. А если по списку можно проходить и что-то делать с тем что в нем находится то он является перебираемым или на английском языке iterable.
Собственно под восприятия мира данных того что большая часть структур данных, форматов дата файлов и тд - это перебираемые списки я когда-то создал, а недавно обновил библиотеку iterabledata для Python.
Изначально она создавалась для того чтобы реализовать для JSON/JSON lines файлов логику перебора содержимого по принципу csv.DictReader, стандартной библиотеки в Python в которой перебираемые объекты возвращаются как словари. Заодно добавив к этому что чаще всего эти файлы с данными сжаты чем-то Gzip, LZMA, Zstandard и тд.
А в этот раз я обновил эту библиотеку для большей универсальности и поддержки десятков новых форматов данных DBF, JSON-LD, KML, GML, CSVW, Annotated CSV, MessagePack и еще много, полный список.
Включая некоторые экзотические форматы такие как WARC для веб-архивации, которые тоже можно рассматривать как объекты со списками для перебора.
А в качестве наглядного примера, преобразование дампа Википедии из сжатого XML в Parquet.
Особенность Iterable Data именно в универсальности инструмента, но не в скорости обработки данных. Для супербыстрой обработки, например, CSV файлов есть и другие инструменты, но CSV лишь один из десятков встречающихся форматов данных.
Так что инструмент полезный и обновлялся мной сейчас в контенте задач в Dateno, в открытые репозитории которого я и перенес его из личных пэт проектов.
#opensource #dateno #datatools #dataengineering
Но то что кто-то может назвать когнитивным искажением, можно назвать и способом взгляда на те или иные явления. И вот один из таких способов восприятия реальности - это смотреть на все как на список. Список дел, список строк в файле, список записей в БД и так далее. А если по списку можно проходить и что-то делать с тем что в нем находится то он является перебираемым или на английском языке iterable.
Собственно под восприятия мира данных того что большая часть структур данных, форматов дата файлов и тд - это перебираемые списки я когда-то создал, а недавно обновил библиотеку iterabledata для Python.
Изначально она создавалась для того чтобы реализовать для JSON/JSON lines файлов логику перебора содержимого по принципу csv.DictReader, стандартной библиотеки в Python в которой перебираемые объекты возвращаются как словари. Заодно добавив к этому что чаще всего эти файлы с данными сжаты чем-то Gzip, LZMA, Zstandard и тд.
А в этот раз я обновил эту библиотеку для большей универсальности и поддержки десятков новых форматов данных DBF, JSON-LD, KML, GML, CSVW, Annotated CSV, MessagePack и еще много, полный список.
Включая некоторые экзотические форматы такие как WARC для веб-архивации, которые тоже можно рассматривать как объекты со списками для перебора.
А в качестве наглядного примера, преобразование дампа Википедии из сжатого XML в Parquet.
Особенность Iterable Data именно в универсальности инструмента, но не в скорости обработки данных. Для супербыстрой обработки, например, CSV файлов есть и другие инструменты, но CSV лишь один из десятков встречающихся форматов данных.
Так что инструмент полезный и обновлялся мной сейчас в контенте задач в Dateno, в открытые репозитории которого я и перенес его из личных пэт проектов.
#opensource #dateno #datatools #dataengineering
👍10✍4❤🔥1❤1👌1🗿1
Полезное чтение про данные, технологии и не только
AI
- Introduction to AI Agents хорошо написанный четко изложенный документ от Google. Полезно для быстрого погружения в тему
- State of Agent Engineering обзор от LangChain состояния разработки ИИ агентов через опрос 1300 специалистов
- 2025 LLM Year in Review обзор 2025 года с точки зрения LLM, с погружением в технологии, от Андрея Карпатого
- AI Scraping and the Open Web о том что владельцы контента перешли к юридической защите от ИИ скрейперов после того как технические меры перестали работать
Облачная инфраструктура
- Let’s talk about GitHub Actions в блоге Github о том как они переделали Github Actions. Важное для всех что Github Actions использует. Важное тем что для многие GA стали заменой собственных ETL/ELT инструментов и многие конвееры работы с данными и другими действиями живут на Github.
Инструменты
- headson инструмент для выполнения команд типа head/tail для JSON и YAML файлов. Бывает полезно, но как-то узковато, больший универсализм был бы полезнее
- AGENTS.md спецификация для управления кодирующими ИИ агентами через специальный Markdown файл
- chandra модель для OCR с обещанием поддержки сложных структур и таблиц. Надо пробовать, правда ли так работает.
- Mistral OCR 3 свежая ИИ модель от Mistral для OCR, тоже обещают работу со сложными таблицами
Разное
- On the Immortality of Microsoft Word о бессмертии MS Word и почему Markdown не может заменить его, например, в работе юристов с документами
#opensource #ai #readings
AI
- Introduction to AI Agents хорошо написанный четко изложенный документ от Google. Полезно для быстрого погружения в тему
- State of Agent Engineering обзор от LangChain состояния разработки ИИ агентов через опрос 1300 специалистов
- 2025 LLM Year in Review обзор 2025 года с точки зрения LLM, с погружением в технологии, от Андрея Карпатого
- AI Scraping and the Open Web о том что владельцы контента перешли к юридической защите от ИИ скрейперов после того как технические меры перестали работать
Облачная инфраструктура
- Let’s talk about GitHub Actions в блоге Github о том как они переделали Github Actions. Важное для всех что Github Actions использует. Важное тем что для многие GA стали заменой собственных ETL/ELT инструментов и многие конвееры работы с данными и другими действиями живут на Github.
Инструменты
- headson инструмент для выполнения команд типа head/tail для JSON и YAML файлов. Бывает полезно, но как-то узковато, больший универсализм был бы полезнее
- AGENTS.md спецификация для управления кодирующими ИИ агентами через специальный Markdown файл
- chandra модель для OCR с обещанием поддержки сложных структур и таблиц. Надо пробовать, правда ли так работает.
- Mistral OCR 3 свежая ИИ модель от Mistral для OCR, тоже обещают работу со сложными таблицами
Разное
- On the Immortality of Microsoft Word о бессмертии MS Word и почему Markdown не может заменить его, например, в работе юристов с документами
#opensource #ai #readings
Langchain
State of AI Agents
LangChain provides the engineering platform and open source frameworks developers use to build, test, and deploy reliable AI agents.
👍9🔥4❤1
Суверенное импортозамещение по французски La Suite numerique (Цифровой комплект) в виде набора приложений с открытым кодом включающий:
- Tchap - мессенжер
- France Transfer - сервис передачи больших файлов
- Docs - совместная работа над документами
- Grist - управление проектами
- Visio - видеоконференции
- Messagerie - электронная почта
- Fichiers - управление общими файлами.
Все это в варианте, либо локального развертывания, либо на федеральном портале ProConnect
Комплект разрабатывается для госорганов и госучреждений Франции, но предоставляется всем желающим.
#opensource #france #government
- Tchap - мессенжер
- France Transfer - сервис передачи больших файлов
- Docs - совместная работа над документами
- Grist - управление проектами
- Visio - видеоконференции
- Messagerie - электронная почта
- Fichiers - управление общими файлами.
Все это в варианте, либо локального развертывания, либо на федеральном портале ProConnect
Комплект разрабатывается для госорганов и госучреждений Франции, но предоставляется всем желающим.
#opensource #france #government
🔥7👍6✍4
В рубрике интересных продуктов с открытым кодом MapLibre набор библиотек и спецификаций для создания настраиваемых онлайн карт с активным использованием GPU для оптимизации обработки и отображения изображений.
Делается довольно большой командой и большим числом контрибьюторов, это один из эффективных открытых проектов по сбору денег со спонсоров -по итогам 1-го квартала 2025 года их баланс составлял $653 тысячи, что для не самого крупного проекта довольно неплохо.
В частности в ноябре они выпустили первую версию сервера Martin для создания векторных плиток на лету из баз PostGIS и многое другое. Жаль они у них в планах нет выпуска каталога геоданных потому что Geonetwork и Geonode развиваются медленно.
#opensource #geodata #geospatial
Делается довольно большой командой и большим числом контрибьюторов, это один из эффективных открытых проектов по сбору денег со спонсоров -по итогам 1-го квартала 2025 года их баланс составлял $653 тысячи, что для не самого крупного проекта довольно неплохо.
В частности в ноябре они выпустили первую версию сервера Martin для создания векторных плиток на лету из баз PostGIS и многое другое. Жаль они у них в планах нет выпуска каталога геоданных потому что Geonetwork и Geonode развиваются медленно.
#opensource #geodata #geospatial
👍7
Mattermost изначально продукт с открытым кодом активно использовавшийся по всему миру как альтернатива Slack которую можно было бы установить локально для своей команды перешли в режим open core и начиная с 11 версии ввели ограничение в максимум 10 000 сообщений, а все что до определенной даты уходят в архив без воможности просмотра. Пользователи у которых это произошло после обновления справедливо негодуют.
Лично я бы сказал что после такого шага пользоваться Mattermost'ом уже нельзя, потому что монетизация - это нормально, а вот монетизация через подобное принуждение и острый дискомфорт пользователей это очень плохой трек.
Как и всегда проблема в дефиците качественных альтернатив.
#opensource #opencore
Лично я бы сказал что после такого шага пользоваться Mattermost'ом уже нельзя, потому что монетизация - это нормально, а вот монетизация через подобное принуждение и острый дискомфорт пользователей это очень плохой трек.
Как и всегда проблема в дефиците качественных альтернатив.
#opensource #opencore
💯5✍4😢4😱3🌚1
По итогам могу сказать что если Google сменит ценовую политику для корпоративного применения Antigravity (сейчас она 183.6 евро за месяц) или если его конкуренты прокачают свои решения для ещё большей эффективности, то работу над кодом это ускорят не а 2-3 раза, а в 10-30 раз.
Разработка любого внутреннего инструмента или конечного приложения теперь должна быть устроена иначе. На начальной стадии обязательно нужно писать текст видения результата который должен включать:
1. Описание того что создается
2. Описание результатов включая критерии качества:
- измеряемые индикаторы качества (в данном случае FAR/FRR)
- сравнение результатов с существующими аналогами если они есть
3. Гипотезы
4. Правила управления зависимостями
5. Правила организации кода, репозитория и автоматического покрытия тестами и документирования
Частично это вписывается в логику руководства ИИ агента в AGENTS.md или GEMINI.md, но лишь частично, скорее всего всё это необходимо оформлять во внутренние руководства по организации разработки с использованием ИИ агентов.
#opensource #ai #aiagents #coding #thoughts #devnotes
Разработка любого внутреннего инструмента или конечного приложения теперь должна быть устроена иначе. На начальной стадии обязательно нужно писать текст видения результата который должен включать:
1. Описание того что создается
2. Описание результатов включая критерии качества:
- измеряемые индикаторы качества (в данном случае FAR/FRR)
- сравнение результатов с существующими аналогами если они есть
3. Гипотезы
4. Правила управления зависимостями
5. Правила организации кода, репозитория и автоматического покрытия тестами и документирования
Частично это вписывается в логику руководства ИИ агента в AGENTS.md или GEMINI.md, но лишь частично, скорее всего всё это необходимо оформлять во внутренние руководства по организации разработки с использованием ИИ агентов.
#opensource #ai #aiagents #coding #thoughts #devnotes
👍11🔥6❤🔥2✍2
Полезные ссылки про данные, технологии и не только:
- NERD Language свежий язык программирования заточенный под LLM. Сделан читаемым для людей, но с предположением что пишут на нём ИИ агенты. Идея не кажется странной, но адаптация одного или нескольких существующих языков программирования кажется мне более логичной
- 2025 letter интересные рассуждения автора о сходстве Кремниевой долины и Коммунистической партии Китая в виде отсутствия юмора и исполненности самомнения. Текст реально длинный лонгрид, интересный и тем что автор рассуждений является автором книги Breakneck: China's Quest to Engineer the Future о изменениях в Китае и его инженерной культуре
- UK accounting body to halt remote exams amid AI cheating в Великобритании регулятор экзаменов для бухгалтеров запретил онлайн экзамены кроме как в редких исключительных случаях. Причина очевидна - обман с помощью ИИ агентов. Хотите бесплатную идею для edutech ближайшего будущего? Сеть экзаменационных центров с подавлением сотовых, абсолютно тотальным видеомониторингом с автоматизированным определением использования шпаргалок и устройств, обязательные обыски на входе,охранниками с дубинками и прочими "ноу-хау"
- on the software job climate автор сжато повторяет то о чем многие пишут, денег в ИТ (особенно венчурных) стало глобально меньше, бюджетов на найм в ИТ тоже меньше, а рабочей силы больше. Выводы делайте сами (уже и так все сделали)
- 2025: The year in LLMs автор делает обзор года программирования с помощью разных LLM. Много полезного. Автор - это Саймон Уиллисон, создатель довольно популярного инструмента Datasette для публикации данных онлайн, хорошо известный в кругах открытого кода и открытых данных
#readings #ai #opensource
- NERD Language свежий язык программирования заточенный под LLM. Сделан читаемым для людей, но с предположением что пишут на нём ИИ агенты. Идея не кажется странной, но адаптация одного или нескольких существующих языков программирования кажется мне более логичной
- 2025 letter интересные рассуждения автора о сходстве Кремниевой долины и Коммунистической партии Китая в виде отсутствия юмора и исполненности самомнения. Текст реально длинный лонгрид, интересный и тем что автор рассуждений является автором книги Breakneck: China's Quest to Engineer the Future о изменениях в Китае и его инженерной культуре
- UK accounting body to halt remote exams amid AI cheating в Великобритании регулятор экзаменов для бухгалтеров запретил онлайн экзамены кроме как в редких исключительных случаях. Причина очевидна - обман с помощью ИИ агентов. Хотите бесплатную идею для edutech ближайшего будущего? Сеть экзаменационных центров с подавлением сотовых, абсолютно тотальным видеомониторингом с автоматизированным определением использования шпаргалок и устройств, обязательные обыски на входе,
- on the software job climate автор сжато повторяет то о чем многие пишут, денег в ИТ (особенно венчурных) стало глобально меньше, бюджетов на найм в ИТ тоже меньше, а рабочей силы больше. Выводы делайте сами (уже и так все сделали)
- 2025: The year in LLMs автор делает обзор года программирования с помощью разных LLM. Много полезного. Автор - это Саймон Уиллисон, создатель довольно популярного инструмента Datasette для публикации данных онлайн, хорошо известный в кругах открытого кода и открытых данных
#readings #ai #opensource
www.nerd-lang.org
Story - NERD
Why NERD exists.
❤6✍2❤🔥1👌1
Я ещё помню времена когда искусством в софтверной разработке было создание приложений работающих быстро и занимающих мало физической и оперативной памяти и писать небольшие приложения было прямо таки непросто, были десятки самых разных архиваторов для запускаемых файлов, а многие функции специально переписывались на ассемблере чтобы не зависеть от стандартных библиотек.
Тем более забавно наблюдать как некоторые разработчики пишут с помощью LLM'ок приложения в той же идеологии. Например, браузер для Википедии в 100kb для Linux использующий только вызовы syscalls. Его разработчик пишет что почти весь код написал с помощью GPT-5.2.
Казалось бы почему бы некоторым разработчикам особо распухших приложений не применить LLM для их оптимизации, но будем честными некоторые приложения проще написать с нуля чем переделать и даже с помощью LLM создание приложений с минимальным футпринтом остается нетривиальной задачей.
#curiosities #dev #opensource
Тем более забавно наблюдать как некоторые разработчики пишут с помощью LLM'ок приложения в той же идеологии. Например, браузер для Википедии в 100kb для Linux использующий только вызовы syscalls. Его разработчик пишет что почти весь код написал с помощью GPT-5.2.
Казалось бы почему бы некоторым разработчикам особо распухших приложений не применить LLM для их оптимизации, но будем честными некоторые приложения проще написать с нуля чем переделать и даже с помощью LLM создание приложений с минимальным футпринтом остается нетривиальной задачей.
#curiosities #dev #opensource
👍17🔥4🤔4
Я неоднократно писал про такой продукт с открытым кодом OpenRefine, он малоизвестен в дата инженерной и корпоративно аналитической среде, но хорошо известен многим журналистам расследователям, аналитикам работающим над публикацией данных, всем кто работает в среде с интеграциями в Википедией и Викидатой и многим цифровым библиотекарям, архивистам и тд.
OpenRefine изначально вырос из проекта Google Refine который, в свою очередь, разрабатывался внутри проекта FreeBase который после поглощения Google превратился в Google Knowledge Graph.
OpenRefine позволяет вручную и полувручную, с использованием языка GREL (General Refine Expression Language) или кода на Jython через веб интерфейс чистить табличные наборы данных и сохранять их в CSV и я ряде других форматов. Никакого SQL, сложного кода, зато бесконечный цикл Undo/Redo.
Можно сказать что OpenRefine - это инструмент подготовки данных выросший из экосистемы управления знаниями. Явление он довольно редкое, и сам продукт довольно интересный, но не без ограничений.
Потому что внутри него не СУБД, а граф объектов на Java что резко ограничивало и ограничивает объемы редактируемых датасетов до 100 тысяч записей максимум. Но всё это с удобным UI и возможностью работать чистить данные без глубокого технического погружения в протоколы, SQL запросы и разработку кода.
Какое-то время назад я думал о том не создать ли более эффективную альтернативу OpenRefine. Даже экспериментировал с созданием обвязки с помощью MongoDB mongorefine что было очень прикольным опыт и тренировкой для мозгов, но совершенно точно непригодно для реальной работы потому что MongoDB даёт большую гибкость и очень низкую скорость обработки данных. Это был эксперимент, отложенный для дальнейших размышлений.
Сейчас посмотрев на OpenRefine и его развитие свежим взглядом я могу сказать следующее:
1. Да, с помощью LLM можно очень быстро сделать его аналог, с изначально более-правильной архитектурой на базе Polars + DuckLake или Iceberg, с разделением бэкэнда и фронтэнда/фронтэндов и превратить его в инструмент обогащения данных с помощью LLM и не только.
2. При этом у него очень понятная аудитория, инструмент мог бы быть коммерческим или некоммерческим, важнее что он точно будет востребован
В общем это стало выполнимой задачей, даже для очень небольшой команды в очень обозримые сроки. Но вот я пока довольно активно занят задачами в рамках Dateno что лично для меня даже более интересная задача и несравнимо больший вызов.
Поэтому широко делюсь идеей про создание инструмента очистки и обогащение данных с интерфейсом а ля OpenRefine, но с возможностью очищать и обогащать датасеты в миллионы записей и гигабайтного размера.
#opendata #opensource #ideas #dataquality #dataenrichment
OpenRefine изначально вырос из проекта Google Refine который, в свою очередь, разрабатывался внутри проекта FreeBase который после поглощения Google превратился в Google Knowledge Graph.
OpenRefine позволяет вручную и полувручную, с использованием языка GREL (General Refine Expression Language) или кода на Jython через веб интерфейс чистить табличные наборы данных и сохранять их в CSV и я ряде других форматов. Никакого SQL, сложного кода, зато бесконечный цикл Undo/Redo.
Можно сказать что OpenRefine - это инструмент подготовки данных выросший из экосистемы управления знаниями. Явление он довольно редкое, и сам продукт довольно интересный, но не без ограничений.
Потому что внутри него не СУБД, а граф объектов на Java что резко ограничивало и ограничивает объемы редактируемых датасетов до 100 тысяч записей максимум. Но всё это с удобным UI и возможностью работать чистить данные без глубокого технического погружения в протоколы, SQL запросы и разработку кода.
Какое-то время назад я думал о том не создать ли более эффективную альтернативу OpenRefine. Даже экспериментировал с созданием обвязки с помощью MongoDB mongorefine что было очень прикольным опыт и тренировкой для мозгов, но совершенно точно непригодно для реальной работы потому что MongoDB даёт большую гибкость и очень низкую скорость обработки данных. Это был эксперимент, отложенный для дальнейших размышлений.
Сейчас посмотрев на OpenRefine и его развитие свежим взглядом я могу сказать следующее:
1. Да, с помощью LLM можно очень быстро сделать его аналог, с изначально более-правильной архитектурой на базе Polars + DuckLake или Iceberg, с разделением бэкэнда и фронтэнда/фронтэндов и превратить его в инструмент обогащения данных с помощью LLM и не только.
2. При этом у него очень понятная аудитория, инструмент мог бы быть коммерческим или некоммерческим, важнее что он точно будет востребован
В общем это стало выполнимой задачей, даже для очень небольшой команды в очень обозримые сроки. Но вот я пока довольно активно занят задачами в рамках Dateno что лично для меня даже более интересная задача и несравнимо больший вызов.
Поэтому широко делюсь идеей про создание инструмента очистки и обогащение данных с интерфейсом а ля OpenRefine, но с возможностью очищать и обогащать датасеты в миллионы записей и гигабайтного размера.
#opendata #opensource #ideas #dataquality #dataenrichment
openrefine.org
General Refine Expression Language | OpenRefine
Basics
👍15❤3✍1🙏1🤝1
Разные мысли вслух:
1. Термин "большие данные" в 2026 году выглядит анахронизмом, а экономика больших данных особенно. Когда слышу его от кого-либо то вот прямо таки ощущаю что человек находится вне контекста и, либо не понимает предметной области (увы), либо довольно долго был от нее оторван. Условно нет никакой "экономики больших данных", есть экономика данных, но и она, условно, слепляется с ИИ стартапами и ИИ экономикой. В этом есть странное смешение хайпа, реальности и страха потому что это гораздо большие изменения цифровых экосистем чем что-то ещё.
2. Евросоюз запустил публичное обсуждение стратегии импортозамещения и снижения зависимости от США стратегии открытой цифровой экосистемы которая должна помочь цифровому суверенитету ЕС и которая формируется из открытости кода, открытости данных и так далее. Мне такой подход нравится больше чем российское импортозамещение, но реалистичность реального цифрового суверенитета для ЕС, по моему, невелика. Однако если ВЫ резидент ЕС и работаете с открытым кодом и данными, то почему бы не поддержать такое хорошее дело?
#opendata #bigdata #thoughts #opensource #eu
1. Термин "большие данные" в 2026 году выглядит анахронизмом, а экономика больших данных особенно. Когда слышу его от кого-либо то вот прямо таки ощущаю что человек находится вне контекста и, либо не понимает предметной области (увы), либо довольно долго был от нее оторван. Условно нет никакой "экономики больших данных", есть экономика данных, но и она, условно, слепляется с ИИ стартапами и ИИ экономикой. В этом есть странное смешение хайпа, реальности и страха потому что это гораздо большие изменения цифровых экосистем чем что-то ещё.
2. Евросоюз запустил публичное обсуждение с
#opendata #bigdata #thoughts #opensource #eu
European Commission - Have your say
❤7👍5👏2
В качестве регулярных напоминаний, большое количество открытого кода который я лично создавал и поддерживаю:
- iterabledata библиотека для Python по работе с любыми файлами с записями с помощью прямого их перебора и возвращением каждой записи как словаря (dict). Фактически реализация интерфейсов csv.DictReader и csv.DictWriter для десятков форматов файлов таких как JSON, JSON lines, XML, Parquet, ORC и множества более специфических и отраслевых таких как PCAP, WARC и др.
- internacia-db референсная база данных с базовыми данными по странам и по страновым блокам. Распространяется в форматах JSONL, Parquet, DuckDB, YAML. Полезно для задач обогащения данных, поиска и фильтрации результатов в территориальной привязке, сравнении стран и территориальных блоков.
- undatum это инструмент командной строки для работы с файлами со сложной иерархией так как работают с CSV файлами. Он умеет считать статистику, преобразовывать файлы, анализировать их, разрезать на части и тд. Внутри используется библиотека iterabledata и большое число форматов файлов поддерживаются
- metacrafter библиотека для Python и инструмент командной строки для работы с семантическими типами данных, используется для выявления персональных идентификаторов и иных объектов (кодов организаций, кадастровых и почтовых кодов и так далее)
А также много другого открытого кода о котором я регулярно тут пишу.
#opensource #data #dataengineering #datatools
- iterabledata библиотека для Python по работе с любыми файлами с записями с помощью прямого их перебора и возвращением каждой записи как словаря (dict). Фактически реализация интерфейсов csv.DictReader и csv.DictWriter для десятков форматов файлов таких как JSON, JSON lines, XML, Parquet, ORC и множества более специфических и отраслевых таких как PCAP, WARC и др.
- internacia-db референсная база данных с базовыми данными по странам и по страновым блокам. Распространяется в форматах JSONL, Parquet, DuckDB, YAML. Полезно для задач обогащения данных, поиска и фильтрации результатов в территориальной привязке, сравнении стран и территориальных блоков.
- undatum это инструмент командной строки для работы с файлами со сложной иерархией так как работают с CSV файлами. Он умеет считать статистику, преобразовывать файлы, анализировать их, разрезать на части и тд. Внутри используется библиотека iterabledata и большое число форматов файлов поддерживаются
- metacrafter библиотека для Python и инструмент командной строки для работы с семантическими типами данных, используется для выявления персональных идентификаторов и иных объектов (кодов организаций, кадастровых и почтовых кодов и так далее)
А также много другого открытого кода о котором я регулярно тут пишу.
#opensource #data #dataengineering #datatools
GitHub
GitHub - datenoio/iterabledata: Python library to read, write and convert data files with formats BSON, JSON, NDJSON, Parquet,…
Python library to read, write and convert data files with formats BSON, JSON, NDJSON, Parquet, ORC, XLS, XLSX, XML and many others - datenoio/iterabledata
👍13