Ivan Begtin
9.11K subscribers
2.47K photos
4 videos
113 files
5.21K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and etc.

CTO&Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Email ivan@begtin.tech

Ads/promotion agent: @k0shk
Download Telegram
Часто встречающаяся задача когда необходимо быстро создать API над какими-то данными и предоставить его внутренним и/или внешним пользователям. API, как правило, нужно для одной или нескольких из перечисленных причин:
1. Данные обновляются слишком часто чтобы делать дампы или предоставлять к ним прямой доступ
2. Необходимо предоставить данные недоверенным пользователям и поэтому прямой доступ к данным невозможен
3. Данные предоставляются на каких либо условиях предусматривающих ограничения, например, за деньги и ограничением числа записей за раз
4. API необходимо для интеграции с каким-либо существующим ПО которое умеет в API, но плохо или совсем не умеет работать с дампами и выгрузками данных
5. Нужна возможность ссылаться постоянными ссылками на конкретные записи в машиночитаемом виде.
6. API нужно, например, для быстрого написания фронтэнда или иного интерфейса которое бы через это API работало

Ситуации когда нужно сделать API достаточно частые и я лично за эти годы перебрал немало инструментов с помощью которых это можно делать и написал несколько своих.

Эти инструменты можно поделить на условно 3 типа:
- преобразующие данные в API
- создающие API поверх SQL и других баз данных
- позволяющие загрузить данные и сразу получить API на выходе

Для превращения данных несколько инструментов существовало относительно давно, например, csv-to-api и csv2api, они работали с CSV файлами и в общем-то довольно просты

Для баз данных есть инструменты вроде:
- gosql относительно свежий, работает поверх условно любой SQL базы данных
- Express REST API Generator - для MongoDB, давно не обновлялся
- RestHEART аналогично для MongoDB, но вроде как живой
- DataBeam код 12-летней давности от GSA (орган пр-ва США) с поддержкой преимущественно тяжелых корпоративных баз данных

И, наконец, есть какое-то число low-code инструментов вроде Retool, Baserow, Directus и тд. которые позволяют загружать туда таблицы и генерируют интерфейс для их редактирования и API заодно.

В своё время я сделал два похожих инструмента. Первый, самый простой, apiready грузил данные в MongoDB (в основном это были csv или tsv) файлы, анализировал их и создавал API поверх них. Я этот инструмент довольно быстро забросил и писал его оочень давно.

Более продвинутый инструмент был apicrafter вместо загрузки данных, он строился поверх базы MongoDB и создавл интерфейсы с помощью Python Eve довольно удобного инструмента, но статического. А apicrafter анализировал данные и собирал схему для работы Python Eve.

Когда-то я думал сделать этот инструмент поумнее и автоматически генерировать не только точки к API, но и документацию, примеры и тд., но со временем я начал убеждаться что MongoDB - это, конечно, неплохая штука, но с несколькими системными изъянами главные из которых низкая производительность и серьёзная неэффективность в хранении данных. В общем-то DuckDB или Polars или другие датафреймовые инструменты дают качественно лучший опыт в работе с данными, но переписывать под них не так то просто и главное нужно применение.

Тем не менее если решать не общую задачу, а конкретную по организации доступа к данным со всеми ограничениями, то может оказаться что схема данных + FastAPI + ИИ агент помогут собрать REST API гораздо быстрее. А могут и не собрать😂

В любом случае полезно знать про альтернативы и инструменты.

#api #opensource #datatools
81❤‍🔥1
Я на выходных столкнулся с очередной ситуацией когда пришлось чистить свободное место на дисках, но при этом не хотелось архивировать некоторые файлы для холодного хранения, они нужны были под рукой. И я вспомнил про утилиту filesrepack которую я когда-то давно писал для пересжатия существующих файлов и архивов, это когда архивы и их содержание сжимаются более сильными алгоритмами сжатия чем это было сделано изначально и когда внутри них файлы тоже пересжимаются, обычно без потери качества, или с минимальной потерей в качестве изображений, там где это некритично.

Сама утилита эта работа как обертка вокруг множества приложений в операционной системе: pngquant, jpegoptim, 7z, zip и тд, но вот одна беда что она устарела и её надо было переписать.

