Size: a a a

Programming Offtop

2020 August 21

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
В CERN Root есть и рефлексия (псевдо) и сериализация. Рефлексия делается на препроцессоре путем парсинга заголовков. Сериализация такая, что ругаемая всеми Java Serialization - это верх искусства.
Если под сериализацией имеются в виду root tree, то они прекрасны. Java Serialization не знаю.
источник

AN

Alexander Nozik in Programming Offtop
Yaroslav Nikitenko
Если под сериализацией имеются в виду root tree, то они прекрасны. Java Serialization не знаю.
Ты внутрь формата смотрел? Прекрасные они. Ты вообще с ним что-нибудь делал кроме вызова из рута той же версии? Ты в курсе, что он ломается между версиями?
источник

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
Ты внутрь формата смотрел? Прекрасные они. Ты вообще с ним что-нибудь делал кроме вызова из рута той же версии? Ты в курсе, что он ломается между версиями?
Описание формата читал. Оно вполне логично.
Нет, root tree не должны ломаться при разных версиях рута.
источник

AN

Alexander Nozik in Programming Offtop
Java Serialization - это тоже технология, от которой отказались, но это то, как рутовая сериализация должна было бы выглядеть, если бы ее сделали нормально
источник

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
Java Serialization - это тоже технология, от которой отказались, но это то, как рутовая сериализация должна было бы выглядеть, если бы ее сделали нормально
А какой на сегодня идеал сериализации?
источник

AN

Alexander Nozik in Programming Offtop
Yaroslav Nikitenko
А какой на сегодня идеал сериализации?
Сейчас отказались почти везде от рефлективной автоматической сериализации. Используют кодогенераторы, или процессоры аннотаций с явным описанием сериализуемых полей.
источник

AN

Alexander Nozik in Programming Offtop
А формат в основном JSON, в очень редких случаях что-то бинарное. Это как правило игры или что-то очень численное.
источник

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
Сейчас отказались почти везде от рефлективной автоматической сериализации. Используют кодогенераторы, или процессоры аннотаций с явным описанием сериализуемых полей.
Да, печально. Не вижу идеальности в этих вещах. Не думаю, что внешняя (с помощью библиотеки) сериализация так уж хуже.
источник

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
А формат в основном JSON, в очень редких случаях что-то бинарное. Это как правило игры или что-то очень численное.
Формат прекрасен и думаю, что с ним особо проблем быть не должно.
Но я говорю именно про бинарные данные, и root tree именно для них.
источник

AN

Alexander Nozik in Programming Offtop
Yaroslav Nikitenko
Формат прекрасен и думаю, что с ним особо проблем быть не должно.
Но я говорю именно про бинарные данные, и root tree именно для них.
Про прекрасный формат ты мне расскажешь, когда ты его чем-то кроме рута прочитаешь. Если ты это сделаешь, я с тобой соглашусь публично (только чур не брать готовый uproot).
источник

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
Про прекрасный формат ты мне расскажешь, когда ты его чем-то кроме рута прочитаешь. Если ты это сделаешь, я с тобой соглашусь публично (только чур не брать готовый uproot).
Прекрасным я назвал json.
ROOT tree тоже хороший формат. Если надо в другом языке его использовать (без рута) - то наверняка это более высокоуровневый язык => меньше данных => можно перевести их в текст.
В С++ можно рутом его прекрасно читать. Если нет задачи искать сложные пути)
источник

AN

Alexander Nozik in Programming Offtop
Yaroslav Nikitenko
Прекрасным я назвал json.
ROOT tree тоже хороший формат. Если надо в другом языке его использовать (без рута) - то наверняка это более высокоуровневый язык => меньше данных => можно перевести их в текст.
В С++ можно рутом его прекрасно читать. Если нет задачи искать сложные пути)
Json да, хорош
источник

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
Про прекрасный формат ты мне расскажешь, когда ты его чем-то кроме рута прочитаешь. Если ты это сделаешь, я с тобой соглашусь публично (только чур не брать готовый uproot).
К тому же почему бы и правда не взять pyroot)
Ок, я тогда назову прекрасным не root tree как формат, а как инструмент с сопутствующей инфраструктурой.
источник

AN

Alexander Nozik in Programming Offtop
Yaroslav Nikitenko
К тому же почему бы и правда не взять pyroot)
Ок, я тогда назову прекрасным не root tree как формат, а как инструмент с сопутствующей инфраструктурой.
pyroot - это тот же рут, только с нашлепкой. Uproot - это действительно годный проект
источник

YN

Yaroslav Nikitenko in Programming Offtop
Alexander Nozik
pyroot - это тот же рут, только с нашлепкой. Uproot - это действительно годный проект
С точки зрения программы, uproot сейчас версия 0.0.17, то есть не стабильная.
https://github.com/scikit-hep/uproot4
ROOT стабильный.
Кстати, uproot именно то и делает, что читает рутовский формат. То есть это возможно, спецификация есть и работает.
источник

DP

Dmitry Ponyatov in Programming Offtop
Alexander Nozik
Сейчас отказались почти везде от рефлективной автоматической сериализации. Используют кодогенераторы, или процессоры аннотаций с явным описанием сериализуемых полей.
А метод применяемый в unisonweb не подходит как универсальный сериализатор?
источник

DP

Dmitry Ponyatov in Programming Offtop
Dmitry Ponyatov
А метод применяемый в unisonweb не подходит как универсальный сериализатор?
Там на каждый объект считается хэш, тип передается хешем, и внутренности объекта тоже списком хэшей
источник

AN

Alexander Nozik in Programming Offtop
Dmitry Ponyatov
А метод применяемый в unisonweb не подходит как универсальный сериализатор?
Проблема всех автоматических сериал заторов в том, что ими сериалищуют не-данные
источник

DP

Dmitry Ponyatov in Programming Offtop
Dmitry Ponyatov
Там на каждый объект считается хэш, тип передается хешем, и внутренности объекта тоже списком хэшей
Если у получателя нет объекта с указанным хэшем, он запрашивается у отправителя или из глобальноного репозитория
источник

DP

Dmitry Ponyatov in Programming Offtop
Dmitry Ponyatov
Если у получателя нет объекта с указанным хэшем, он запрашивается у отправителя или из глобальноного репозитория
Рекурсивно
источник