Ivan Begtin
8.07K subscribers
1.5K photos
3 videos
100 files
4.25K links
I write about Open Data, Data Engineering, Government, Privacy and Data Preservation and other gov and tech stuff
Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts ivan@begtin.tech

Contact @NMBabina for ads proposals
Download Telegram
В рубрике интересные продукты с открытым кодом Grist, открытая альтернатива Airtable, инструмент работы с таблицами [1].
Функции очень похожи:
- быстро и с нуля построить базы данных (аналог Access, только в вебе)
- гибкое управление правами доступа к данным
- визуализировать данные, строить отчеты
- делиться данными с другими

Ну и конечно замена Excel во всём что касается редактирования таблиц. Авторы также подготовили обзора сравнений в Airtable [2] и кроме открытого кода предлагают облачный сервис GetGrist [3] где можно его потестить. Конечно из России использовать облако затруднительно, оплата там в долларах США.

Из больших плюсов продукта поддержка формул на Python с полной поддержкой Python’s standard library [4]

Ссылки:
[1] https://github.com/gristlabs/grist-core
[2] https://www.getgrist.com/blog/grist-v-airtable/
[3] https://www.getgrist.com/
[4] https://support.getgrist.com/formulas/#python

#data #tools #spreadsheets #opensource
Как можно помочь в цифровой архивации если Вы программист?

Многие умеют программировать и хотят выступить волонтерами и помочь в архивации. Как можно это сделать? Какие задачи есть?

Задач много, не все удаётся описать сразу в виде готового ТЗ, но я постараюсь описать хотя бы кратко:
1. Агрегация из нестандартных источников (не веб).
Есть разные каналы обмена информацией, например, есть каналы в Viber, открытые чаты в WhatsApp и другие сервисы. Нужны инструменты дающие возможность данные скачивать. Сейчас ничего такого нет, весь этот контент за пределы этих экосистем не выходит. Возможно есть и другие источники важных знаний которые также надо сохранить.

2. Выгрузка данных из Instagram
Для инстаграм есть несколько инструментов выгрузки данных, но соцсеть сильно сопротивляется любым попыткам их получить. Даже самый актуальный сейчас инструмент instaloader не работает без авторизации и регулярно сталкивается с блокировками. Поэтому любые инструменты сбора данных из Instagram нужны. Лучше всего работающие с командной строки

3. Переделка текущих инструментов веб-архивации
Для веб архивации есть много инструментов. От самых простых таких как httrack и wget, до довольно сложных таких как Nutch и Heritrix. А есть несколько инструментов между ними по сложности такие как wpull и grab-site. Wpull - это переделанный wget с расширениями на Python, а grab-site - это надстройка над wpull'ом для динамического мониторинга архивации сайтов. У обоих проектов есть проблема - они не поддерживаются несколько лет, не работают, например, в Python выше 3.5 и родная операционка для них устаревшая Ubuntu 18.04. Соответственно нужна помощь очень опытных программистов в том чтобы обновить их до поддержки последних версий Python и сделать их нормально портируемых на последние версии Ubuntu, чтобы работали под Windows и тд. без плясок с бубном вокруг Python 3.5.

4. Визуализация и поиск по архивам каналов и чатов в Telegram.
Есть много чатов и телеграм каналов которые мы архивируем. Данные экспортируются в JSON формате. Нужен инструмент строящий веб интерфейс для поиска по архивированным чатам, файлам и тд. Сейчас ничего такого нет, а рано или поздно создавать такой интерфейс над копиями телеграм каналов потребуется.


#tools #archives #webarchives #helpneeded
Подготовлена бета версия утилиты командной строки wparc [1] архивации данных из сайтов Wordpress.

Утилита использует стандартное API предоставляемое CMS Wordpress и доступной по адресу /wp-json/. Поскольку на Wordpress работает огромное число сайтов СМИ и личных сайтов, то утилита будет необходима для получения быстрых дампов данных, значительно быстрее чем классические веб-краулеры.

Подробнее о структурах данных можно прочитать в документации Wordpress REST API [2].

Утилита поддерживает две команды:
- dump - выгрузить все данные через обход точек подключения к API, результатом являются файлы в форматах .json и .jsonl
- getfiles - выгрузка всех медиа файлов перечисленных в файле wp_v2_media.jsonl полученного после исполнения команды dump