Так что я её использовал как второй полигон для проверки кодирования с помощью ИИ (первый был с библиотекой iterabledata).

Итого:
- утилита filesrepack полностью переписана и теперь умеет две команды: repack - сжимать одиночные файлы, bulk - сжимать файлы внутри папки, рекурсивно
- добавлена поддержка множества новых форматов файлов: tiff, parquet, avi, avf, svg, gif, rtb, pages, numbers, key и других
- 90% кода написано с помощью ИИ агента Cursor'а (2-я версия Cursor, режим автовыбора моделей)
- существенные ошибки были лишь пару раз, достаточно легко они исправлялись
- у ИИ агента очень неплохое понимание контекста и того для чего сделано приложение и очень хорошие ответы на вопросы вроде "проанализируй приложение и предложи какие опции были бы полезны для его пользователей" или "предложи форматы файлов которые можно было бы оптимизировать и которые пока не поддерживаются"
- наибольшая польза, по прежнему, в автоматическом написании документации что очень удобно для всякого рода утилит и программных библиотек где не надо скриншотов и сложных сценариев.
- для такого простого практического применения ИИ агенты, действительно, прекрасно подходят и ускоряют работы многократно, а также помогают закрыть дыры в документировании, тестировании и тд.
- по ощущениям можно уже применять ИИ агенты и для промышленного применения в сложных системах, но, конечно, с существенно большей осторожностью и дополнительными мерами по верификации кода
- все в совокупности, конечно, огромный прогресс за последний год. Ранее когда я пытался применять ИИ агенты, было ощущение что галлюцинаций существенно больше чем результата.
- в любом случае джуниорам я категорически не рекомендую начинать изучение программирования через ИИ ассистенты. Что бы понимать насколько созданный код хорош и адекватен нужно уметь создавать его самостоятельно иначе можно наделать серьёзных ошибок

Далее я уже расскажу про практическое применение ИИ для работы с кодом и создания индекса в Dateno, но этим кодом поделиться уже можно только в отдельных отчуждаемых компонентах.

#opensource #tools #ai #coding #thoughts
👍104🏆2
В контексте премии по открытому доступу в гуманитарных науках (humawards.ru) о том как предоставлять материалы в открытом доступе.

1. В основе открытости данных исследователей лежат принципы FAIR (Findability, Accessibility, Interoperability, Reuse). Описание на русском языке есть в русскоязычной википедии и многих онлайн ресурсах, их легко найти по ключевым словам "принципы FAIR".
2. Ключевое в этих принципах в публикации данных результатов исследований таким образом чтобы их могли использовать другие и в использовании данных другими опубликованные. Использование включает юридические права (свободные лицензии), техническую возможность (удобные форматы и документация) и находимость (возможность найти эти данные).
3. Для публикации данных исследователи в мире чаще всего используют такие порталы как Zenodo, Figshare, Dataverse, институциональные репозитории и специализированные репозитории данных по своим дисциплинам.
4. Альтернативно часто данные публикуются на открытых платформах для публикации исходного кода таких как Github и Gitlab или же через развертывание собственных порталов для данных, к примеру Инфокультура поддерживает портал hubofdata.ru в России.
5. Кроме публикации данных к открытому доступу можно отнести и публикацию открытого кода, как правило, также публикуемого на платформах вроде Github или Gitlab, реже на других сайтах.
6. Конечно, кроме этого существует многие материалы по открытому доступу которые не являются данными или кодом, это могут быть курсы, лекции, просветительские материалы, для которых, впрочем, хорошей практикой является их публикация под свободными лицензиями такими как CC0, CC-BY и им подобные.

В итоге на премию по Открытому доступу (humawards.ru) можно, как существующий проект/результат работы, так и открыть ранее созданный. Опубликовать исходный код, открытые данные, выложить материалы под свободными лицензиями и так далее.

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

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

#opendata #openaccess #contest #humanitarian #opensource
5👍54🏆31
В рубрике интересных инструментов работы с данными, datanomy утилита для командной строки для просмотра метаданных и данных внутри Parquet файлов. Простая штука, работает на базе фреймворка Textual для создания утилит командной строки и позволяет смотреть разную информацию включая схему, метаданные, данные и статистику по выбранному parquet файлу.

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

