О сжатии данных
Вначале немного общего контекста.
Один из трендов разработки ПО, игр, сайтов, мобильных приложений последних десятилетий был и остаётся рост размера самих программ и связанных с ними цифровых артефактов. Это же относится и к данным, данных становится больше, хранить их в как-есть оказывается накладно и для передачи, и для стоимости хранения, и для обработки. Собственно одна из причин появления новых алгоритмов сжатия вроде Zstandard, Brotli и др. от бигтехов в том что внутренний и глобальный запрос на повышение эффективности хранения и передачи данных есть и он давно уже перерос специализированные и академические области применения и новые алгоритмы приходят теперь не из задач связанных с академическими проектами, вроде появления алгоритма LZO, а именно из практической массовой потребности.
А теперь немного тезисно:
- несмотря на снижение стоимости хранения данных и повышения производительности компьютеров в задачах построения любых больших систем стоимость хранения данных имеет прямую измеримость в стоимости носителей, аренды облачного хранения и стоимости передачи данных
- в большинстве случаев применение методов компрессии сейчас - это инженерная задача поскольку инструментов много, а известны они не все и применяются не все
- разные задачи требуют разные подходы - холодное хранение цифровых артефактов, хранение данных для автоматизированной обработки, оперативная доступность, критичность времени подготовки (упаковки данных) и распаковки. и так далее
Самые очевидные правила:
1. Во всём что касается хранения структурированных данных когда нужны эталонные данные то применение одного из способов сжатия: Zstandard, Xz, GZip. Zstandard как наиболее сбалансированный по скорость/уровень сжатия, Xz для долгосрочного хранения, а Gzip для работы с инструментами которые могут не поддерживать остальные способы сжатия
2. В случаях когда нет необходимости хранить оригинальные данные - сохранять их в Parquet со сжатием в Zstd. В такой конфигурации данные остаются пригодными для машинной обработки и существенно меньшего объёма
А теперь не самое известное об алгоритмах компрессии:
1. Есть много алгоритмов сжатия гораздо лучше сжимающих данные ценой длительной работы и множество ресурсов. Тем кто интересуется будет интересно почитать о Hutter Prize конкурса по сжатию данных человеческих знаний (Википедии) где можно найти множество программ дающих качественно лучшее сжатие чем общеизвестные инструменты
2. Многие популярные архиваторы дают плохое сжатие, как в угоду скорости, так и просто из-за слабой технической реализации. Есть такие экзотические инструменты как precomp которые пережимают файлы повторно находя в двоичном потоке сигнатуры сжатых потоков, расжимая их и сжимая снова улучшенными алгоритмами. Важное ограничение в том что это всё ещё не production ready инструмент и в том что сжатый файл обяззательно надо расжимать перед использованием.
3. Но есть файлы которые можно пересжимать без потери их реюзабельности. Много лет назад я делал утилиту filerepack которая пересжимала файлы в zip контейнерах. Например, у вас накопились файлы MS Office в docx, pptx, xlsx и других форматах и есть желание их уменьшить. filerepack последовательно пересжимал все файлы внутри контейнера и сам контейнер, но делал это с потерями применительно к файлам изображений. Для презентаций и документов в 99% случаев это было приемлемо, а также в ZIP контейнерах хранятся файлы из LibreOffice (OpenDocument), файлы EPUB и многие другие. Те же приложения для Android и Apple IOS.
4. Один из способов работы с архивами - это их монтирование в операционную систему. Это позволяет некоторым приложениям не работающим со сжатыми данными, тем не менее это делать. Пример, утилита mount-zip и более универсальный инструмент Archivemount
А также существует множество других подходов, инструментов и трюков. Чем больше дискового пространства ты используешь, тем больше думаешь о том как на нем экономить;)
#texts #thoughts #data #compression
Вначале немного общего контекста.
Один из трендов разработки ПО, игр, сайтов, мобильных приложений последних десятилетий был и остаётся рост размера самих программ и связанных с ними цифровых артефактов. Это же относится и к данным, данных становится больше, хранить их в как-есть оказывается накладно и для передачи, и для стоимости хранения, и для обработки. Собственно одна из причин появления новых алгоритмов сжатия вроде Zstandard, Brotli и др. от бигтехов в том что внутренний и глобальный запрос на повышение эффективности хранения и передачи данных есть и он давно уже перерос специализированные и академические области применения и новые алгоритмы приходят теперь не из задач связанных с академическими проектами, вроде появления алгоритма LZO, а именно из практической массовой потребности.
А теперь немного тезисно:
- несмотря на снижение стоимости хранения данных и повышения производительности компьютеров в задачах построения любых больших систем стоимость хранения данных имеет прямую измеримость в стоимости носителей, аренды облачного хранения и стоимости передачи данных
- в большинстве случаев применение методов компрессии сейчас - это инженерная задача поскольку инструментов много, а известны они не все и применяются не все
- разные задачи требуют разные подходы - холодное хранение цифровых артефактов, хранение данных для автоматизированной обработки, оперативная доступность, критичность времени подготовки (упаковки данных) и распаковки. и так далее
Самые очевидные правила:
1. Во всём что касается хранения структурированных данных когда нужны эталонные данные то применение одного из способов сжатия: Zstandard, Xz, GZip. Zstandard как наиболее сбалансированный по скорость/уровень сжатия, Xz для долгосрочного хранения, а Gzip для работы с инструментами которые могут не поддерживать остальные способы сжатия
2. В случаях когда нет необходимости хранить оригинальные данные - сохранять их в Parquet со сжатием в Zstd. В такой конфигурации данные остаются пригодными для машинной обработки и существенно меньшего объёма
А теперь не самое известное об алгоритмах компрессии:
1. Есть много алгоритмов сжатия гораздо лучше сжимающих данные ценой длительной работы и множество ресурсов. Тем кто интересуется будет интересно почитать о Hutter Prize конкурса по сжатию данных человеческих знаний (Википедии) где можно найти множество программ дающих качественно лучшее сжатие чем общеизвестные инструменты
2. Многие популярные архиваторы дают плохое сжатие, как в угоду скорости, так и просто из-за слабой технической реализации. Есть такие экзотические инструменты как precomp которые пережимают файлы повторно находя в двоичном потоке сигнатуры сжатых потоков, расжимая их и сжимая снова улучшенными алгоритмами. Важное ограничение в том что это всё ещё не production ready инструмент и в том что сжатый файл обяззательно надо расжимать перед использованием.
3. Но есть файлы которые можно пересжимать без потери их реюзабельности. Много лет назад я делал утилиту filerepack которая пересжимала файлы в zip контейнерах. Например, у вас накопились файлы MS Office в docx, pptx, xlsx и других форматах и есть желание их уменьшить. filerepack последовательно пересжимал все файлы внутри контейнера и сам контейнер, но делал это с потерями применительно к файлам изображений. Для презентаций и документов в 99% случаев это было приемлемо, а также в ZIP контейнерах хранятся файлы из LibreOffice (OpenDocument), файлы EPUB и многие другие. Те же приложения для Android и Apple IOS.
4. Один из способов работы с архивами - это их монтирование в операционную систему. Это позволяет некоторым приложениям не работающим со сжатыми данными, тем не менее это делать. Пример, утилита mount-zip и более универсальный инструмент Archivemount
А также существует множество других подходов, инструментов и трюков. Чем больше дискового пространства ты используешь, тем больше думаешь о том как на нем экономить;)
#texts #thoughts #data #compression
✍6🔥5❤2
Свежая статья The Geopolitics of Surveillance Capitalism от исследователей из Гарварда о том что "Наблюдающий капитализм" - это целенаправленно выстроенная система геополитики где у США роль ангела хранителя следящих за гражданами в США и по всему миру компаниями. Текст, конечно же, с отсылками на книгу Шошанны Зубофф "Surveillance Capitalism" название которой присутствует в названии этой статьи.
Это большая и важная тема столь мало охваченная поскольку, ни правительствам, ни бигтехам финансировать такие работы и исследования совершенно неинтересно.
В целом же статья полезная для тех кто хочет почитать о том как устроен мир.
#ai #digital #regulation
Это большая и важная тема столь мало охваченная поскольку, ни правительствам, ни бигтехам финансировать такие работы и исследования совершенно неинтересно.
В целом же статья полезная для тех кто хочет почитать о том как устроен мир.
#ai #digital #regulation
👍7❤4🌚1
Еврокомиссия буквально вчера одобрила DC-EDIC, проект по общей цифровой инфраструктуре Евросоюза.
В коротком изложении он звучит следующим образом.
Что такое DC-EDIC
- Это объединение нескольких стран ЕС (на старте: France, Germany, Netherlands и Italy) для совместной работы по цифровой инфраструктуре.
- Официально оно будет зарегистрировано как «консорциум цифровой инфраструктуры» с юридическим лицом и собственным управлением.
- Штаб-квартира будет в Париже.
Зачем это делают
- Сейчас многие цифровые инфраструктуры и технологии — импортированы в ЕС, что делает экономику и демократию уязвимыми.
- ЕС хочет иметь открытые, совместимые (interoperable) и свои цифровые инфраструктуры — чтобы меньше зависеть от внешней инфраструктуры.
Что будет делать DC-EDIC
- Объединит заинтересованных лиц: государство, бизнес, гражданское общество.
- Сделает единую «точку входа» (one-stop shop) — от финансирования до обслуживания.
- Поможет с правовой и технической поддержкой инфраструктуры и проектов.
- Будет продвигать политику и повышение осведомлённости.
- Запустит конкретные многогосударственные цифровые проекты на базе «цифрового общего» (digital commons).
Как это будет устроено
- У будет собрание членов-государств, комитет внедрения, директор, совет консультантов.
- Доступ ко всем инфраструктурам и сервисам будет открыт, прозрачным и недискриминационным.
- Любое совместно разработанное программное обеспечение по умолчанию будет лицензировано с открытым исходным кодом (open-source).
- Политика работы с данными будет соответствовать General Data Protection Regulation (GDPR) и предусматривать расследование инцидентов безопасности.
Что ожидается и сроки
- К 2027 году: будет запущен единый портал (One-Stop-Shop), форум, премия за «цифровое общее», ежегодный отчёт.
- Консорциум планируют официально запустить в декабре 2025 года.
Почему это важно
- Потому что если ЕС зависит от инфраструктуры, технологий из-за пределов, это может создавать риски (например, если один поставщик перестанет работать или будет вмешательство).
- Такой консорциум помогает укреплять цифровой «суверенитет» — то есть способность быть независимым и контролировать ключевые цифровые ресурсы.
- Также открытый код и совместимость означают, что разные страны и организации смогут легче использовать и развивать цифровые решения вместе.
—
А если ещё короче, то это софинансирование и соразработка цифровой инфраструктуры и цифровых продуктов странами ЕС и всё это с акцентом на открытом коде и открытости в целом.
#opensource #eu #regulation
В коротком изложении он звучит следующим образом.
Что такое DC-EDIC
- Это объединение нескольких стран ЕС (на старте: France, Germany, Netherlands и Italy) для совместной работы по цифровой инфраструктуре.
- Официально оно будет зарегистрировано как «консорциум цифровой инфраструктуры» с юридическим лицом и собственным управлением.
- Штаб-квартира будет в Париже.
Зачем это делают
- Сейчас многие цифровые инфраструктуры и технологии — импортированы в ЕС, что делает экономику и демократию уязвимыми.
- ЕС хочет иметь открытые, совместимые (interoperable) и свои цифровые инфраструктуры — чтобы меньше зависеть от внешней инфраструктуры.
Что будет делать DC-EDIC
- Объединит заинтересованных лиц: государство, бизнес, гражданское общество.
- Сделает единую «точку входа» (one-stop shop) — от финансирования до обслуживания.
- Поможет с правовой и технической поддержкой инфраструктуры и проектов.
- Будет продвигать политику и повышение осведомлённости.
- Запустит конкретные многогосударственные цифровые проекты на базе «цифрового общего» (digital commons).
Как это будет устроено
- У будет собрание членов-государств, комитет внедрения, директор, совет консультантов.
- Доступ ко всем инфраструктурам и сервисам будет открыт, прозрачным и недискриминационным.
- Любое совместно разработанное программное обеспечение по умолчанию будет лицензировано с открытым исходным кодом (open-source).
- Политика работы с данными будет соответствовать General Data Protection Regulation (GDPR) и предусматривать расследование инцидентов безопасности.
Что ожидается и сроки
- К 2027 году: будет запущен единый портал (One-Stop-Shop), форум, премия за «цифровое общее», ежегодный отчёт.
- Консорциум планируют официально запустить в декабре 2025 года.
Почему это важно
- Потому что если ЕС зависит от инфраструктуры, технологий из-за пределов, это может создавать риски (например, если один поставщик перестанет работать или будет вмешательство).
- Такой консорциум помогает укреплять цифровой «суверенитет» — то есть способность быть независимым и контролировать ключевые цифровые ресурсы.
- Также открытый код и совместимость означают, что разные страны и организации смогут легче использовать и развивать цифровые решения вместе.
—
А если ещё короче, то это софинансирование и соразработка цифровой инфраструктуры и цифровых продуктов странами ЕС и всё это с акцентом на открытом коде и открытости в целом.
#opensource #eu #regulation
❤6✍4🌚1
Про разговоры про мошенников которые звонят пользователям, в американских интернетах подсмотрел как делает сервис Robinhood. Они просто... никогда не звонят пользователям. Вообще никогда.
Покажите мне банк или интернет провайдера который явно задекларирует и будет соблюдать что он не будет мне звонить и я буду пользоваться именно им. Напишите это явно в своей рекламе "Мы никогда не звоним", не присылаем рекламу по умолчанию и всё что я смогу сказать "заткнись и просто бери мои деньги". Потому что то во что сейчас предлагаютгрёбанные олигополии цифровые чемпионы - это то что на тебя вываливают кучу рекламы если ты пользуешься чем-то бесплатно и ещё больше если ты хоть за что-то платишь. А если ты ещё и за что-то платишь и у них есть твой телефон, так ещё и будут звонить.
А ведь просто. Не надо. Звонить. Никогда
P.S. А если какой-то сервис ещё и звонит роботом, то сразу в черный список.
#privacy #thoughts
Покажите мне банк или интернет провайдера который явно задекларирует и будет соблюдать что он не будет мне звонить и я буду пользоваться именно им. Напишите это явно в своей рекламе "Мы никогда не звоним", не присылаем рекламу по умолчанию и всё что я смогу сказать "заткнись и просто бери мои деньги". Потому что то во что сейчас предлагают
А ведь просто. Не надо. Звонить. Никогда
P.S. А если какой-то сервис ещё и звонит роботом, то сразу в черный список.
#privacy #thoughts
1❤20💯10🤝4🔥2
В качестве регулярных напоминаний, всяческий полезный [и бесполезный] код утилит для командной строки которые я когда-то делал и иногда продолжаю развивать когда это необходимо для работы,
например, для Dateno. Лично я испытываю глубокую привязанность к работе в командной строке отсюда и все эти инструменты:
- undatum - многофункциональная утилита для обработки данных изначально в формате JSON lines, делалась как xsv для JSON/JSON lines, я её лично активно и везде применяю.
- docx2csv - утилита по извлечению таблиц из файлов MS Word (.docx), настолько простая что надо её с чем-то объединить
- mongo2md - инструмент автоматизации документирования коллекций в MongoDB было полезно когда MongoDB была в основе технологического стека разных проектов, сейчас скорее буду переводить в статус легаси, но полезно как пример автодокументирования.
- metawarc утилита по извлечению метаданных из файлов WARC, умеет собирать данные из pdf, doc, docx, pdf, png, jpg, xls, xlsx и других файлов документов и изображений. Полезна для разного рода OSINT задач и для автоматизированного анализа WARC файлов
- apibackuper утилита для сбора данных из API через декларативно заданные правила. Использую её повсеместно и всё время хочу переписать чтобы вместо cfg файлов использовать yaml/toml, заменить zip контейнеры на базу duckdb и в целом сделать удобнее. Но и так работает
- wparc архиватор API и данных из Wordpress и файлов заодно. Одна из утилит для архивации сайтов для RuArxive
- lazyscraper скрейпер сайтов для лентяев, когда хочется извлечь данные минимальными усилиями и без программирования. Я её чуть-чуть не доделал чтобы даже xpath не использовать, но в остальном вполне рабочий инструмент
- metacrafter мой любимый инструмент идентификации структуры таблиц в файлах и таблицах с данными. Надо объединить с undatum её конечно же
- apicrafter утилита по быстрому созданию API поверх коллекций в MongoDB. Когда-то использовалась в проектах где основной стек был на MongoDB, сейчас всё по другому я бы делал
#opensource #data #datatools
например, для Dateno. Лично я испытываю глубокую привязанность к работе в командной строке отсюда и все эти инструменты:
- undatum - многофункциональная утилита для обработки данных изначально в формате JSON lines, делалась как xsv для JSON/JSON lines, я её лично активно и везде применяю.
- docx2csv - утилита по извлечению таблиц из файлов MS Word (.docx), настолько простая что надо её с чем-то объединить
- mongo2md - инструмент автоматизации документирования коллекций в MongoDB было полезно когда MongoDB была в основе технологического стека разных проектов, сейчас скорее буду переводить в статус легаси, но полезно как пример автодокументирования.
- metawarc утилита по извлечению метаданных из файлов WARC, умеет собирать данные из pdf, doc, docx, pdf, png, jpg, xls, xlsx и других файлов документов и изображений. Полезна для разного рода OSINT задач и для автоматизированного анализа WARC файлов
- apibackuper утилита для сбора данных из API через декларативно заданные правила. Использую её повсеместно и всё время хочу переписать чтобы вместо cfg файлов использовать yaml/toml, заменить zip контейнеры на базу duckdb и в целом сделать удобнее. Но и так работает
- wparc архиватор API и данных из Wordpress и файлов заодно. Одна из утилит для архивации сайтов для RuArxive
- lazyscraper скрейпер сайтов для лентяев, когда хочется извлечь данные минимальными усилиями и без программирования. Я её чуть-чуть не доделал чтобы даже xpath не использовать, но в остальном вполне рабочий инструмент
- metacrafter мой любимый инструмент идентификации структуры таблиц в файлах и таблицах с данными. Надо объединить с undatum её конечно же
- apicrafter утилита по быстрому созданию API поверх коллекций в MongoDB. Когда-то использовалась в проектах где основной стек был на MongoDB, сейчас всё по другому я бы делал
#opensource #data #datatools
❤5
Свежий доклад от Microsoft - AI Diffusion Report: Where AI is most used, developed and built
Там текст на 24 страницы, читается быстро, вот ключевые факты и выводы.
- Глобальное среднее значение по AI User Share составляет примерно 15% трудоспособного населения.
- Лидеры по доле пользователей ИИ:
* ОАЭ ~59.4%
* Сингапур ~58.6%
* Другие страны-лидеры: Норвегия, Ирландия, Франция и др.
- Региональные различия:
* Северная Америка: ~27%
* Европа и Центральная Азия: ~22%
* Южная Азия и Субсахарская Африка: менее ~13%
- Сильная корреляция между уровнем внедрения ИИ и ВВП на душу населения: коэффициент Спирмена ~0.83, p-значение < 0.000001.
- При анализе населения, имеющего доступ к интернету («connected population»), выяснилось: даже в странах с низким общим проникновением интернета пользователи, подключенные к сети, часто уже активно пользуются ИИ. Например:
* В Замбии: общая доля ~12%, но среди подключенных ~34%.
* В Пакистане: с ~10% до ~33%.
- Запуск продукта DeepSeek (январь 2025) привёл к резкому росту доли пользователей ИИ в Китае: с ~8% до ~20%.
- Основные барьеры для широкого распространения ИИ:
* Доступ к электроэнергии
* Подключение к интернету
* Цифровые навыки
* Языковые ресурсы и локализация
- более 1 миллиарда человек уже использовали ИИ-инструменты за менее чем три года» — что делает ИИ самой быстро внедряемой технологией в истории.
А также немного дополнительных фактов не столь явно упомянутых в тексте:
- Россия в докладе никак не упоминается, только присутствует на некоторых графиках
- Из постсоветских стран наименее низкое проникновение ИИ в Таджикистане, Туркменистане, Узбекистане и, как ни странно, в Армении.
- Почти всё строительство AI инфраструктуры сосредоточено в США и Китае
- Лидеры по разработки AI моделей: США, Китай, Южная Корея, Франция, Великобритания, Канада и Израиль
#ai #readings #microsoft
Там текст на 24 страницы, читается быстро, вот ключевые факты и выводы.
- Глобальное среднее значение по AI User Share составляет примерно 15% трудоспособного населения.
- Лидеры по доле пользователей ИИ:
* ОАЭ ~59.4%
* Сингапур ~58.6%
* Другие страны-лидеры: Норвегия, Ирландия, Франция и др.
- Региональные различия:
* Северная Америка: ~27%
* Европа и Центральная Азия: ~22%
* Южная Азия и Субсахарская Африка: менее ~13%
- Сильная корреляция между уровнем внедрения ИИ и ВВП на душу населения: коэффициент Спирмена ~0.83, p-значение < 0.000001.
- При анализе населения, имеющего доступ к интернету («connected population»), выяснилось: даже в странах с низким общим проникновением интернета пользователи, подключенные к сети, часто уже активно пользуются ИИ. Например:
* В Замбии: общая доля ~12%, но среди подключенных ~34%.
* В Пакистане: с ~10% до ~33%.
- Запуск продукта DeepSeek (январь 2025) привёл к резкому росту доли пользователей ИИ в Китае: с ~8% до ~20%.
- Основные барьеры для широкого распространения ИИ:
* Доступ к электроэнергии
* Подключение к интернету
* Цифровые навыки
* Языковые ресурсы и локализация
- более 1 миллиарда человек уже использовали ИИ-инструменты за менее чем три года» — что делает ИИ самой быстро внедряемой технологией в истории.
А также немного дополнительных фактов не столь явно упомянутых в тексте:
- Россия в докладе никак не упоминается, только присутствует на некоторых графиках
- Из постсоветских стран наименее низкое проникновение ИИ в Таджикистане, Туркменистане, Узбекистане и, как ни странно, в Армении.
- Почти всё строительство AI инфраструктуры сосредоточено в США и Китае
- Лидеры по разработки AI моделей: США, Китай, Южная Корея, Франция, Великобритания, Канада и Израиль
#ai #readings #microsoft
1👍6❤2😐1
Полезные ссылки про данные, технологии и не только:
- New updates and more access to Google Earth AI команда Google Earth AI рассказывает о Geospatial Reasoning подходе при котором не просто определяют место удара шторма, но и предсказывают каким сообществам достанется более других
- Building Capacityfor Data Access,Analysis + Accountability доклад Columbia World Projects о развитии открытого доступа. Полезный для понимания того какие инвестиции сейчас направляются в сторону открытости инфраструктуры доступа к данным для исследователей
- Deta Surf цифровая записная книжка с AI внутри для помощи студентам в учёбе, с открытым кодом и ориентированной на самостоятельное изучение материалов с помощью AI
- oxdraw инструмент с открытым кодом для создания диаграмм, из полезных фич в том что он построен на отображении диаграммы по декларативному описанию, но позволяет автоматически создавать это декларативное описание через интерактивный инструмент. Мне очень нравится подход даже если сам инструмент ещё только-только появился
- How We Saved $500,000 Per Year by Rolling Our Own “S3” инженеры из Nanit пишут о том как сделали упрощенный аналог AWS S3 и сэкономили уйму денег. Как я их понимаю, вокруг S3 уже целая индустрия выстроилась помогателей экономить на их инфраструктуре, но заменить их на что-то свое может быть более оптимальным решением
#ai #tools #opensource #readings
- New updates and more access to Google Earth AI команда Google Earth AI рассказывает о Geospatial Reasoning подходе при котором не просто определяют место удара шторма, но и предсказывают каким сообществам достанется более других
- Building Capacityfor Data Access,Analysis + Accountability доклад Columbia World Projects о развитии открытого доступа. Полезный для понимания того какие инвестиции сейчас направляются в сторону открытости инфраструктуры доступа к данным для исследователей
- Deta Surf цифровая записная книжка с AI внутри для помощи студентам в учёбе, с открытым кодом и ориентированной на самостоятельное изучение материалов с помощью AI
- oxdraw инструмент с открытым кодом для создания диаграмм, из полезных фич в том что он построен на отображении диаграммы по декларативному описанию, но позволяет автоматически создавать это декларативное описание через интерактивный инструмент. Мне очень нравится подход даже если сам инструмент ещё только-только появился
- How We Saved $500,000 Per Year by Rolling Our Own “S3” инженеры из Nanit пишут о том как сделали упрощенный аналог AWS S3 и сэкономили уйму денег. Как я их понимаю, вокруг S3 уже целая индустрия выстроилась помогателей экономить на их инфраструктуре, но заменить их на что-то свое может быть более оптимальным решением
#ai #tools #opensource #readings
❤5
Я на днях также решил проверить на практике вайб-кодирование применение ИИ в разработке и с помощью Cursor обновил и выпустил новую версию iterabledata библиотеки для Python с помощью которой можно можно одинаковым образом читать файлы csv, json, bson, parquet, xls, xlsx и xml так что ты перебираешь объекты возвращается как Python dict. Для тех кто пользовался csv.DictReader или библиотекой jsonlines это должно быть очень понятно.
Я эту библиотеку когда-то делал как ядро для утилит metacrafter и undatum с помощью которой с их помощью можно было анализировать условно любые файлы с данными сжатыми чем-угодно.
В этом собственно отчасти и есть задумка. Наборы данных часто распространяются сжатыми Gzip, Bzip2, LZMA, Brotli или Zstandard, а инструменты для датафреймов или движки вроде duckdb имеют ограничения на поддержку форматов. Также часто данные имеют не utf8 кодировку и вообще удобнее работать в унифицированном интерфейсе.
Так что я написал унифицированные интерфейсы для кодеков сжатия и для типов данных. Заодно написал пример того как преобразовать дампы Википедии из сжатого XML в JSON lines.
Оговорюсь что это пример практического интрумента, то есть реально делаешь то чем пользуешься повсеместно. Для не самых высокопроизводительных задач где нужна многопоточность он весьма полезен.
А теперь с помощью Cursor'а:
- обновил документацию, переформатировал, добавил примеров
- добавил примерно +30% тестов
- исправил несколько ошибок
- проанализировал каких тестовых данных нехватает, запланировал их добавить чтобы покрыть тестами почти все кейсы
Первое что я могу сказать это то что Cursor даёт очень хорошие результаты во всех задачах написания тестов, документирования и анализа кода. Неидеально, но очень неплохо.
Второе что писать сам код я бы не доверил поскольку бывает разная сложность и архитектурная логика и ИИ агенты понимают её лишь отчасти. Я пока не понимаю когда произойдет качественный переход ИИ агентов к пониманию архитектуры программных приложений и основных принципов их построения, но это не кажется нереалистичным.
Третье, следующая эволюция ИИ агентов для разработки явно должна быть на уровне снижения сложности тех задач которые реально требуют заморочится и часто это не задачи разработки. ИИ агент может проводить "оценку разумности" создаваемого и глубже понимать стратегические цели, а не только тактические решения. Например, ИИ агент может посмотреть на код и понять что это библиотека для Python, подтянуть рекомендации для этих библиотек, проанализировать зависимости, предложить автоматизировать тестирование под разные платформы и так далее.
#ai #coding #python #datatools #opensource
Я эту библиотеку когда-то делал как ядро для утилит metacrafter и undatum с помощью которой с их помощью можно было анализировать условно любые файлы с данными сжатыми чем-угодно.
В этом собственно отчасти и есть задумка. Наборы данных часто распространяются сжатыми Gzip, Bzip2, LZMA, Brotli или Zstandard, а инструменты для датафреймов или движки вроде duckdb имеют ограничения на поддержку форматов. Также часто данные имеют не utf8 кодировку и вообще удобнее работать в унифицированном интерфейсе.
Так что я написал унифицированные интерфейсы для кодеков сжатия и для типов данных. Заодно написал пример того как преобразовать дампы Википедии из сжатого XML в JSON lines.
Оговорюсь что это пример практического интрумента, то есть реально делаешь то чем пользуешься повсеместно. Для не самых высокопроизводительных задач где нужна многопоточность он весьма полезен.
А теперь с помощью Cursor'а:
- обновил документацию, переформатировал, добавил примеров
- добавил примерно +30% тестов
- исправил несколько ошибок
- проанализировал каких тестовых данных нехватает, запланировал их добавить чтобы покрыть тестами почти все кейсы
Первое что я могу сказать это то что Cursor даёт очень хорошие результаты во всех задачах написания тестов, документирования и анализа кода. Неидеально, но очень неплохо.
Второе что писать сам код я бы не доверил поскольку бывает разная сложность и архитектурная логика и ИИ агенты понимают её лишь отчасти. Я пока не понимаю когда произойдет качественный переход ИИ агентов к пониманию архитектуры программных приложений и основных принципов их построения, но это не кажется нереалистичным.
Третье, следующая эволюция ИИ агентов для разработки явно должна быть на уровне снижения сложности тех задач которые реально требуют заморочится и часто это не задачи разработки. ИИ агент может проводить "оценку разумности" создаваемого и глубже понимать стратегические цели, а не только тактические решения. Например, ИИ агент может посмотреть на код и понять что это библиотека для Python, подтянуть рекомендации для этих библиотек, проанализировать зависимости, предложить автоматизировать тестирование под разные платформы и так далее.
#ai #coding #python #datatools #opensource
GitHub
GitHub - apicrafter/pyiterable: Python library to read, write and convert data files with formats BSON, JSON, NDJSON, Parquet,…
Python library to read, write and convert data files with formats BSON, JSON, NDJSON, Parquet, ORC, XLS, XLSX and XML - apicrafter/pyiterable
👍13❤🔥1
Кстати, как человек любящий не только цифровые архивы, но и исторические книжки тоже не могу не упомянуть про очень интересный проект от Банка России с виртуальной выставкой по истории Банка. Мало какие центральные банки в мире делают такие проекты, так что это хорошо что такое появляется (если знаете аналогичные проекты в других странах, то напишите плз). Я знаю только Federal Reserve History в США.
Но интересность материалов и их доступность омрачает то что материалы есть, а можно ли их использовать? В основном нет.
Вот самые очевидные проблемы:
1. Нет нигде явным образом указанных условий использования материалов. Можно ли использовать их на своём сайте? Можно ли на их основе писать учебные материалы? Можно ли цитировать и тд. Понятно что у разных материалов может быть разный статус, но не надо забывать насколько это важно можно ли использовать такие материалы.
2. Просмотр материалов только на сайте - это никуда не годится. Возможность скачать исторические книжки нужна для бесконечного числа задач: внутренних библиотек университетов, таких проектов как Цифровой архив госфинансов и госуправления, возможность почитать книги оффлайн, возможность обучить на них ИИ, возможность создать наборы данных и многое другое.
Если делать хорошо, то делать до конца, не надо останавливаться на полпути.
#digitalpreservation #books #finances #digitalhumanities #openaccess
Но интересность материалов и их доступность омрачает то что материалы есть, а можно ли их использовать? В основном нет.
Вот самые очевидные проблемы:
1. Нет нигде явным образом указанных условий использования материалов. Можно ли использовать их на своём сайте? Можно ли на их основе писать учебные материалы? Можно ли цитировать и тд. Понятно что у разных материалов может быть разный статус, но не надо забывать насколько это важно можно ли использовать такие материалы.
2. Просмотр материалов только на сайте - это никуда не годится. Возможность скачать исторические книжки нужна для бесконечного числа задач: внутренних библиотек университетов, таких проектов как Цифровой архив госфинансов и госуправления, возможность почитать книги оффлайн, возможность обучить на них ИИ, возможность создать наборы данных и многое другое.
Если делать хорошо, то делать до конца, не надо останавливаться на полпути.
#digitalpreservation #books #finances #digitalhumanities #openaccess
🔥8❤4👍4💯1
Ещё немного рефлексии по использованию ИИ в разработке. Конечно глядя на 2-ю версию Cursor'а есть ощущение очень большого прогресса в том что с помощью ИИ агентов можно проделать на прикладном уровне. ИИ агент(-ы) точно заменяет джуниоров, сильно помогает миддлам и полезен для более опытных разработчиков.
Например, типовые задачи которые я задаю всем ИИ моделям, при их проверке относительно кода, звучат как "Проанализируй код в этом репозитории и напиши рекомендации по повышению его производительности". Ещё полгода назад чатботы с ИИ выдавали невероятные галлюцинации, сейчас 90% выданных рекомендаций заслуживают внимания. Причем это агентское ревью кода, как правило, лучше чем делает разработчик средней квалификации. По крайней мере потенциальные утечки памяти, заведомо неэффективные конструкции в коде отслеживаются весьма легко.
Но ИИ агенты пока не достигли следующей планки, а то есть замены архитекторов ПО. А то есть ИИ может выдать что цикл и обработка в цикле в коде написаны неэффективно, но, например, не может пока проанализировать архитектуру приложения в целом и дать рекомендации в стиле "вот этот код надо переписать на Rust'е и подключить его как библиотеку" или "а вот тут есть такой редкий инструмент/библиотека если его применить то всё будет работать куда лучше" или "а вот у тебя код весь под Ubuntu написан, вот тут его надо перепроектировать и переделать и станет кроссплатформенным" и так далее.
Причём перейти к этой стадии углублённого анализа кода и архитектурных рекомендаций, похоже, не невозможно. Более того подозреваю что это вполне реалистично в течение 1-2 лет, подозреваю что с правильно наводящими вопросами можно и сейчас решать задачи автоматизации перепроектирования приложения и глубокой оптимизации, но тут надо изучать подробнее.
#ai #coding #software
Например, типовые задачи которые я задаю всем ИИ моделям, при их проверке относительно кода, звучат как "Проанализируй код в этом репозитории и напиши рекомендации по повышению его производительности". Ещё полгода назад чатботы с ИИ выдавали невероятные галлюцинации, сейчас 90% выданных рекомендаций заслуживают внимания. Причем это агентское ревью кода, как правило, лучше чем делает разработчик средней квалификации. По крайней мере потенциальные утечки памяти, заведомо неэффективные конструкции в коде отслеживаются весьма легко.
Но ИИ агенты пока не достигли следующей планки, а то есть замены архитекторов ПО. А то есть ИИ может выдать что цикл и обработка в цикле в коде написаны неэффективно, но, например, не может пока проанализировать архитектуру приложения в целом и дать рекомендации в стиле "вот этот код надо переписать на Rust'е и подключить его как библиотеку" или "а вот тут есть такой редкий инструмент/библиотека если его применить то всё будет работать куда лучше" или "а вот у тебя код весь под Ubuntu написан, вот тут его надо перепроектировать и переделать и станет кроссплатформенным" и так далее.
Причём перейти к этой стадии углублённого анализа кода и архитектурных рекомендаций, похоже, не невозможно. Более того подозреваю что это вполне реалистично в течение 1-2 лет, подозреваю что с правильно наводящими вопросами можно и сейчас решать задачи автоматизации перепроектирования приложения и глубокой оптимизации, но тут надо изучать подробнее.
#ai #coding #software
👍6❤3🤩1
Свежий документ Framework on Responsible AI for Official Statistics про применение ИИ в официальной статистике от ЕЭК ООН (Европейская экономическая комиссия ООН). Практической пользы с него мало потому что он написан таким языком что если всё там написанное взять и заменить с "официальной статистики" на, например, "энергетику" или "транспорт" то мало что поменяется. Содержание документа сильно оторвано от предметной области и почти все отсылки там на базовые этические принципы внедрения AI и ML. С этой точки зрения документ не так бесполезен.
В остальном же его применение в том чтобы на него ссылаться отвечая на вопросы вроде "какие этические стандарты Вы соблюдаете в Ваших ИИ проектах в официальной статистике".
Заодно к нему же недавно опубликованные документы в Германском журнале WISTA (Wirtschaft und Statistik) по применении этических принципов ИИ на практике:
- Ethical issues concerning the use of AI/ML in the production of official statistics – part 1: identification
- Ethical issues concerning the use of AI/ML in the production of official statistics – part 2: evaluation
Они выглядят как более полезные с практической точки зрения.
#statistics #ai #readings
В остальном же его применение в том чтобы на него ссылаться отвечая на вопросы вроде "какие этические стандарты Вы соблюдаете в Ваших ИИ проектах в официальной статистике".
Заодно к нему же недавно опубликованные документы в Германском журнале WISTA (Wirtschaft und Statistik) по применении этических принципов ИИ на практике:
- Ethical issues concerning the use of AI/ML in the production of official statistics – part 1: identification
- Ethical issues concerning the use of AI/ML in the production of official statistics – part 2: evaluation
Они выглядят как более полезные с практической точки зрения.
#statistics #ai #readings
✍4❤3
Свежий документ Organizing Public Support for Open Digital Infrastructure про германское Sovereign Tech Agency (STA) и финансирование открытого кода идентифицированного как наиболее критичного для глобальной инфраструктуры. Полезный текст про "бигтехозамещение здорового человека" и теперь это важный европейский мэйнстрим по снижению цифровой зависимости от США и Китая и создание открытой цифровой инфраструктуры (open digital infrastructure).
Я, наверное, с пару десятилетий уже наблюдаю как Евросоюз занимался поддержкой открытого кода и чаще всего это выражалось в европейских научных проектах в рамках Horizon в рамках которых участники наплодили множество открытого кода из которого полезного было около 1-10%. Картинка долгое время была удручающей. А дело было в том что когда ты объявляешь конкурсы в стиле "вот есть темы по которым мы даем деньги на открытый код если вы соблюдете вот эту и эту бюрократию" то приходят грантоеды всегда и кто-то адекватный только иногда.
В этом отличие STA, в STA вначале находят те открытые проекты которые не то что бы хорошо зарабатывает и от которых реально зависит если не весь мир, то существенная его часть. А потом пытаются им всучить деньги чтобы они могли продолжать существовать не падая в неприятные зависимости, в европейском понимании - это бигтехи. И поддерживают они через программы fellowship для майнтайнеров, фонд для выдачи грантов и программы bug bounty.
Собственно в документе это хорошо рассказано в контексте создания открытой инфраструктуры. Для понимания перспективного того как эти инициативы вырастают в общеевропейские это весьма полезно.
С одной стороны это всё полезные инициативы, а с другой мэйнтенеры кода могут быть и жить и не в странах ЕС, бигтехи хотя и большие, но гораздо адаптивнее, а европейская бюрократия и юрисдикция скорее хужеет. В любом случае за инициативой полезно наблюдать, может что-то полезное там и возникнет.
#opensource #europe #readings
Я, наверное, с пару десятилетий уже наблюдаю как Евросоюз занимался поддержкой открытого кода и чаще всего это выражалось в европейских научных проектах в рамках Horizon в рамках которых участники наплодили множество открытого кода из которого полезного было около 1-10%. Картинка долгое время была удручающей. А дело было в том что когда ты объявляешь конкурсы в стиле "вот есть темы по которым мы даем деньги на открытый код если вы соблюдете вот эту и эту бюрократию" то приходят грантоеды всегда и кто-то адекватный только иногда.
В этом отличие STA, в STA вначале находят те открытые проекты которые не то что бы хорошо зарабатывает и от которых реально зависит если не весь мир, то существенная его часть. А потом пытаются им всучить деньги чтобы они могли продолжать существовать не падая в неприятные зависимости, в европейском понимании - это бигтехи. И поддерживают они через программы fellowship для майнтайнеров, фонд для выдачи грантов и программы bug bounty.
Собственно в документе это хорошо рассказано в контексте создания открытой инфраструктуры. Для понимания перспективного того как эти инициативы вырастают в общеевропейские это весьма полезно.
С одной стороны это всё полезные инициативы, а с другой мэйнтенеры кода могут быть и жить и не в странах ЕС, бигтехи хотя и большие, но гораздо адаптивнее, а европейская бюрократия и юрисдикция скорее хужеет. В любом случае за инициативой полезно наблюдать, может что-то полезное там и возникнет.
#opensource #europe #readings
👍4❤3🔥3
Подборка ссылок про данные, технологии и не только:
- transferia инструмент для переноса данных между разными базами данных причем поддерживает не только SQL, но и выгрузку и загрузку данных в MongoDB, OpenSearch, Elasticsearch. Судя по именам разработчиков и поддержке YTSaurus создатели продукта русскоязычные. Сам продукт пока не очень популярен, но лично у меня под такое задачки есть, надо тестировать
- Affine набирающая популярность замена Notion с открытым кодом. Делает его сингапурский стартап которые создают на его базе облачный сервис с подпиской и они же распространяют версию с открытым кодом. Выглядит симпатично и лозунг у них Write, Draw, Plan. Пиши, рисуй, планируй. ПРП в общем
#opensource #data #tools
- transferia инструмент для переноса данных между разными базами данных причем поддерживает не только SQL, но и выгрузку и загрузку данных в MongoDB, OpenSearch, Elasticsearch. Судя по именам разработчиков и поддержке YTSaurus создатели продукта русскоязычные. Сам продукт пока не очень популярен, но лично у меня под такое задачки есть, надо тестировать
- Affine набирающая популярность замена Notion с открытым кодом. Делает его сингапурский стартап которые создают на его базе облачный сервис с подпиской и они же распространяют версию с открытым кодом. Выглядит симпатично и лозунг у них Write, Draw, Plan. Пиши, рисуй, планируй. ПРП в общем
#opensource #data #tools
GitHub
GitHub - transferia/transferia: Open Source Cloud Native Ingestion engine
Open Source Cloud Native Ingestion engine. Contribute to transferia/transferia development by creating an account on GitHub.
✍5🤝4❤2
В рубрике как это устроено у них не вполне обычный каталог открытых данных и не только Digital Public Goods Registry реестр цифрового общего блага от множества структур ООН, пр-в разных стран и международных организаций. Включает большое число продуктов с открытым кодом, открытых систем ИИ, свободного контента и открытых данных. Например, туда входят Wikipedia и Wikidata, дистрибутив Linux - SUSE, множество порталов открытых данных и наборов данных.
Продукты с открытым кодом варьируются от совершенно бесполезных сделанных когда на гранты и необновляемых с тех пор и до очень активных и обновляемых - CKAN, Typo3, TrueNAS.
Для тех проектов у которых код на Github показывают график обновлений (странно что по Gitlab ещё не научились).
Все материалы публикуются в привязке к целям устойчивого развития ООН и согласно стандарту.
Я регулярно вижу как на разных площадках многие владельцы открытых продуктов анонсируют что их добавили в этот реестр и склонен полагать что причина в том что наличие продукта там может быть дополнительным обоснованием для получения грантового финансирования их проекта/продукта.
Возвращаясь к данным - там перечислено их относительно немного, 25 дата порталов и наборов данных, что впрочем не означает что их список не расширится в будущем.
Проектов из России там нет, есть проекты из Казахстана и Армении (их код не обновлялся очень давно).
#opendata #datacatalogs #opensource
Продукты с открытым кодом варьируются от совершенно бесполезных сделанных когда на гранты и необновляемых с тех пор и до очень активных и обновляемых - CKAN, Typo3, TrueNAS.
Для тех проектов у которых код на Github показывают график обновлений (странно что по Gitlab ещё не научились).
Все материалы публикуются в привязке к целям устойчивого развития ООН и согласно стандарту.
Я регулярно вижу как на разных площадках многие владельцы открытых продуктов анонсируют что их добавили в этот реестр и склонен полагать что причина в том что наличие продукта там может быть дополнительным обоснованием для получения грантового финансирования их проекта/продукта.
Возвращаясь к данным - там перечислено их относительно немного, 25 дата порталов и наборов данных, что впрочем не означает что их список не расширится в будущем.
Проектов из России там нет, есть проекты из Казахстана и Армении (их код не обновлялся очень давно).
#opendata #datacatalogs #opensource
✍6🤔2❤1
TOON - свежий инструмент/спецификация/нотация для отправки структурированных данных LLM.
Переупаковывает JSON данные в упрощённый CSV подобный формат для отправки в запросе к LLM.
Сразу возникает запрос - зачем это нужно? И ответ в уменьшении числа токенов и экономии на использовании облачным LLM и LLM-как-сервиса.
#opensource #ai #llm #specifications
Переупаковывает JSON данные в упрощённый CSV подобный формат для отправки в запросе к LLM.
Сразу возникает запрос - зачем это нужно? И ответ в уменьшении числа токенов и экономии на использовании облачным LLM и LLM-как-сервиса.
#opensource #ai #llm #specifications
👍7⚡4❤3💊1
Полезные ссылки про данные, технологии и не только:
- A Deep Dive into DuckDB for Data Scientists о том как дата сайентистам использовать DuckDB. Если коротко, то всё довольно просто и понятно.
- ClickHouse welcomes LibreChat: Introducing the open-source Agentic Data Stack Clickhouse поглотил LibreChat, инструмент с открытым кодом для создания ИИ чатботов. Инструмент был хороший, надеюсь таким и останется.
- Hannes Mühleisen - Data Architecture Turned Upside Down отличное выступление Hannes Mühleisen про ключевые изменения в архитектуре данных последних лет. Полезно и по смыслу и по визуальному представлению хорошо
- agor: Next-gen agent orchestration for AI coding ИИ агент для управления ИИ кодированием, автор его создатель Superset и позиционирует этот проект как думай об асситентах для кодирования как о Figma. С открытым. кодом. Любопытно, но ИМХО автор плохо объясняет преимущества, как подхода, так и интерфейса.
#opensource #data #datatools #dataengineering #ai
- A Deep Dive into DuckDB for Data Scientists о том как дата сайентистам использовать DuckDB. Если коротко, то всё довольно просто и понятно.
- ClickHouse welcomes LibreChat: Introducing the open-source Agentic Data Stack Clickhouse поглотил LibreChat, инструмент с открытым кодом для создания ИИ чатботов. Инструмент был хороший, надеюсь таким и останется.
- Hannes Mühleisen - Data Architecture Turned Upside Down отличное выступление Hannes Mühleisen про ключевые изменения в архитектуре данных последних лет. Полезно и по смыслу и по визуальному представлению хорошо
- agor: Next-gen agent orchestration for AI coding ИИ агент для управления ИИ кодированием, автор его создатель Superset и позиционирует этот проект как думай об асситентах для кодирования как о Figma. С открытым. кодом. Любопытно, но ИМХО автор плохо объясняет преимущества, как подхода, так и интерфейса.
#opensource #data #datatools #dataengineering #ai
CodeCut
A Deep Dive into DuckDB for Data Scientists
Discover how DuckDB simplifies data querying with zero configuration and outperforms pandas for large datasets.
✍2