Примеры сайтов на Wordpress: duma-rad.ru, www.iephb.ru, paperpaper.ru, agentura.ru и многие другие.

Ограничения:
- некоторые владельцы сайтов на Wordpress блокируют доступ к /wp-json/ без авторизации и из этих сайтов невозможно пока извлечь данные
- у старых версий версий Wordpress отсутствует точка подключения /wp-json/ и также невозможно скачать данные таким способом.

В будущем утилита будет поддерживать команды проверки сайта на возможность выгрузки данных, упаковывать их в пакет данных (data package) для долгосрочного сохранения и поддерживать выгрузку данных из Wordpress даже без доступного API (по определенным шаблонам этой CMS).

Найденные ошибки заполняйте в issues репозитория проекта wparc [3]

Ссылки:
[1] https://github.com/ruarxive/wparc
[2] https://developer.wordpress.org/rest-api/
[3] https://github.com/ruarxive/wparc/issues

#wordpress #webarchives #digitalpreservation #opensource #tools
Я много писал про государство и технологии, всё больше про данные в предыдущий год и вот всё чаще про цифровые архивы. Может показаться что это не взаимосвязанные темы, но это не так. Веб архивы - это одна из форм данных очень большого объёма, полуструктурированных как правило, но тем не менее вполне подпадающих под задачи data science.

Один из примеров такого применения - это проект Archives Unleashed [1] его авторы создали множество инструментов того как представлять, обрабатывать, анализировать и иными способами работать с файлами веб архивов. Собственно их Archives Unleashed Toolkit (AUT) [2] это инструментарий по созданию инфраструктуры обработки WARC файлов с помощью Hadoop, Apache Spark, Jupiter Notebook и других инструментов работы с данными большого объёма.

Многие наборы данных были созданы с помощью AUT, также как и проведены многочисленные исследования [3]. Не стоит недооценивать эти инструменты, они весьма полезны исследователям современного мира и не только.

Ссылки:
[1] https://archivesunleashed.org/
[2] https://aut.docs.archivesunleashed.org/
[3] https://archivesunleashed.org/cohorts2022-2023/

#opendata #data #tools #opensource
В рубрике полезных инструментов по работе с данными Mito [1], движок с открытым кодом встраивающийся в JupyterLab 2.0 и 3.0 и позволяющий работать с данными как если бы это был Excel или OpenRefine.

Фактически это lowcode инструмент по генерации кода на Python на основе манипуляций с датафреймом внутри тетрадки Jupyter. Как оказалось, очень удобная штука с большим числом пользователей.

Ссылки:
[1] https://www.trymito.io/

#data #datawranling #tools #datatools #opensource
Инструменты для цифровых архивистов. Определение типа файлов

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

Цифровые архивисты используют и создают инструменты для решения этой задачи .

- PRONOM - база форматов файлов от Национальных архивов Великобритании. Распространяются как открытые данные, используются многими инструментами
- DROID (Digital Record and Object Identification) - также утилита от Национальных архивов Великобритании по идентификации типов файлов
- Apache Tika - утилита и библиотека кода на языке Java для определения типов файлов и извлечения данных из определяемых типов файлов, например, файлов MS Office.
- Siegfried - утилита командной строки идентифицирующая типы файлов на основании базы сигнатур PRONOM и других источников
- TrID - утилита идентификации форматов файлов, бесплатна для частного использования
- NARA File Analyzer and Metadata Harvester - утилита анализа форматов и сбора метаданных от Национальных архивов США. Не обновлялась уже 6 лет.

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

#tools #digitalpreservation #fileidentification
Для тех кто любит работать (с данными) в командной строке хорошая подборка новых инструментов [1], как просто для работы, так и для работы с данными.
Мой личный список значительно шире, какие-то инструменты я писал сам, для наиболее частых задач, например, undatum утилита работы с JSON lines и BSON и другими форматами данных или lazyscraper для быстрого сбора данных с веб-страниц через командную строку.

Чувствую что надо составить собственный список, а в представленном списке выше есть немало того что стоит попробовать.

Ссылки:
[1] https://jvns.ca/blog/2022/04/12/a-list-of-new-ish--command-line-tools/