#opensource #datatools #parquet
👍7
AgenticSeek альтернатива Manus умеющая выполнять разные, в том числе довольно сложные задачи требующие запуска приложений и браузера иных агентских операций. Важное отличие - открытый код и локальный (приватный) запуск.

#opensource #ai #privacy #llm #tools #datatools
10🔥1
После экспериментов с простым кодом, я постепенно добрался до тех инструментов которые используются внутри Dateno для сбора данных. Один из них это утилита apibackuper которая помогает вытащить данные публикуемые через API и сохранять их в виде датасета. Фактически это инструмент скрейпинга API через декларативное описание параметров скрейпинга (да, я люблю декларативные описания). У инструмента был ряд недостатков которые я исправлял и думаю что исправил, вот перечень изменений:
- переход от декларативного описания скрейперов с INI (.cfg) файлов на YAML, читать легче, синтаксис приятнее
- валидация YAML описаний через JSON схему
- поддержка ограченичений и таймаутов на число запросов в минуту (Rate Limiting)
- поддержка аутентификации к API
- экспорт данных не только в JSONL, но и в Parquet
- автоопределение формата экспорта данных по расширению файла
- массовое обработка исключений и понятные сообщения об ошибках везде где возможно
- тесты для покрытия большей части кода
- подробная документация
- и всякое по мелочи

Я этот инструмент изначально разрабатывал для для архивации данных публикуемых через API, но сейчас он используется в части кода Dateno для выгрузки метаданных из каталогов данных. Может его даже пора уже перенести из ruarxive в dateno на Github'е, ещё не решил.

На скриншоте то как это выглядит на примере реестра лекарственных средств ЕСКЛП

Для сбора данных достаточно выполнить две команды
- apibackuper run
- apibackuper export current.parquet


Первая выгрузит все данные постранично, вторая сохранит выгруженные данные в parquet файл.

#opensource #datatools #data #dataengineering
42
Короткий текст The fate of “small” open source где автор рассказывает о будущей печальной судьбе программных библиотек на примере свой библиотеки blob-util и того что ИИ агенты не предлагают использовать её, а автоматически генерируют код.

Это, кстати, довольно таки важная тема что по мере прогресс ИИ инструменты чаще всего игнорируют не самые популярные библиотеки для ПО и каждый раз плодят бесконечное число кода. Можно, конечно, в запросе к ИИ агенту поставить задачу на использование конкретной библиотеки, но это не то что является поведением по умолчанию.

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

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

Похоже на реалистичный сценарий?

#opensource #ai #llm
🤔7😢32🌚2
Forwarded from Dateno
🚀 Major Update of the Dateno Data Catalog Registry

The Dateno Registry — an open-source & open-data catalog of (almost) *all* data portals worldwide — just got a huge upgrade.
It powers the Dateno search engine, which now indexes 22M+ datasets.

🔍 Key Additions

1,993 new data catalog records
1,515 ArcGIS Server instances — massive geoportal expansion
293 global-level catalogs
97 French data catalogs

🌍 Geospatial Infrastructure

• 83 GeoServer
• 37 GeoNode
• 33 GeoNetwork
• 8 Lizmap
• 3 MapProxy
• 2 MapBender

📊 Open Data Platforms

• 47 OpenDataSoft
• 42 CKAN
• 5 DKAN

🔬 Scientific Repositories

• 38 Figshare
• 6 DSpace
• 6 NADA
• 9 THREDDS

🛠 Improvements

• 363 records with improved metadata
• Updated API endpoints for IPT catalogs
• Better metadata completeness
• Improved geographic & administrative coverage

🔗 More Info

🌐 Dateno Registry: https://dateno.io/registry
💾 Open-source data: https://github.com/commondataio/dataportals-registry
📦 Full dataset (parquet): https://github.com/commondataio/dataportals-registry/blob/main/data/datasets/full.parquet

#dateno #opendata #datacatalogs #opensource
👍51
Давно планировал написать про цену открытости, того занимаясь открытым кодом, открытыми данными или другой деятельностью связанной с благом обществу и технологиям кроме плюсов есть и издержки, некоторые из которых бывают очень неочевидными ну или, как минимум, не на поверхности.

