Я продолжаю, постепенно, наводить порядок с унаследованным кодом который я же насоздавал за последние лет 10. Большая часть этого должно было быть в открытом доступе, всегда ограничения в том же на что я сетую - надо документировать.
Сейчас я выложил два репозитория.
Коллекция тетрадок по анализу данных [1]
Это подборка тетрадок для Jupyter Notebook по разным аспектам работы с госданными:
- datagovru - тетрадка для анализа статистики и реестра данных на портале data.gov.ru
- kremlinlaw - тетрадка с анализом статистики принятия законов собранных с kremlin.ru (не лучший источник)
- nalogstats - тетрадка с анализом статистики регистрации ИП и юр. лиц с сайта ФНС России
- ano-sub - тетрадка с анализом сумм выделяемых НКО через субсидии на основе уже закрытого Минфином реестра субсидий
- regbudgets-roskazna - тетрадка с кодом извлечения данных из отчётов федерального казначейства об исполнении федерального бюджета. Я её делал когда-то для оценки субсидирования СМИ и НКО, там есть примеры финансирования НКО
Последние две тетрадки я использую до сих пор для анализа госрасходов на НКО.
Библиотека анализа структуры госбюджета [2] писалась мной ещё довольно давно, изначально как API для анализа и сравнения изменений в бюджете. В качестве источника использовался budget.gov.ru портал электронного бюджета и был вариант использовать именно её в проекта Госрасходы, но, увы, качество данных в Электронном бюджете было и остаётся весьма посредственным до сих пор.
Сейчас я бы всё это переписал в универсальный формат описания и анализа финансовых данных, но мой интерес к анализу госфинансов слегка поугас за эти годы․
Финансовая отчетность политических партий [3] это код сбора файлов и архив самих финансовых отчетов политических партий за 2005-2020 годы. Сейчас всё это имеет скорее исторический смысл, чем какой-либо ещё. Для истории есть копия этих данных в @ruarxive, а в этом репозитории файлы и код их сбора. Но код применить сейчас сложно потому что ЦИК блокируют почти любые попытки выкачать с сайта что-либо не с помощью браузера. С другой стороны в этом архиве есть отчеты которые с сайта ЦИКа давно убраны. Например, на сайте ЦИКа отчеты начинаются с 2010 года, а здесь собраны с 2005.
Ссылки:
[1] https://github.com/ivbeg/runotebooks
[2] https://github.com/ivbeg/budgetlib
[3] https://github.com/infoculture/ru-cik-data
#opendata #opengov #opensource
Команда авторов ежегодного доклада State of AI выпустила очередной доклад State of AI 2022 [1], его удобнее сразу смотреть в Google Slides [2] и скачать оттуда же.
Приводить все факты и предсказания оттуда очень долго, там 110+ слайдов на темы технологий, индустрии, исследований, политики и тд и интересного и важного немало. Для меня интересным был блок Safety поскольку он про состояние отношений учёных к развитию ИИ и ряда госстратегий вроде UK National Strategy for AI.
Но это то на что я обратил внимание, а так там очень много всего. При чтении важно помнить кто основной адресат этого обзора и кто его составляет. Он готовится людьми погруженными в венчурную индустрию для тех кто ищет финансирование, дает финансирование или думает о том или другом. Поэтому далеко не все примеры harmful AI приводятся, но примеры полезного применения многочисленны. Что, в любом случае, не обесценивает этот замечательный отчет.
Ссылки:
[1] https://www.stateof.ai/
[2] https://docs.google.com/presentation/d/1WrkeJ9-CjuotTXoa4ZZlB3UPBXpxe4B3FMs9R9tn34I/edit?usp=sharing
#ai #regulation #reports
#opensource : RuLeanALBERT от Yandex Research
2.9B трансформер для русского, которая влезет в домашнюю ПеКарню ресерчера
Мало того, что это самая большая БЕРТ-подобная модель для русского языка, которая показывает крутые результаты в бенчмарках, так еще и с кодом для fine-tuning-а
GitHub
А в статье можете узнать, как обучалась эта модель (а-ля коллаборативное глубокое обучение) на фреймворке по децентрализованному обучению Hivemind
Хороший обзор How Open Source is eating AI [1] о сокращении циклов разработки ИИ и о том как открытость кода в виде открытости языковых моделей, открытых инструментов машинного обучения, открытых наборов данных и так далее влияет на появление новых ИИ продуктов.
Общий посыл такой что без открытости кода развитие ИИ невозможно, и автор призывает к появлению Open source AI Institute. Идея любопытная, может быть такое и будет в каком-то обозримом времени.
Ссылки:
[1] https://lspace.swyx.io/p/open-source-ai
#opensouece #ai
В рубрике полезного чтения про данные, технологии и не только:
Технологии и данные
- Don’t make databases available on the public internet [1] прокси для безопасного доступа к базам Postgres в блоге Tailscale. Tailscale - это весьма любопытный Zero-config VPN сервис, не в смысле выйти за пределы юрисдикции страны, а в том смысле чтобы создать виртуальную защищённую локальную сеть между своими устройствами в разных местах. Я лично его использую в бесплатной версии и это очень себя оправдывает.
- Postgres: a better message queue than Kafka? [2] в блоге Dagster, системы ETL с открытым кодом о том почему они выбрали Postgres, а не Kafka для управления очередями. Вообще это считается анти-шаблоном, в последние годы было много публикаций где писалось о том насколько не рекомендуется делать очереди задач через RDBMS, и разработчики Dagster тоже об этом знали. Поэтому интересно почему они, всё таки, выбрали этот путь.
- matanolabs/matano [3] - озеро данных для инфобеза для AWS. Интересная специализация, с фокусом на сбор и обработку данных и логов и сенсоров в оперативном режиме.
- Rok create job immerok cloud [4] стартап Immerok привлекли $17m на создание облачного сервиса на базе опенсорсного продукта для потоковой обработки данных на базе Apache Flink. Альтернатив много, но интересно что нового они предложат.
- Apache Iceberg Reduced Our Amazon S3 Cost by 90% [5] о том как миграция на Apache Iceberg позволяет сократить расходы на Amazon S3. Полезное чтение и, честно говоря, уже можно отдельно выделить спектр продуктов и услуг "мы поможем Вам уменьшить расходы на инфраструктуру". Для средних и крупных компаний суперактуально, для малых чуть меньше, но тоже нужно.
Регулирование и государство
- The EU wants to put companies on the hook for harmful AI [6] - законопроект в Евросоюзе который может позволить пользователям судится с компаниями использующими "опасный ИИ". Через пару лет может стать законом, а ещё и ЕС хочет сделать его "золотым стандартом" для других стран и в нём может быть принцип экстерриториальности как в GDPR․
- Smart cities: reviewing the debate about their ethical implications [7] рассуждения в виде научной статьи об этичности создания и развития умных городов. Стоит почитать чтобы хотя бы понимать разумные доводы почему тотальная автоматизация городской инфраструктуры - это не только хорошо, но и не очень хорошо, а где-то и плохо
- Big Data and Official Statistics [8] о том почему текущие методы подготовки официальной экономической статистики устарели и что с ней надо делать с помощью больших данных. Много и по делу о изменении подходов и роли статистических органов власти в мире.
Книги
- Data Spaces [9] книга в открытом доступе посвящённая пространствам данных как концепции по объединению стандартов, онтологий, форматов, баз данных в некую общую экосистему. Имеет некоторый философский налёт, но полезно для понимания возможного будущего регулирования и академических подходов в этой области
Ссылки:
[1] https://tailscale.com/blog/introducing-pgproxy/
[2] https://dagster.io/blog/skip-kafka-use-postgres-message-queue
[3] https://github.com/matanolabs/matano
[4] https://www.immerok.io/blog/immerok-cloud-early-access
[5] https://medium.com/insiderengineering/apache-iceberg-reduced-our-amazon-s3-cost-by-90-997cde5ce931
[6] https://www.technologyreview.com/2022/10/01/1060539/eu-tech-policy-harmful-ai-liability/
[7] https://link.springer.com/article/10.1007/s00146-022-01558-0
[8] https://onlinelibrary.wiley.com/doi/full/10.1111/roiw.12617
[9] https://link.springer.com/book/10.1007/978-3-030-98636-0
#data #opensource #regulation #government
Ещё в 2018 году в Инфокультуре (@infoculture) мы делали множество карт данных, подсказок для хакатонов и тех кто делает продукты на открытых данных о том где открытые данные взять. С той поры у меня не доходили руки привести их все в порядок. Какие-то были более-менее систематизированы, какие-то ещё рассеяны по разным местам.
Наконец-то дошли руки привести их в порядок, сделать машиночитаемый формат и выложить онлайн в репозитории ru-datamaps [1].
Охватываются такие темы как:
- Авиация
- Экология
- Госфинансы
- Законотворчество
- Здравоохранение
- Нефтегазовый сектор
- Образование
- Некоммерческие организации
- Правоохранительная система
Карты в форматах Xmind, PNG, PDF и JSON.
По мере того как буду находить остальные карты, они появятся в этом же репозитории на Github.
Ссылки:
[1] https://github.com/infoculture/ru-datamaps
#opendata #opensource #datamaps #datadiscovery
В рубрике полезных инструментов работы с данными, я выложил в открытый доступ очередную маленькую утилиту filegetter [1] для проектов цифрового архива (ruarxive.org, телеграм канал @ruarxive).
Утилита делалась когда-то для тех случаях когда в файле набора данных есть ссылки на какие-то файлы, например, PDF/DOC документы или изображения или ещё что-то что надо собрать вместе с набором данных. Такие файлы можно собирать разными способами, например, набором скриптов для командной строки или из скрипта на любом скриптовом языке. Но в какой-то момент это стало довольно неудобно каждый раз писать программу на на сто строк кода, когда можно было бы описать правила в 5 строках конфигурационного файла.
Поэтому на базе другой утилиты, apibackuper [2], созданной для архивации данных в API была быстро сделана эта утилита которая так и пролежала почти год пока у меня не нашлось немного времени сделать к ней документацию и примеры.
Так вот примеры:
- выгрузка файлов приложенных к проекту бюджета с сайта Госдумы [3]
- выгрузка отчетов политических партий с сайта ЦИК РФ [4]
- выгрузка изображений из каталога музейного фонда [5]
Всё это довольно простые примеры, когда файлы выкачиваются из первоисточников и складываются внутрь ZIP контейнера, а рядом сохраняется файл с метаданными.
Главное применение - архивация сопутствующих файлов привязанных к наборам данных.
В итоге, рано или поздно, хочется это упаковать в связанные между собой инструменты для цифровой архивации. Их по отдельности уже много: архивация Wordpress, API, файлов, веб-сайтов, телеграм и других цифровых объектов и типов источников данных и контента.
Ссылки:
[1] https://github.com/ruarxive/filegetter
[2] https://github.com/ruarxive/apibackuper
[3] https://github.com/ruarxive/filegetter/tree/main/examples/budget2023
[4] https://github.com/ruarxive/filegetter/tree/main/examples/rupolitparties
[5] https://github.com/ruarxive/filegetter/tree/main/examples/goskatalog
#opendata #digitalpreservation #webarchives #opensource
Команда Clickhouse, создателей одной из лучших аналитических СУБД, запустили бета версию облачной версии продукта [1]. Сейчас облако работает с поминутной тарификацией на базе инфраструктуры AWS․ Главное достоинство в том что продукт непосредственно от команды разработчиков Clickhouse, а значит можно надеяться на лучшую производительность и техническую поддержку.
При том что кластеры на Clickhouse существуют уже много где. Например, в Яндекс облаке [2] с ежесуточной и ежемесячной тарификацией и в самом AWS [3].
Clickhouse не единственная СУБД для аналитики в реальном времени на базе которой создаются DBAAS (database-as-a-service) продукты. Например, команда их менее популярного, но близкого по производительности, конкурента StarRocks анонсировали появление их облака в 3-м квартале 2022 г. [4]. 3-й квартал вот только что прошёл, ждём когда же можно будет увидеть обещанное.
А я напомню интересную штуку от Clickhouse по открытым замерам производительности баз данных [5] с весьма неплохим их сравнением.
Ссылки:
[1] https://clickhouse.com/blog/clickhouse-cloud-public-beta
[2] https://cloud.yandex.com/en/services/managed-clickhouse
[3] https://aws.amazon.com/ru/quickstart/architecture/clickhouse-cluster/
[4] https://starrocks.io/blog/starrocks-launches-the-industrys-fastest-cloud-native-real-time-analytics-engine
[5] https://benchmark.clickhouse.com
#opensource #startups #dbms #clickhouse
По поводу новой процедуры аккредитации ИТ компаний организованной Минцифры РФ мне много что есть сказать, поскольку несколько лет я не только изучал реестр аккредитованных компаний, но и сопоставлял его с другими реестрами, находил там аномалии разной степени необычности и публиковал тут у себя в телеграм канале и передавал сотрудникам Минцифры ещё в июне-июле месяце.
В реестре аккредитованных и сейчас осталось немало туроператоров, семейных частных отелей и иных организаций не имеющих никакого отношения к ИТ. Но, чисто по человечески, лучше уж больше непрофильных компаний получат возможность для отсрочки ИТ сотрудников от мобилизации, чем список аккредитованных сокращать. В конце то концов это сотрудники Минцифры берут на себя ответственность за аккредитацию, главное лишь понимать и всегда помнить что реестр аккредитованных компаний != реестр ИТ компаний. Там намешаны ИТ компании, технологические компании на классических рынках и вообще не относящиеся к ИТ юр. лица. Поэтому для любых аналитических задач он малопригоден.
Как писал Иван Покровский в статье с критикой Минпромторга сейчас Минцифры, при большом количестве других претензий, особенно к нормативке, ведёт себя куда приличнее того же Минпромторга.
#russia #data #digital
В рубрике интересных наборов данных, коллекции данных создаваемые из веб-индексов
Dresden Web Table Corpus (DWTC) [1] набор данных состоящий из 125 миллионов таблиц извлеченных из архива веб-индекса Common Crawl․ Последнее обновление было в 2015 году основано на базе в 266ТБ из 3.6 миллиардов веб страниц.
Web Data Commons [2] - это коллекция из многих наборов данных созданных на основе Common Crawl и развиваемая командой университета Маннхейма. В проекте множество наборов данных созданных через извлечение объектов перечисленных в Schema.org из тела веб-страниц и иной мета информации. Например, там же свежий набор данных SOTAB с аннотированными таблицами привязанными к понятиям в Schema.org [3]
ACL Anthology [4] каталог научных публикаций и наборов данных. Включает наборы данных с полной антологией публикаций и цитированием, а также включает множество работ созданных на основе наборов данных таких как Common Crawl, например Learning Word Vectors for 157 Languages [5]
Ссылки:
[1] https://wwwdb.inf.tu-dresden.de/research-projects/dresden-web-table-corpus/
[2] http://webdatacommons.org/
[3] http://webdatacommons.org/structureddata/sotab/
[4] https://aclanthology.org/
[5] https://aclanthology.org/L18-1550/
#opendata #datasets #digitalhumanities
Подборка интересного чтение про данные, технологии и не только:
- Can We Use AI to Communicate With Animals? [1] может ли ИИ помочь в коммуникации с животными? заметка с материалами исследований по этой теме. Примерами когда ИИ использовался для восстановления мертвых языков и того как в 2017 году с помощью алгоритма распознали трели, чириканье и писк мартышек с 90% точностью [2]. Много ссылок, важная тема. Область где применение ИИ может дать реальное изменение в человеческой жизни (и жизни животных тоже).
- The United Nations E-Government Survey 2022 [3] свежий рейтинг развития электронного правительства от ООН. Только в PDF файлах, поэтому на оценки конкретной страны сослаться сложно. Россия там в группе Very High Tier II, то есть с довольно высоким уровнем развития. Из постсоветских стран лидируют страны Балтии и хуже ситуация в Туркменистане.
- Lawless Surveillance [4] научная статья в открытом доступе об огромном объёме слежки в США, по большей части нерегулируемой и "незаконной". Полезно для понимания как это устроено в США и то что это не ограничено только одной страной, а встречается во многих технологических развитых странах.
- The Era of Fast, Cheap Genome Sequencing Is Here [5] компания Illumina, мировой почти монополист в устройствах секвенирования генома, анонсировали новые устройства в которых обещают сокращение времени секвенирования генома вдвое и не более чем за $200 за один геном. Как это повлияет на развитие рынков? Больше компаний будут предлагать услуги расшифровки, цены за расшифровку генома должны будут снижаться, а больше данных геномов будет доступно.
- Wasabi Technologies Closes $250 Million [6] конкурент Amazon Web Services, компания Wasabi Technologies привлекла раунд в $250M инвестиций и обещают технологический стек с возможностью сокращения расходов на 80% по сравнению с Amazon. Это, в первую очередь, касается облачного хранилища аналогичного AWS S3.
Ссылки:
[1] https://lastweekin.ai/p/can-we-use-ai-to-communicate-with
[2] https://www.spectrumnews.org/news/ai-interprets-marmosets-trills-chirps-peeps/
[3] https://publicadministration.un.org/en/Research/UN-e-Government-Surveys
[4] https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4111547
[5] https://archive.ph/C5eQ2#selection-464.0-464.1
[6] https://wasabi.com/press-releases/wasabi-technologies-closes-250-million-in-new-funding-to-usher-in-the-future-of-cloud-storage/
#tech #readings #un #ai
Полезное чтение про данные, технологии и не только:
- datasets-server [1] сервер для работы с наборами данных от Hugging Faces. К уже существующим open source каталогам данных появляется новая категория, каталоги данных ориентированные не просто на data science, а на публичное машинное обучение.
- refurb [2] утилита для языка Python по повышению качества кода. Правил пока мало, работает только на Python 3.10, но результаты интересные. Она не заменяет pylint, не проверяет стиль кода, а именно улучшает имеющийся код.
- Better than JPEG? Researcher discovers that Stable Diffusion can compress images [3] исследователи выяснили что с помощью Stable Diffusion можно достигать лучше сжатия JPEG'ов. Даже интересно когда развитие ИИ достигнет уровня разработки новых алгоритмов сжатия.
- Open Sourcing Venice – LinkedIn’s Derived Data Platform [4] в блоге LinkedIn о платформе работы с данными Venice. Пока не до конца понятно как её использовать саму по себе, она выглядит интегрированной в другие дата-продукты LinkedIn
- Platformatic DB [5] основанный на Node JS движок генерирующий REST API и GraphQL поверх схемы СУБД. Не первый и не последний такой движок, но несомненно надо бы его потестить в работе.
- StockAI [6] "убийца" стоковых каталогов, огромная база стоковых изображений и генератор новых если такого ещё нет. Страшная вещь, поубивает весь стоковый рынок. Интересно какие ещё рынки можно поубивать генераторами изображений? Генератор воллпейперов через ИИ ещё не сделали?
- What is Data Engineering: Part 2 [7] вторая часть описания природы инженерии данных от Pragmatic Programmer. Полезно для всех кто работает в этой области.
Ссылки:
[1] https://github.com/huggingface/datasets-server
[2] https://github.com/dosisod/refurb
[3] https://arstechnica.com/information-technology/2022/09/better-than-jpeg-researcher-discovers-that-stable-diffusion-can-compress-images/
[4] https://engineering.linkedin.com/blog/2022/open-sourcing-venice--linkedin-s-derived-data-platform
[5] https://oss.platformatic.dev/
[6] https://www.stockai.com/
[7] https://newsletter.pragmaticengineer.com/p/what-is-data-engineering-part-2
#opensource #data #datatools #readings
В рубрике интересных наборов данных Bible geocoding data [1] набор данных по геокодированию мест упомянутых в библии. Автор занимался этим с 2007 года и в прошлом году существенно обновил предыдущую работу. О самой инициативе и данные для Google Earth в формате KMZ есть на его сайте [2] и там же у него на сайте OpenBible разного рода эксперименты по визуализации [3].
Из весьма интересного - это AI-Assisted Bible Study [4] суммаризатор ответов и вопросов по главам библии через использование ИИ.
В данном случае библия важный пример, но сам подход ей не ограничивается. Один из путей/способов развития цифровой гуманитаристики - это подходы "всё-код" и "всё-данные". Любое художественное, религиозное или документальное произведение можно рассматривать как базу данных. Можно, например, геокодировать "Войну и мир", превращать в граф знаний "Властелин колец" и остальные произведения Толкиена, проводить интерактивную реконструкцию исторических событий. О многих подобных проектах я пишу время от времени [5].
Важное отличие современных проектов в этой области - это открытость данных и кода. Открытые проекты позволяют создавать новые проекты/продукты/исследования на их основе.
Ссылки:
[1] https://github.com/openbibleinfo/Bible-Geocoding-Data
[2] https://www.openbible.info/geo/
[3] https://www.openbible.info/labs/
[4] https://www.openbible.info/labs/ai-bible-study/
[5] /channel/begtin/4147
#datasets #opensource #opendata #digitalhumanities
В рубрике больших наборов данных Awesome Google Earth Engine Community Datasets [1] каталог геоданных специально подготовленных для быстрого подключения к Google Earth. В каталоге, в общей сложности 105.7 TB данных, 584 тысячи изображений, всего коллекций с изображениями 268, с описаниями объектов 414 и более 518 миллионов характеристик (features) объектов в общей сложности.
Из особенно интересного, там есть данные LandScan [3] собираемые ORNL (Oak Ridge National Laboratory) [4] в США. LandScan даёт возможность просматривать плотность населения на территориях с очень высоким разрешением.
Кроме того там много других интересных наборов данных для всех кто работает с геоданными.
Ссылки:
[1] https://samapriya.github.io/awesome-gee-community-datasets/
[2] https://samapriya.github.io/awesome-gee-community-datasets/stats/
[3] https://samapriya.github.io/awesome-gee-community-datasets/projects/landscan/
[4] https://landscan.ornl.gov
#opendata #datasets #geo #googleearth #datacatalogs
В рубрике полезных инструментов для обработки данных VisiData [1]. Это весьма популярный в ограниченных кругах открытый продукт по просмотру и обработке данных через визуальный текстовый интерфейс. Такие инструменты ещё называют TUI (Text User Interface). Для кого-то это будет напоминать утилиты вроде Dos Navigator / Norton Commander / Vim и ещё огромное число утилит для Unix / DOS. А сейчас это вновь набирающее оборот явление, можно сказать что переоткрываемое.
VisiData позволяет просматривать файлы и базы данных делая запросы, листая результаты и предоставляя возможность обрабатывать строки и колонки с данными. Плюс он там ещё может считать статистику по файлам, строить гистограммы и ещё много чего.
Хорошая утилита, как по мне. Идет, почти, вровень с open refine когда дело касается обработки данных (data wrangling / refining).
Как и все подобные GUI / TUI инструменты он, в первую очередь, полезен тем кто решает задачи обработки данных без программирования. Например, дата-журналистам и аналитикам.
Ссылки:
[1] https://github.com/saulpw/visidata
#data #datatools #dataengineering #datajournalism #datawrangling #opensource
Разного рода накопившиеся технологические размышления и не только:
1. Читаю много размышлений о том что моделирование данных отмирает, из последнего [1], автор пишет
о том что у этой ниши нет бизнес модели и все активно ломанулись в направлении озер данных и отсюда столько болот данных (data swamps). Рассуждения обоснованные, а вот стенания нет. Моделирования данных никуда не исчезает, оно перестаёт быть вещью в себе и становится частью чего-то большего. Например, прослеживаемости данных (data lineage) и контроля качества и наблюдаемости (data quality и data observability) которые хотя и часто упоминаются в формате хайпа на грани булшита. А самое главное важно помнить что данных сейчас производится значительно больше чем даже десятилетие назад. Осуществлять тщательное моделирование всего практически невозможно, поэтому дата-команды определяют ключевое и уделяют этому много внимания, а остальное, действительно, часто находится в болоте данных.
2. Вижу всё более распространённую связку rust + python. На rust переписывают модули ранее написанные для Python или пишут их с нуля и делают очень быстрыми. Пример, connector-x [2] библиотека для быстрой загрузки датафреймов из СУБД в Pandas и иные движки для датафреймов․ Реально быстрый движок. И таких примеров много. Хочешь чтобы твой код на Python работал быстро? Перепиши его или зависимые библиотеки на Rust!
3. Вижу явный тренд когда в вакансиях дата инженеров, аналитиков и дата сайентистов начинают чуть ли не первым пунктом писать "Навык документирования своей работы". У меня не хватает слов передать насколько это реально проблема для программистов, разработчиков баз данных, инженеров данных и всех остальных это реально делать. Это не софт скилл уже, а хард скилл высокого порядка. И беда в том что этому не учат, хотя среднего уровня разработчик способный и привычный документировать свою работу не в пример ценнее высококвалифицированного после ухода которого разваливается всё потому что никто не знает что делать с оставшимся унаследованным кодом.
4. О софт скиллах и открытых проектах, вижу как взлетают и падают опенсорсные проекты по автоматизации чего-либо по модели: "открытый код можно скачать, а ещё мы предлагаем наш продукт как облачный с нашей крутой поддержкой". Так вот взлетают продукты с мощными сообществами и падают продукты с плохой коммуникацией. Вижу такие примеры успеха с dbt или Datahub и вижу противоположное с Splitgraph и Qri. Это из тех кто у меня на виду прямо сейчас. В то же время размер сообщества вообще не показатель его активности. Например, в сообществе Open Data Community в Slack 6641 участник, что довольно много. Но активность там - одно сообщение в месяц, что совсем мало. Очень многое зависит от организаторов сообществ, наличия общих тем и наличия потребности в коммуникации.
Ссылки:
[1] chris.jackson_46175/so-who-killed-data-modelling-f39f711c68" rel="nofollow">https://medium.com/@chris.jackson_46175/so-who-killed-data-modelling-f39f711c68
[2] https://github.com/sfu-db/connector-x
#thoughts #data #startups
В телеграм канале Минцифры РФ новость о том что теперь доступна услуга получения выписки о наличии компании в реестре ИТ компаний [1]. Казалось бы, новая госуслуга, это хорошо? Но нет, реестры компаний как и другие данные ранее публиковались органами власти. Реестр ИТ компаний публиковался на сайте Минцифры РФ в виде Excel файла в соответствующем разделе [2]․ Теперь для получения данных надо авторизоваться на госуслугах и есть возможность получить информацию только про себя.
Безусловно это снижение открытости аккредитации ИТ организаций и, безусловно, если формальной причиной для этого является попытка избежать санкций, то это довольно бессмысленный шаг. Для санкций на ИТ сектор достаточно взять перечень всех действующих компаний из ЕГРЮЛа и наложить санкции целенаправленно на них сколько бы их там не было 5-10-20-100 тысяч, неважно. Можно наложить санкции на целый сектор.
Поэтому единственной причиной закрытия может быть только попытку избежать любой формы государственного и гражданского контроля за процессом аккредитации. Путь это сомнительный и усилия министерства по "исправлению" процесса аккредитации закрытием реестра аккредитованных дискредитируется весьма существенно. Он же не засекречен, так или иначе этот список получить можно если не через сайт Минцифры, то иным образом, сопоставляя ряд источников.
И чего опасаться то? Что там останутся реселлеры разного рода Консультант-плюса и иных систем ? Или туоператоры и семейные отели? Или заводы которым мало брони от оборонки и они ещё и ИТ аккредитацию получили?
Зря я хвалил Минцифры ранее, ох зря.
Ссылки:
[1] /channel/mintsifry/1580
[2] https://digital.gov.ru/ru/activity/govservices/1/#section-list-of-accredited-organizations
#openness #digital #itmarket
В рубрике полезных инструментов для публикации данных roapi [1] фреймворк по публикации статических наборов данных, написан на Rust, а внутри использует Apache Arrow и Datafusion. Автор описывает его как то что не надо написать ни строчки кода что, не совсем так, вместо кода надо писать конфиг на YAML, но даже при этом возможности весьма немалые. Фактически, из коробки, получаем REST API, GraphQL и SQL (через HTTPS и протокол Postgres Wire) для доступа к выбранному набору данных.
Можно делать API на основе файлов CSV, JSON, NDJSON (JSON lines), Parquet, баз SQLite и MySQL.
Пока это лучший движок для таких задач, по крайней мере по описанию, конечно, ещё надо интенсивно тестировать.
Я помню как ещё 10 лет назад командой data.gov публиковался простой PHP скрипт csv-to-api [2], а я лет 9 назад писал простой движок apiready [3] генерировавший чуть более продвинутое API выделяя отдельно справочные значения.
Через много лет лично я пришёл к архитектуре:
1) Положи все данные в СУБД
2) Используй обертку вокруг данных в СУБД
и написал и опубликовал движок apicrafter [4] позволяющий такую обёртку делать вокруг базы в MongoDB.
Но, возможно, roapi - это лучший выбор из имеющихся для табличных данных. Потому что поддержка сразу многих протоколов для доступа к данным имеет значение и упрощает доступ из разных приложений и в разных сценариях использования.
Ссылки:
[1] https://github.com/roapi/roapi
[2] https://github.com/project-open-data/csv-to-api
[3] https://github.com/ivbeg/apiready
[4] https://github.com/apicrafter/apicrafter
#datatools #api #openapi
Я довольно давно не рассказывал про развитие инструментов metacrafter для выявления семантических типов данных и реестра семантических типов данных metacrafter-registry которыми давно занимаюсь.
Изменений там много, в основном в части постепенно улучшения списка типов данных, связанности с базами Schema.org и Wikidata. А есть одно изменение важное именно для инженерии данных - это экспорт реестра в формат бизнес глоссария (Business Glossary) используемого в каталоге данных Datahub.
Для тех кто не знает, бизнес глоссарий, это смысловые характеристики полей данных записываемые в каталогах данных. Не обязательно семантический/смысловой тип поля, но может быть, например, уровень его конфиденциальности, чувствительности данных и так далее.
Datahub - это опенсорсный каталог корпоративных данных [1] созданный некогда в LinkedIn и развиваемый сейчас компанией Acryl. Среди его достоинств есть импорт данных, в том числе, для бизнес глоссария.
И вот для тех кто хочет загрузить туда типы данных из Metacrafter'а теперь это можно сделать воспользовавшись файлом metacrafter.yml [2] из репозитория проекта. Выглядит результат примерно как на вот этом скриншоте.
Следующий шаг в интеграции metacrafter'а в непосредственно процесс загрузки метаданных в Datahub, так чтобы привязку поля к данным можно было бы осуществлять автоматически.
Ссылки:
[1] https://datahubproject.io
[2] https://github.com/apicrafter/metacrafter-registry/tree/main/data/datahub
#opensource #semanticdatatypes #dataengineering #apicrafter #metacrafter
Для тех кто следит наблюдает за теми организациями и лицами кто подпал под санкции ЕС, США, Канады и других стран я напомню про такой замечательный проект как OpenSanctions [1] простой и понятный агрегатор санкционных и иных списков, например, они включают списки PEPs'ов (Politically Exposed Persons) и много чего другого.
Всё это доступно в виде наборов данных и в виде API которое авторы обновили буквально 3 дня назад и сделали его многократно удобнее [2]. Внутри проекта используется графовая база Neo4J [3], а кроме открытых данных у проекта есть бизнес модель основанная на платной подписке для коммерческих сервисов. При этом, для журналистов и аналитиков исследователей все данные бесплатны и не имеют ограничений.
Проект интересный, кроме России там ещё много какие страны охвачены так что полезно для разного.
Ссылки:
[1] https://www.opensanctions.org/
[2] https://www.opensanctions.org/articles/2022-10-04-saas-api/
[3] https://neo4j.com/blog/graphs-power-opensanctions-interview-with-friedrich-lindenberg/
#opendata #datasets
Актуальная и сейчас часто обсуждаемая инженерами тема Data contracts (дата-контракты). По своему смыслу - это создание и применение структурированных спецификаций на предоставление и получение данных, с соблюдением к контроля версий и управления кодом этих спецификаций.
В блоге Data Products хороший вводный текст пол дата-контракты в контексте современного стека данных [1]. Многое в реализации сейчас упоминается, или в контексте спецификации формата данных Avro, или через реестр схем Kafka. Он называется Confluent (Kafka) Schema Registry.
В основном разговоры про дата-контракты идут в контексте работ множества разделенных команд внутри больших компаний. Когда за разные продукты отвечают небольшие группы разработчиков и они зависят друг от друга и, в первую очередь, от тех команд которые предоставляют данные из первоисточников.
Главное не путать data contracts из инженерии данных с data contracts из Windows Communication Framework (WCF) входящем в .NET. Название совпадают, применение тоже похоже, но в в инженерии данных - это универсальное описание схемы данных, а в WCF - это узко заточенная спецификация.
Ссылки:
[1] https://dataproducts.substack.com/p/an-engineers-guide-to-data-contracts
#dataengineering
В рубрике полезного чтения про данные, технологии, программирование и не только:
- Software engineering practices [1] простые и полезные практики софтверной разработки. Лично я со всеми согласен, особенно с тем что нужно делать шаблоны для проектов.
- Self-hosting a Web scraping Farm [2] о том как организовать ферму устройств на базе Raspberry Pi для скрейпинга данных.
- Huak [3] менеджер пакетов для языка Python с благозвучным названием написанный на Rust. Слова huak huak в продакшн начинают приобретать новый смысл. Как минимум любопытная штука сама по себе.
- The Illustrated Stable Diffusion [4] о том как работает Stable Diffusion, генератор изображений на основе текстового описания. С картинками и пояснениями. Довольно доходчиво даже для неспециалистов в machine learning
- What to consider when using text in data visualizations [5] о чём думать когда подбираешь способ визуализации текста в блоге сервиса Datawrapper и с большим числом примеров
Ссылки:
[1] https://simonwillison.net/2022/Oct/1/software-engineering-practices/
[2] tp4348/self-hosting-a-web-scraping-farm-699c12bfd138" rel="nofollow">https://medium.com/@tp4348/self-hosting-a-web-scraping-farm-699c12bfd138
[3] https://github.com/cnpryer/huak
[4] https://jalammar.github.io/illustrated-stable-diffusion/
[5] https://blog.datawrapper.de/text-in-data-visualizations/
#opensource #readings #ai #softwareengineering
Не могу не упомянуть последнюю публикацию Счетной палаты РФ по поводу открытости Минстроя. Нет, Минстрой далеко не самое открытое ведомство, не надо этому верить. Как минимум в части открытых данных, большая часть открытых данных Минстроя не обновлялись 5 лет. Остальные критерии по которым оценивались органы власти - весьма надуманные. В первую очередь потому что рассматривать критерии открытости диалога в ситуации с уничтоженными независимыми СМИ в России невозможно.
В этом году мы в @infoculture не стали проводить День открытых данных этой весной считая что говорить об открытости российского государства сейчас будет двулично. Я считал и считаю вот этот последний доклад Счетной палаты не просто слабым, а просто некорректным. Открытость государства сейчас снижается довольно резко. Нельзя было проводить её оценку так словно ничего не происходит.
Поэтому нет, Минстрой не самый открытый орган власти. Сравнивать органы власти по открытости сейчас бессмысленно.
#opendata #russia #opengov
Для тех кто изучает открытые данные открытой части федерального бюджета России напомню что официальное опубликование бюджета происходит в системе СОЗД Государственной Думы РФ это законопроект № 201614-8 [1]․ Внутри него 602 файла в форматах PDF и DOC и для тех кому сложно с ними работать у нас в на сайте архива мы сделали копию всех файлов, 348 мегабайт ZIP архив [2]. Содержание архива есть в списке извлеченных с веб-страницы ссылок файле dataset.csv [3] и в файле processed.csv [4] по итогам выгрузки файлов.
Как работать с этими документами ? Внутри PDF документов и DOC файлов тексты и гигантские таблицы на тысячи строк. Для извлечения текстов и таблиц из PDF документов я рекомендую использовать коммерческие продукты вроде ABBYY Finereader. А для DOC файлов таблицы извлекаются другими инструментами.
Например, таблицы из файлов DOCX извлекаются с помощью утилиты docx2csv [5] о которой я ранее писал и я же её автор. Таблицы извлекаются в командной строке командой экстракт. Например вот такая команда docx2csv extract DACE8F84-B774-4B5B-B747-F3189B25E596.docx создаст две таблицы из этого файла.
Ограничение в том DOCX файлов среди этих файлов всего 49, а файлов в формате DOC 45 и самые большие таблицы внутри DOC файлов.
Поэтому DOC надо преобразовать в DOCX. При наличии MS Office на компьютере это автоматизируется с помощью утилиты Wordconv которая идёт в его базовой поставке. Вот тут есть инструкция [6] для командной строки.
Прилагаю полученный таким образом набор данных ведомственной структуры расходов фед. бюджета.
Ссылки:
[1] https://sozd.duma.gov.ru/bill/201614-8
[2] https://cdn1.ruarxive.org/public/datacollect/budget2023/files.zip
[3] https://cdn1.ruarxive.org/public/datacollect/budget2023/dataset.csv
[4] https://cdn1.ruarxive.org/public/datacollect/budget2023/processed.csv
[5] https://github.com/ivbeg/docx2csv/
[6] https://stackoverflow.com/questions/2405417/automation-how-to-automate-transforming-doc-to-docx
#opendata #opensource #datasets #budget #russia #government
Австралийская схема данных (DATA Scheme) [1] - это концепция доступа к данным продвигаемая их офисом национального комиссара по данным. В Российской логике наименований это звучало бы примерно как "Уполномоченный по данным", поскольку должность персонализированная.
В основе схемы модель взаимодействия с потребителями данных в части предоставления доступа к чувствительным госданным через аккредитацию сервис провайдеров и пользователей.А также определение списка "дата стражей" (data custodians), органов власти отвечающих за доступ к определенным данным.
Особенность в том что это не открытые данные, а данные доступные на определенных условиях. На каких-то ранних стадиях обсуждалось что доступ будет, также, у бизнеса, но в финальной схеме описывается модель с доступом к данным у органов власти и университетов.
Всё это можно сравнить с российской инициативой НСУД (Национальная система управления данными) с той разницей что в австралийской модели всё происходит через специальную платформу Data Place. Она, фактически, работает скорее по академической модели предоставления доступа к чувствительным данным, запросы и обоснованные отказы или согласия.
При этом, австралийское правительство явным образом обещает что если запрашиваемые данные не будут чувствительными, то они готовы публиковать их на data.gov.au, портале открытых данных Австралии [3]
Ссылки:
[1] https://www.datacommissioner.gov.au/the-data-scheme
[2] https://www.dataplace.gov.au/
[3] https://www.dataplace.gov.au/articles/KA-01031
#opendata #australia #datasharing
В качестве регулярных напоминаний, хотя и разработка кода не основное моё занятие, я довольно много публикую открытого кода, более всего для обработки данных. В первую очередь для поддержания собственных навыков в Python и для того чтобы были инструменты для того что сам же делаешь.
Работа с данными
- datacrafter - ETL движок для NoSQL данных с обработкой их с помощью конфигурационных файлов написанных на YAML. Заход на аналог Meltano или Dagster, но для NoSQL. Используется в datacrafter.ru
- apicrafter - автоматизированная оболочка для генерации REST API для доступа к данным в базах MongoDB. Используется в datacrafter.ru
- metacrafter - утилита по автоматической идентификации семантических типов данных. Используется для идентификации персональных данных в наборах данных. Поддерживает базы данных с SQL, файлы JSON, CSV, JSON lines, BSON и MongoDB
- undatum - утилита для командной строки для обработки иерархических данных в JSON lines и BSON. Поддерживает также CSV, но это не основная возможность. Позволяет считать статистику, извлекать частоты значений, уникальные значения, преобразовывать данные
- mongorefine - экспериментальная библиотека для Python по обработке данных в MongoDB как если бы MongoDB была бы колоночной, а не документальной базой. Позволяет проводить операции над коллекциями данных на колоночном уровне: добавлять, удалять, преобразовывать. Функции похожи на функции OpenRefine, известного открытого инструмента для подготовки данных
- mongo2md - утилита и библиотека для Python по автоматическому документированию коллекций для MongoDB
- diffmongo - библиотека для Python по сравнению данных в коллекциях MongoDB
Парсинг и сбор данных
- newsworker - библиотека для Python по автоматическому извлечению текстов новостей из сайтов где нет RSS лент. Работает полностью автоматически, разбирает структуру страницы, идентифицирует картинки, даты, тексты и формирует новостную ленту. Использует библиотеку qddate
- qddate - библиотека для Python для автоматической идентификации дат в любом написании. Умеет распознавать более 300 форматов на многих языках. Используется во многих других репозиториях и проектах.
- russiannames - библиотека для Python по автоматическому парсингу имён на русском языке, идентификации гендера и немножко национальных признаков. Умеет идентифицировать ФИО в форматах "Иван Петров", "Сидоров Иван Петрович", "Иванов В.А.", "Иванова А." и тд. Включает большую базу фамилий, имен и отчеств.
- docx2csv - библиотека для Python и утилита извлечения таблиц из файлов docx. Очень удобна для генерации CSV файлов из разного рода корпоративных и госотчетов. Но только для docx
- lazyscraper - утилита командной строки по быстрому извлечению таблиц и иных данных из веб-страниц с минимальными усилиями кодирования. Фактически только через написание xpath запроса. Изначально хотелось сделать её ещё более умной, но и это оказалось полезным.
Работа с веб-архивами и цифровая архивация
- metawarc - утилита для автоматизации обработки WARC файлов. Изначально создавалась в целях расследований для автоматизации извлечения свойств файлов MS Office и PDF из веб-архивов. Когда ты вначале всё архивируешь, а потом уже из веб архива собираешь метаданные. Я с её помощью проводил исследования использования пиратского ПО в российских госорганах несколько лет назад.
- apibackuper - утилита по автоматизации выгрузки данных из общедоступных API. Используется в Национальном цифровом архиве и в datacrafter.ru для формирования наборов данных
- ydiskarc - утилита для архивации данных по публичным ссылкам на Яндекс диск. Используется в Национальном цифровом архиве для архивации папок с Яндекс Диска
- wparc - утилита по архивации контента сайтов на Wordpress и медиа файлов с этих сайтов посредством встроенного в Wordpress REST API. Используется в Национальном цифровом архиве
- spcrawler - утилита по выгрузке данных из сайтов на базе Sharepoint используя их общедоступное API. Не завершена, но в работе.
#opensource #datatools #data #commandline #python
Если Вы ещё думаете какой язык программирования изучать, то вот маленькая подсказка в виде графика популярности языков программирования для data science из доклада State of data science проведенного KDNuggets в 2021 году и картинка отметок применимости языков программирования для разного рода задач связанных с данными. Во втором случае, ИМХО, не вполне корректно про Rust и Go, для этих языков сейчас много что написано расширяющего возможности работы с данными, но в остальном похоже на правду.
А также, в добавок и для разноообразия источник этих материалов и текст с рассуждением на испанском языке на портале открытых данных Испании [1] (не всё же англоязычные тексты постить, в самом деле).
Ссылки:
[1] https://datos.gob.es/es/blog/cuando-utilizar-cada-lenguaje-de-programacion-en-ciencia-de-datos
#data
На РБК вышла статья с комментариями участников рынка про отъезд ИТ специалистов [1], там есть и мои комментарии и мне тоже есть что к этому добавить. Вообще много что есть написать, но требуется время чтобы упаковывать эти мысли в сухой профессиональный, а не эмоциональный текст.
Пишу, насколько возможно, сухо и коротко, по возможности без иронии:
1. Настроения плохие, мысли об отъезде есть даже у тех кто не собирался уезжать потому что их тут держат: престарелые родители, ипотека, семья, дети, обязательства и тд. Из последнего что я слышу в личных разговорах они звучат примерно так. "Они нас превращают в животных, мы теперь даже не можем думать о будущем", "Если бы нас напали я бы сам в военкомат пошёл, так не напали же!". Это дословно и буквально.
2. Причины не только в "частичной мобилизации", а в том как всё это проводится. Российские законы/указы Пр-та и Пост-я Пр-ва в последние годы почти все перешли в жанр "Всех расстрелять!". Они принимаются в самой неудобоваримой форме, а потом уже "поднимается вой" (читай - резкое возмущение) тех кого они затрагивают и начинаются запросы, письма, потоки лоббистов чтобы хоть чуточку сбавить их "людоедскость" (читай - неприемлимость). Каждый может гадать почему так: потому что неграмотные нормотворцы, потому что паника у авторов этих норм или потому что кто-то открыл(-и) кассовые комнаты и взимают оброк с просителей за конкретные защищаемые интересы. Лоббизм в России выродился в "защитный лоббизм", не того чтобы продвинуть свои интересы, а того чтобы добиться чтобы твои интересы пострадали меньше.
3. Поэтому когда принимается указ Пр-та после которого (неожиданно!) оказывается что он неконкретный, что его надо разъяснять, что вместо нормативных разъяснений идут ненормативные разъяснения от пропагандистов всех цветов радуги, то это поражает главное - полнейшее недоверие будущему. И смесь раздражения, злобы, уныния у тех кто будущего не видит.
4. Это звучит как "если они такое $&*$# вот так приняли, то что им помешает завтра принять закон который расширит категории военнообязанных или ещё чего". Мне лично трудно пока измерить уровень произошедшей делигитиматизации, но и без того невысокий уровень доверия гос-ву упал ещё ниже.
5. Тех кто не поддаётся панике куда больше волнует не мобилизация, а разговоры про применение ядерного оружия. Все кто знает как российская медийная машина устроена понимают что всех кто говорит про ядерное оружие могли бы легко заткнуть чтобы не нагнетать панику. Но их не затыкают, что означает что они чьи то интересы отрабатывают. Любое применение ядерного оружия сейчас - это перевод тех кто это сделает в статус военных преступников автоматически. Но может так оказаться что нас это волновать уже не будет.
6. Многие хвалят Максута Шадаева за то что он вписывается сейчас за ИТ рынок в РФ и делает всё возможное чтобы под мобилизацию попало меньше ИТ специалистов. Я ничего плохого про Максута сказать не могу, при всех возможных грехах он человеческого облика никогда не терял. Но, мы же все понимаем, что на настроения уезжать или нет, влияет не он. Меры доступные Минцифры РФ ограничены их полномочиями, они были бы хороши лет 10-15 назад, а сейчас не они могут исправить текущую ситуацию. В лучшем случае, чуть-чуть, сгладить.
Я бы сказал что у меня есть какой-то рецепт как делать всё правильно, но у меня его нет. Процитирую Фазиля Искандера из "Кролики и удавы" - "Если мудрость не может творить добро, она удлиняет путь зла". Будьте мудры.
Я, ещё раз подчеркну, что пишу в России и остаюсь в России так долго как только смогу.
Ссылки:
[1] https://www.rbc.ru/technology_and_media/28/09/2022/633324f39a7947518c6fd452
#it #itmarket #thoughts
В рубрике как это работает у них, вышло обновление [1] документа политики управления и обмена данными [2] National Institutes of Health (NIH) США через который преимущественно осуществляется госфинансирование исследований в области здравоохранения. NIH - это крупнейший грантодатель на биомедицинские исследования в мире и поэтому его политики устанавливают "правила игры" для большей части исследовательских центров в области биомедицины в США.
В документе есть три ключевых акцента.
1. Использование устоявшихся репозиториев. Это означает не создание своих порталов/репозиториев с нуля, а использование и не через персональные аккаунты, а через устоявшиеся институциональные репозитории такие как Dryad, например.
2. Своевременная публикация. Данные исследований должны публиковаться сразу же с научной работой или же по завершению работы в целом (определяется сроком завершения гранта выделенного на работу).
3. Подтверждение качества данных. На качестве данных делается существенный акцент и оно определяется как возможность проверки и воспроизведения исследования на их основе.
Ссылки:
[1] https://blog.datadryad.org/2022/09/23/u-s-policy-dryads-role-in-the-nihs-new-policy-for-data-management-and-sharing/
[2] https://grants.nih.gov/grants/guide/notice-files/NOT-OD-21-013.html#_ftn8
#opendata #datapolicy #openaccess
О том что Apple удалили из магазина приложений все приложения связанные с холдингом VK, это все, наверняка, уже прочитали. Вроде как ещё не удалили приложение Одноклассников, но если удаление было из-за санкций, то это вопрос только времени. Пока видно что в Google Play приложения MailRu Group остались, но, опять же, если удаление из-за санкций, то вероятность их исчезновения велика.
Правда для Android'а есть RuStore по приватности приложений в котором мы делали исследование совсем недавно и, если кратко, всё там даже хуже чем в Google Play.
Но я о другом. Много лет я пишу и два исследования мы провели о том что во многих приложениях содержатся внешние трекеры позволяющие третьим сторонам получать данные действий пользователей. В лидерах распространения таких трекеров глобальные рекламные корпорации вроде Facebook и Google, но, в России тоже есть свои игроки. Один из крупнейших из которых теперь холдинг VK.
Например, во многих приложениях стоят трекеры myTracker и myTarget от MailRu Group. В проекте Exodus Privacy посчитано 1281приложение с myTracker и 2826 с myTarget , но в реальности их гораздо больше. Кроме этих рекламных трекеров многие разработчики интегрируют SDK для авторизации во Вконтакте, есть как минимум 845 таких приложений. Всё это про приложения для Android, но SDK myTarget, myTracker и VKontakte есть и для iOS.
А теперь, внимание, вопрос․ Будут ли следующим шагом платформы Apple и Google предупреждать авторов приложений использующих трекеры VK о том что их приложения могут могут быть удалены из магазинов приложений если они этот код из приложений не уберут?
Следующим постом я запилил опрос на ту же тему.
#privacy #security #vk #mobileapps #trackers #android #apple