#opensource #tools #data #datatools
Свежий обзор The Modern Data Stack Ecosystem: Spring 2022 Edition [1] от Continual.ai, Конечно, как и все, они описывают Modern Data Stack с точки зрения их места в экосистеме, но, собственно и сам термин так активно используется стартапами именно для того чтобы показать позиционирование своего продукта. Удивительно что для MDS ещё нет холста в популярных системах проектирования вроде Miro и т.д.

Обзор полезный, например, автор отмечает отход от SQL-only подхода в преобразовании данных и в dbt рассматривают вариант включить поддержку non-SQL [2] и Snowflake рассматривают добавление Python-in-DB через Snowpark [3]

Главный недостаток именно этого обзора с слабом покрытии инструментов с открытым кодом, их там совсем немного упомянуто. Зато роли и применение продуктов стартапов довольно много.

Ссылки:
[1] https://continual.ai/post/the-modern-data-stack-ecosystem-spring-2022-edition
[2] https://roundup.getdbt.com/p/disjointed-lineage
[3] https://www.snowflake.com/blog/snowpark-is-now-generally-available/

#data #reading #tools #moderndatastack
Яндекс выложили в открытый доступ систему управления базами данных YDB [1] с полным исходным кодом [2]. Эта распределенная SQL база данных, с собственным расширением языка SQL - YQL [3] и, в целом, выглядит любопытно.

Что стоит внимания:
- работа в кластере как часть системы
- обещанная простая масштабируемость

Что удивительно:
- база написана полностью на C++, хотя сейчас более популярно когда базы данных создаются на более высокоуровневых языках, в том числе и для того чтобы привлечь разработчиков которые хотят их изучать
- поддержка JSON и иерархических данных весьма скромная, по крайней мере документации об этом мало, хотя и упоминается
- вместо придумывания своего языка запросов расширяют SQL, что может быть и не плохо, просто +1 SQL диалект
- нет PostgreSQL или MySQL "совместимости из коробки", а это полезная фича которую декларируют многие новые СУБД и сервисы.

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

Ссылки:
[1] https://ydb.tech/
[2] https://github.com/ydb-platform/ydb
[3] https://ydb.tech/ru/docs/yql/reference/

#data #opensource #yandex #tools
В рубрике полезных инструментов для работы с данными несколько обновлений
- spcrawler [1] утилита командной строки для выгрузки данных и файлов из открытых сайтов Sharepoint к которой я наконец-то нашёл время дописать документацию и выложил как открытый код. Предистория: в открытом доступе много сайтов на Sharepoint, некоторые государственные системы/сайты тоже сделаны нём. Эта утилита выгружает все данные доступные через API "/_api/web" для тех случаев когда такое API есть. Похоже на другую утилиту wparc - по архивации данных через API Wordpress, которую я ранее выкладывал.
- у утилиты undatum появилась команда query использующая mistql как язык запросов. Удобно при необходимости потоковой фильтрации данных при работе с JSON lines. Пока в экспериментальном режиме, функции незавершённые. Одна из идей в том чтобы реализовать полноценную команду запросов на многих языках, не только mistql, но и dictquery и ещё нескольких вариантах.
- у меня в планах написать гайд по apibackuper, утилите по архивации данных внутри API. Очень много примеров API по России и оказывается мало по миру, не могу быстро найти зарубежные недокументированные API.
- добавлены новые общедоступные правила к утилите идентфикации типов данных metacrafter, добавлены правила: intcodes.yaml - международные коды, boolean.yaml - булевые значения, orgs.yaml - организации, science.yaml - научные идентификаторы, vehicles.yaml - автомобили. Все они в категории common в репозитории. Напомню, что утилита является открытой и общедоступной как и базовые правила, а у нас внутри проходит бета тестирование сервис с расширенными правилами. Желающие могут использовать открытый код и сами писать правила под свои данные или привлечь нашу команду и мы применим расширенный свод правил + напишем под Ваши данные.

В ближайших планах собрать вместе открытый код + наработки по APICrafter'у и Datacrafter՛у и собрать продукт + сервис на международную и русскоязычную аудитории.

Ссылки:
[1] https://github.com/ruarxive/spcrawler

#opensource #tools #data