Вот несколько примеров:
- Роботизированные спамеры и скамеры. Одна из бед открытых каталогов данных со свободной регистрацией пользователей и публикацией данных в какой-то момент стало бесконечное количество спама. Например, на порталах на базе CKAN открытая регистрация была прописана по умолчанию, в какой-то момент спамеры и скамеры понаписали скриптов которые регистрировали сотни тысяч аккаунтов и от них постили все что только разрешалось: создавали группы, профили организаций и карточки датасетов. Все фэйковые конечно, но в результате многие открытые порталы оказались забиты низкокачественным SEO мусором или, хуже того, откровенным скамом. Живой пример у меня перед глазами портал открытых данных метеослужбы Туниса. Там зарегистрировано более 1.3миллиона аккаунтов пруф потому что они не стали ограничивать регистрацию и поэтому у них у них более 45 тысяч спам текстов в одном из разделов. Из-за этого открытость порталов посвященных открытости приходится ограничивать, мы позакрывали регистрацию во всех своих основанных на CKAN порталах открытых данных именно по этой причине.

- Специализированный спам. Если ты активно публикуешь открытый код, ведешь активность на Github то рано или поздно, но скорее очень рано на тебя посыпется специализированный спам который можно разделить условно на 2 типа:
1-й - "Мы тут увидели что Вы добавили в избранное такой то open source проект, а у нас очень похожий, обязательно зайдите и посмотрите на нас и может быть используйте и добавьте в избранное"
2-й - "Чувак(-иха) у тебя столько активности в твоем аккаунте, зарегистрируйся в нашем сервисе где мы сводим больших работодателей из США и крутых программистов"

- Публичный технический долг. Технический долг штука неприятная для всех кто когда-либо занимался программированием, для дела ли или для души, но когда ты публикуешь открытый код ты, де-факто, принимаешь для себя что твой технический долг будет общедоступен. Да-да, не только код, но и технический долг по нему.

- Похвала редка, критика неизбежна. Это касается не только открытых данных и открытого кода, но здесь важно понимание что за очень редкими случаями решения действительно массовых и болезненных проблем, пользователи будут редко хвалить и нередко критиковать. Это нормально, особенно в коммуникации в некоторых культурах.

Конечно, все это не отменяет плюсов, общедоступное портфолио, способ коммуникации с теми кто разделяет твои интересы и многое другое.

#thoughts #opendata #opensource
👍163
Полезные ссылки про данные, технологии и не только:
- DS-STAR новый ИИ агент для решения задач в data science, обещают многое включая автоматизация обработки, анализа и визуализации данных. Заодно препринт где в тексте приведены другие похожие продукты.
- Federal Agency Github Activity визуализация активности на Github'е федеральных государственных агентств, спойлер: многие не публикуют ничего, но есть такие что работают над кодом постоянно. При этом в США есть госполитика о том что не менее 20% разрабатываемого госведомствами кода должно быть открытым кодом. Автор проекта рассказывает об этом подробнее
- Shai-Hulud 2.0 - новая версия вредоноса который инфильтруется в виде пакета для npm и ворует ключи, пароли и реквизиты доступа. В этой версии появился "dead man switch", угроза уничтожения данных пользователя если он мешает распространению. Кстати, что происходит с "AI powered malware" ? Появились ли уже вредоносы умеющие в ИИ?
- LocalAI позиционируется как local-first альтернатива OpenAI, лицензия MIT, быстро набирает популярность. Акцент на более человеческих, а не технических интерфейсах

#opensource #malware #ai #datascience
4👍2
Для всех ИИ агентов для кодинга у меня есть довольно простой тест который большая часть из них ещё полгода назад пройти не могли. В Армении есть портал статистики statbank.armstat.am который много лет назад создавался за счет помощи ЕС и с той поры не обновлялся. Он построен на базе движка с открытым кодом PxWeb шведско-норвежской разработки который прошел большую эволюцию за эти годы, но в Армстате используется очень старая его версия с интерфейсом созданным на ASP.NET с большим числом postback запросов что не критично, но неприятно усложняет сбор из него данных. Я такую задачу отношу к скорее утомительным чем сложным, потому что отладка на них может быть долгой и замороченной.

