[00:03:06] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <В стандартной либе т…>
ну вот я просто запутался как тут поступить
[00:03:36] <ada_ru> (I_vlxy_I) у меня пиксель. который потом сериализуется. мне юзать Stream_Element для компонент цвета или что?
[00:03:50] <ada_ru> (I_vlxy_I) пока у меня просто свой тип. Color_Element
[00:03:55] <ada_ru> (I_vlxy_I) но я хз хорошо это или плохо
[00:04:44] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <Есть три типа - нужн…>
просто в итоге за деревьями можно леса (основную логику) не увидеть и пропустить логическую ошибку с типами не связанную например
[00:07:59] <ada_ru> (Vadim) Цвет это цвет. Цвет выражен типом. Тип соответствует цвету. Сериализация - процесс преобращования цвета в последовательность неких элементов. Элемент сей имеет тип. Свой тип. И это нормально и правильно.
[00:09:04] <ada_ru> (I_vlxy_I) ок. а как мне представить какой-нибудь Integer скажем, или тот же тип цвета как последовательность элементов сериализации?
[00:09:12] <ada_ru> (I_vlxy_I) это можно?
[00:10:05] <ada_ru> (Vadim) А как нужно. И по хорошему - ручками ;)
[00:11:22] <ada_ru> (I_vlxy_I) ну я просто спрашиваю как сериализация обычно делается 🙂
Вот есть у меня какой-то Integer скажем. Мне надо его записать в Stream. Как это делается кошерным образом?
[00:11:29] <ada_ru> (Vadim) Ибо не буду рассказывать о приключениях на пути оптимизаторов
[00:11:53] <ada_ru> (Vadim) Нет понятия кашерного способа.
[00:12:29] <ada_ru> (I_vlxy_I) быстрый и безопасный способ
[00:12:30] <ada_ru> (Vadim) Хотя... Может я и обманываю. Это - XDR. Вопрос. Кто помнит что это?
[00:12:33] <ada_ru> (I_vlxy_I) безопасный == без UB
[00:12:49] <ada_ru> (I_vlxy_I) погоди. не надо мне ASN.1
[00:13:12] <ada_ru> (I_vlxy_I) я хочу просто через стрим записать этот Integer. Пусть лежит себе четырьмя байтами потом.
[00:13:19] <ada_ru> (I_vlxy_I) что с ними потом делать - отдельная тема
[00:13:34] <ada_ru> (I_vlxy_I) мне важно понять как правильно и бережно взять этот Integer и стриму скормить
[00:13:43] <ada_ru> (I_vlxy_I) ведь стрим принимает массив из Stream_Element
[00:18:53] <ada_ru> (Vadim) ASN.1 это клёвый пример.
[00:19:43] <ada_ru> (Vadim) Хотя бы в том, что ставит современных программистов в тупик.
[00:20:12] <ada_ru> (Vadim) Ладно. Простейший способ - сделать Integer'Write
[00:20:36] <ada_ru> (Vadim) Но!
[00:20:38] <ada_ru> (I_vlxy_I) О. Неплохо.
[00:20:48] <ada_ru> (I_vlxy_I) и ему стрим подсунуть аргументом ?
[00:21:02] <ada_ru> (Vadim) Это не обязано работать в гетерогенном случае
[00:21:24] <ada_ru> (Vadim) Да, поток передаётся аргументом
[00:23:00] <ada_ru> (Vadim) Но, в общем случае это неправильно. Ибо известно только то, что Integer'Read прочтёт записанное. Этой же программой на этом же компьютере
[00:25:54] <ada_ru> (Vadim) Это только вершина айсберга. Там столько тонкостей и крайних случаев.
[00:27:19] <ada_ru> (Vadim) Последовательность бит и байт, размер единицы потока и единицы памяти (9bit архитектуры во всю используются по сей день).
[00:27:46] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <Последовательность б…>
Я знаю
[00:28:51] <ada_ru> (I_vlxy_I) Вот размер единицы потока несколько напрягает конечно
[00:30:09] <ada_ru> (I_vlxy_I) Где прочитать про работу Ады с битиками?
[00:30:23] <ada_ru> (Georgy723) ECO11: Principles of Economics I - Saifedean Ammous
https://saifedean.com/product/buy-eco11-principles/
[00:30:29] <ada_ru> (I_vlxy_I) Вопросы сериализации очень важны для меня
[00:33:06] <ada_ru> (I_vlxy_I) И ещё, если мой тип от 0 до 255, то ведь не факт что запишут 8 бит? Как минимум нужно рядом с типом указать, что для хранения нужно именно 8 бит юзать?
[00:33:14] <ada_ru> (I_vlxy_I) То есть в ОЗУ
[00:33:32] <ada_ru> (I_vlxy_I) for XXX use что-то там
[00:41:17] <ada_ru> (FROL256) Ну почему именно 9
[00:41:20] <ada_ru> (FROL256) я бы понял если 10
[00:45:26] <ada_ru> (I_vlxy_I) В байте любое число бит
[00:45:28] <ada_ru> (I_vlxy_I) Я знаю
[00:45:48] <ada_ru> (I_vlxy_I) Например на современных железках часто это 32 бита например
[00:46:00] <ada_ru> (I_vlxy_I) Не на десктопах правда
[00:49:09] <ada_ru> (FROL256) Нет, 32 я понимаю, ок
[00:49:16] <ada_ru> (FROL256) без проблем
[00:49:18] <ada_ru> (FROL256) но почему 9
[00:55:01] <ada_ru> (sergey_dukov) отвечает (I_vlxy_I) на <for XXX use что-то т…>
http://docs.adacore.com/live/wave/arm12/html/arm12/arm12-13-13.html
А пример использования был на этом чате. Помните, ошибка RT при записи массива в Stream? Вы в обсуждении принимали активное участие. Еще принимал участие Максим, а вот кто автор темы, я забыл. Максим нашёл место, где ошибка. Ошибка возникала при длине записываемого массива больше какого-то числа.
[01:02:15] <ada_ru> (sergey_dukov) Суть в том что, ничего не нужно знать, о том как происходит запись значений любого типа в поток. При чтении значений из потока, эти значения воспроизведутся так, как они были записаны. Система сама разбирается как и что писать в поток.
[01:09:40] <ada_ru> (Vadim) К вопросу о 9. Нужно умножить на 4. В полученное число бит вписать IEEE float. Вычислить число значащих цифр. Сопоставить с точностью необходимой для доставки подарков в форточку.
[01:12:05] <ada_ru> (Vadim) Классические 32 бита дают 6 знаков. Этого мало. А 36 - само то. И при этом сложность железа выполняющего вычисления не сильно возрастает. Да, в современных смартфонах можно сразу 64 бита использовать. Но вот только впихнуть смартфон не везде получится.
[01:15:05] <ada_ru> (Vadim) Работа с битами... Есть понятие representation clauses (правила представления). Уже в 83-ей версии ори были. Можно задать размер типа, можно распихать поля записи по битам, можно задать значения для литералов перечислимого типа.
[01:15:36] <ada_ru> (Vadim) Позже добавилась возможность задать endianness.
[01:16:23] <ada_ru> (Vadim) Но строго говоря всё это действует пока объект отображается на память.
[01:17:39] <ada_ru> (Vadim) Для отображения в поток можно указать свои подпрограммы для Read/Write/Input/Output.
[01:19:00] <ada_ru> (Vadim) Это может быть как битовое отображение, так и любое другое. Вот у Макса есть поток дающий на выходе JSON.
[01:47:59] <ada_ru> (I_vlxy_I) Vadim @sergey_dukov спасибо. Примерно составил себе карту по которой нужно/можно двигаться.
[02:30:50] <ada_ru> (I_vlxy_I) Кстати, я заметил, что на reddit больше вопросов новичков стало по Аде
[02:31:08] <ada_ru> (I_vlxy_I) Так на людей карантин действует?
[02:33:18] <ada_ru> (I_vlxy_I) Вообще, сейчас самое оно для онлайн митапов :-)
[07:37:23] <ada_ru> (reznikmm) Безопасная коммуникация · Ada Ru
http://www.ada-ru.org/sssw/chapter_09
[07:37:54] <ada_ru> (reznikmm) @I_vlxy_I это похоже близко к теме
[09:29:46] <ada_ru> (Vinpuh) отвечает (I_vlxy_I) на <Qt Company обдумывае…>
Надо KDE переходить на gtk4, и польза и унификация тулкитов
[10:52:35] <ada_ru> (Vadim) Не нужно переходить на Gtk
[10:52:44] <ada_ru> (Vadim) Пожалуйста!!!
[11:54:54] <ada_ru> (a) Правильно. Нет ничего лучше чем tk
[11:57:07] <ada_ru> (a) А из wm лучше чем cwm
[11:57:11] <ada_ru> (a) ;)
[18:53:29] <ada_ru> (reznikmm) https://old.reddit.com/r/programming/comments/fxrr6y/ada_on_the_esp8266/