У меня с этой задачей всегда была развилка из 3-х вариантов:
1. Создать и оплатить задачу для фрилансера (в пределах от $50 до $250 за всю работу)
2. Поручить одному из разработчиков/инженеров в команде (по уровню это задача скорее для аккуратного джуна)
3. С помощью ИИ агента сделать такой парсер

Поскольку задача не приоритетная (в Dateno данные собираются с более современных инсталляций PxWeb и через API), то для таких проверок ИИ агентов она прекрасно подходила. И я её пробовал решать и через ChatGPT, и Copilot, и Manus и Claude Code и первую версию Cursor'а, в общем много вариантов.

Они либо утыкались в то что определяли что это PxWeb и делали код для API который не работал, или проверяли что код для API не работает и писали что ничего дальше сделать не могут, или писали плохой код для скрейпинга веб страниц который не работал.

В итоге могу сказать что окончательно рабочее решение сумел сделать Antifravity от Google. Но каким образом, через запуск Chrome локально и автоматизированно пройдясь по сайту определив его структуру и создав код на Python который с некоторыми ошибками, но в итоге извлекал списки показателей и умел выгружать данные. Неидеальные, потому что так и не научился выгружать данные в форматах отличных от CSV, несмотря на несколько попыток и при том что через веб интерфейс это все работает, значит ошибка не в оригинальной системе.

Тем не менее, это уже результат примерно 2-х часов работы, что соответствовало бы времени в течение которого пришлось бы потратить на проверку работы фрилансера или разработчика в команде.

Что в итоге:
1. Количеств задач отдаваемых фрилансерам стремительно падает кроме малого числа где фрилансер большой профессионал в своей специализированной области.
2. Зачем нанимать джунов? Этот вопрос все острее с развитием ИИ агентов
3. ИИ агенты все успешнее решают "замороченные" и "утомительные" задачи с которыми ранее не справлялись

Все выводы звучали и раньше.
- ИИ агенты позволяют сильно повышать продуктивность команд
- проблема подготовки зрелых специалистов из джунов только нарастает

Меня приятно удивило качество работы Antigravity, но я его рассматриваю скорее как пример прогресса ИИ агентов в целом, подозреваю что другие ИИ агенты если ещё не могут этого (нужно браузером исследовать сайт), то смогут в скором будущем.

#opendata #opensource #ai #coding
👍94
В рубрике как это устроено у них каталог открытого ПО для исследователей Research Software Repository (RSD)

Включает 1066 программных продуктов привязанных к 352 научным проектам, 529 организациям с упоминанием 2134 контрибьюторов и 27994 упоминания в научных работах.

Проект создан в eScienceCenter в Нидерландах и сам тоже с открытым кодом.

Кроме всего прочего они еще и скрейпят коммиты в Git репозитории на Github и других платформах и показывают уровень активности работы над репозиториями.

Сам проект тоже с открытым кодом.

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

#opensource #research #openaccess
3👍3
Для тех кто анализирует данные и тд. я масштабно обновил инструмент metacrafter https://github.com/apicrafter/metacrafter по идентификации семантических типов данных, включая персональные данные по многим странам и языка.

Что изменилось:
- добавлено много новых правил и обновлены имеющиеся
- сильно оптимизирован код для ускорения мэтчинга правил
- добавлена возможность фильтрации правил по стране (страна указывается в файле правил)
- добавлено множество опций для командной строки

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

Собственно сами правила тоже обновились https://github.com/apicrafter/metacrafter-rules

Это не финальные изменения, а подготовка кода к интеграцию в Dateno.

#opensource #datatools #dataengineering
👍31🔥1
К вопросу о применении ИИ агентов для разработки в задачах ведения баз данных я вдруг понял какому количеству унаследованного кода и данных можно придать новую жизнь.

У меня есть как минимум две таких базы данных которые можно перевести в режим декларативной сборки набора данных и обогащение с помощью ИИ, это:
1. Реестр всех госдоменов в РФ используемый для цифровой архивации
2. Большой каталог всех межгосударственных структур (ОЭСР, ООН и тд.) с привязкой к странам и тд.

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

А вот второе я веду уже лет 10, но года 4 уже не обновлял. Это штука регулярно необходимая для мэппинга разного рода объектов - данных, текстовых материалов и не только.

Одно из применений в визуализациях и аналитике когда надо сравнить какие-то абсолютные или средние значения показателей демографии, ВВП, размеров рынка и тд. по страновым блокам. Сравнить ЕС и БРИКС или рейтинги внутри странового блока.

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

К примеру, реестров стран в мире не меньше нескольких десятков. Когда надо мэппить разные объекты на страны чаще всего используют реестр стран ООН, ISO 3166, справочник Всемирного банка, справочник геослужбы США и несколько частных проектов с открытым кодом. Внутри Dateno активно используется python библиотека pycountry, но это не единственный и не идеальный способ.

Впрочем задачи Dateno с помощью pycountry и разметки через LLM решаются достаточно эффективно, поэтому я на вот этот дата продукт в виде межгосударственных организаций и всего остального рассматриваю скорее как хобби чем как рабочую задачу.

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

#opendata #opensource #thoughts
👍92🤔21🌚1
В качестве примера данных создаваемых и улучшаемых с помощью ИИ, публикую открытым кодом и открытыми данными Internacia Datasets (Internacia - это международный на эсператно).

В репозитории находятся наборы данных в форматах JSONl, YAML, Parquet и база DuckDB в которых содержатся данные о 252 странах и 727 группах стран и межгосударственных организациях. Там же подробности про содержание и структуру базы, примеры доступа и другие подробности.

Эти наборы данных собираются из большого числа YAML файлов из папок data/countries и data/intblocks. В свою очередь эти YAML файлы вручную или автоматизированно обновляются. В частности чтобы собрать эту базу я взял свою базу межгосударственных организаций 5-летней давности, поправил вручную самое критичное и привел в порядок с помощью ИИ агентов Antigravity и Cursor, после чего снова поправил и в итоге собрал имеющиеся записи в наборы данных.

В Dateno сейчас частично используются часть этой логики используется для мэппинга датасетов на страны, но после завершения SDK для Python'а оно заменит применяемую сейчас библиотеку pycountry на использование этого справочника. а заодно даст возможность, при желании, обогащать датасеты дополнительными фильтрами и метаданными по привязкам к геоблокам, например, отфильтровывая датасеты только из стран Евросоюза или стран БРИКС или стран Лиги арабских государств.

Сейчас идет активный рефакторинг части кода Dateno, так что этот компонент будет там использоваться.

А, в целом, у него много применений. Самое очевидное про которое я все время говорю - это региональные блоковые рейтинги. Хочется сделать рейтинг стран по открытости внутри политических блоков? Без проблем. Хочется отрейтинговать страны ОЭСР по ВВП? Тоже несложно. И многое и многое другое, это справочник, упакованный в современные форматы.

Источники датасета: собственная база, Wikipedia, Wikidata, сайты межгосударственных организаций, реестры стран ООН и Всемирного банка.

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

Дальнейшее развитие:
1. SDK для Python
2. REST API возможно вместе с другими похожими справочными данными
3. Расширение на субрегиональный уровень по кодам ISO3166-2 (точно не первый приоритет)
4. Исправление ошибок и дополнения метаданных

#opendata #opensource #dateno #datasets
👍721🔥1
В рубрике полезных инструментов для сбора данных tdl (Telegram Downloader) инструмент командной строки,написан на Go, под лицензией AGPL-3.0, позволяет выгружать списки сообщений, сами сообщения и файлы и проводить другие манипуляции по выгрузке списков чатов, их участников и другой информации.

Выглядит как полезный инструмент для разных задач: мониторинга телеграм каналов, OSINT, создания наборов данных по тематикам и, конечно, цифровой архивации. Для последней задачи инструмент хорошо бы доработать и добавить команду "archive" для создания или обновления полного слепка данных, но можно и сделать надстройку над этой утилитой.

Что важно - это живая разработка, с 18 контрибьюторами, основной разработчик и часть контрибьютров китайскоязычные, видимо я пропустил когда в Китае Телеграм начал набирать популярность.

Мне лично нравится как сделан этот инструмент по архитектуре, логике команд, набору опций (выкачивать только сообщения, скачивать медиа) и так далее. Хотелось бы такой же, но универсальный для разных платформ и соцсетей или даже отдельные для других платформ сделанные по схожей логике. Для РФ скоро будет актуален инструмент для выгрузки чатов и каналов в MAX потому что у MAX'а нет открытой веб версии без авторизации как это есть у телеграм'а (пример - https://t.me/s/begtin) и все что создается внутри платформы не архивируется. Но это уже отдельная тема.

Пока же tdl полезный инструмент для телеграма и хорошая референсная реализация подобных инструментов для других задач.

#opendata #opensource #digitalpreservation #data #tools
👍12621
Open source продукт Minio по организации своего S3-совместимого хранилища больше не open source. 2 декабря разработчики обновили файл README.md где указали что проект теперь только в maintenance mode (режиме обслуживания) и новые возможности и исправление багов более не происходят. Вместо него разработчики теперь продвигают коммерческий продукт MinIO AIStor (хранилище для ИИ продуктов). Это более жесткий сценарий чем то что делали Elasticsearch и MongoDB с лицензией SSPL. Те хотя бы оставляли код для исправления ошибок и проблема была скорее в том что контрибьюторы вкладывались в продукт с ограничениями по лицензированию, а в случае Minio это переход от открытого кода к закрытому продукта.

А большинству ИТ команд теперь придется убирать Minio из своих технологических стеков.

#opensource #minio #techstack
😢163😁3👍2😱1💔1
Как обмениваться большими файлами не привлекая внимания санитаров без необходимости использовать облачные диски или аренды серверов? AltSendme инструмент по отправке данных через зашифрованное peer-to-peer соединение, представляет собой GUI приложение для Linux, Windows и Mac. Можно выбрать конкретный файл и после нажатия на "Start sharing" приложение создает длинны код/тикет который надо любым способом передать получателю и который после ввода этого кода в это же приложение у себя быстро и напрямую скачивает файл.

Лично у меня реакция на такое "почему это не я придумал?!" потому что инструмент простой и полезный.

Всё это с открытым кодом, использует p2p прокотолы iroh у которых также есть аналогичная утилита SendMe для командной строки, также с открытым кодом.

Этот инструмент не единственный, их становится больше, интересно когда появятся первые proxy/vpn инструменты такой же природы? А может они уже и есть.

#opensource #filetransfer #tools #datatools
🔥1742
Ещё один полезный инструмент для дата инженера и аналитика data-peek SQL клиент для десктопа под Windows, Mac и Linux с поддержкой PostgreSQL, MySQL и Microsoft SQL. Для личного пользования лицензия MIT и открытый код, для коммерческого отдельная лицензия и платное использование.

В целом ничего нового, кроме построителя SQL запросов через ИИ модели, поддерживает многие модели включая локальные через Ollama.

Как же много таких клиентов появилось в последнее время, кто бы сделал аналогичное для NoSQL: Elasticsearch, OpenSearch, MongoDB и тд.

А еще лучше для SPARQL'я потому что программировать SPARQL запросы это боль для психически неподготовленной личности. Именно очеловечивание запросов способно придать SPARQL'ю новую жизнь, по моему разумению.

Но понятно, на самом деле, почему таких инструментов нет, потому что ёмкость рынка инструментов для SQL превышает все остальные. Но тогда уж надо добавлять поддержку не Microsoft SQL, а Clickhouse, SQLite, DuckDB и тд.

#opensource #datatools #dataengineering #tools
👏4👍2🤝1
В продолжение инструментов работы с данными, я на днях обновил утилиту undatum которую создавал для разных манипуляций с данными в командной строке. Главная была особенность в том что она кроме CSV файлов поддерживает всяческие структурированные не плоские форматы данных вроде JSONL, BSON, Parquet и тд.

А также умеет автодокументировать датасеты.

Собственно свежее изменение в том что теперь автодокументирование расширилось поддержкой любых LLM'ом через Ollama, LM Studio, Perplexity, OpenAI и OpenRouter и в поддержке множества языков, можно получать описание буквально на любом языке поддерживаемом выбранной LLM.

Автодокументирование работает не быстро, но зависит только от скорости работы LLM, а не от размера набора данных. Оно полезно для многих задач, у меня лично много задач с тем чтобы приводить описания наборов данных в порядок и один из способов для этого в использовании вот этого инструмента

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

#opensource #datatools #ai
1🔥6