[01:54:09] <ada_ru> (I_vlxy_I) @reznikmm спасибо за это вот сообщение из 2005 года. помогло https://www.ada-ru.org/forum/p606991460_1.html#xP/9qw
[03:51:07] <nordwind> Кодировка с телефона выглядит как кои-8 что ли?
[03:55:15] <ada_ru> (I_vlxy_I) там и не в телефоне кодировка побитая по ссылке
[03:55:21] <ada_ru> (I_vlxy_I) но мне и без расшифровки хватило
[03:55:27] <ada_ru> (I_vlxy_I) достаточно кода 🙂
[03:56:31] <ada_ru> (I_vlxy_I) CP1252 -> KOI8-R
[03:56:48] <ada_ru> (I_vlxy_I) "На днях перечитывал ARM, наткнулся, что таки можно это сделать
стандартыми средствами, используя пакет Ada.Text_IO.Text_Streams"
[14:33:25] <ada_ru> (I_vlxy_I) забавно
[14:33:57] <ada_ru> (I_vlxy_I) в Rust 0..512 означает [0..512) а в Аде это означает [0..512]
[14:39:46] <ada_ru> (I_vlxy_I) из за этого адский вариант проги у меня вначале генерил некорректные данные 🙂
[14:46:28] <ada_ru> (Oleg) Никогда кстати не понимал почему теперь делают интервал который не включает последний элемент
[14:52:02] <ada_ru> (I_vlxy_I) отвечает (Oleg) на <Никогда кстати не по…>
Для удобного итерирование по коллекциям :-)
[14:52:47] <ada_ru> (I_vlxy_I) Даже если числами это не представимо.
[14:54:04] <ada_ru> (I_vlxy_I) Ты итерируешься до тех пор, пока итератор не равен итератору на элемент за последним элементом
[14:58:18] <ada_ru> (I_vlxy_I) В частности, для какого-нибудь списка этот итератор будет константой всегда.
[14:58:32] <ada_ru> (I_vlxy_I) Что удобно и оптимально
[14:58:46] <ada_ru> (nitrocerber) а как сделать интервал включительно с integer'last?
[14:58:59] <ada_ru> (nitrocerber) last+1 же не бывает
[15:03:13] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <а как сделать интерв…>
Надо глянуть как там у растоманов :-)
[15:03:19] <ada_ru> (I_vlxy_I) В плюсах то просто
[15:04:05] <ada_ru> (nitrocerber) та в языке, где анчекд конвершн - норма жизни, там-то понятно, что всё просто
[15:06:33] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <та в языке, где анче…>
Да не. Там просто вместо < в цикле пишешь <= :-)
[15:07:12] <ada_ru> (nitrocerber) ну так это не обозначение рейнджа же
[15:07:22] <ada_ru> (nitrocerber) или в крестах вообще понятие интервала не существует?
[15:08:37] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <или в крестах вообще…>
На уровне либы только. При этом тебе не нужны итераторы и индексы чтобы пробежаться например по списку. Есть соответствующая форма цикла которая сделает за тебя
[15:09:06] <ada_ru> (I_vlxy_I) О! В расте можно!
0..=512
[15:09:24] <ada_ru> (I_vlxy_I) Вот такая форма идентична адской
[15:10:06] <ada_ru> (I_vlxy_I) А в Аде можно не отрезок, а полуинтервал?
[15:10:19] <ada_ru> (nitrocerber) нет, насколько я знаю
[15:11:19] <ada_ru> (nitrocerber) вообще это всё сахар, конечно. идинственный затык был бы с крайним значением, но таки есть вариант, как оказалось
[15:11:24] <ada_ru> (I_vlxy_I) Вот!
[15:11:29] <ada_ru> (I_vlxy_I) rustRustRUST!
[15:13:20] <ada_ru> (nitrocerber) Мне как-то непривычно мыслить в полуинтервалах. Это видать сишное наследие, "МаСсИвЫ нАчИНаЮтСя С нУлЯ!!1адин" и вот это вот всё. А писать 0..511 некрасиво, 0..512 нагляднее.
[15:13:40] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Мне как-то непривычн…>
В Обероне также
[15:13:42] <ada_ru> (nitrocerber) Но получается на 1 больше. Шо делать? А отрежем последнее
[15:14:06] <ada_ru> (nitrocerber) Оберон - еретическое течение.
[15:14:13] <ada_ru> (nitrocerber) секта! ЭКСТЕРМИНАТУС
[15:14:44] <ada_ru> (I_vlxy_I) В этом есть смысл. Где-то умное теоретическое обоснование видел. Не даром даже Вирт туда скатился
[15:17:16] <ada_ru> (I_vlxy_I) https://www.meetup.com/ru-RU/cpp-ug-dresden/events/269582892/
[15:17:46] <ada_ru> (I_vlxy_I) «For a long time C++ was the only choice for high performance software, that was part of the reason for its success. But there are newcomers. Today you can develop high performance software as well in Rust. What what kind of a language is that? Is it that different from C++? What are the commonalities?»
[15:22:35] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <секта! ЭКСТЕРМИНАТУС>
<прислал наклейку> 😱
[15:23:12] <ada_ru> (reznikmm) Да, в Аде это красиво. А остальным нужно мучать мозг, чтобы помнить, где включется граница в интервал, а где нет, а где надо поставить лишний = 😄
[15:23:59] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Да, в Аде это красив…>
Зависит от привычек :-)
[15:24:29] <ada_ru> (I_vlxy_I) Но в любом случае, если приходится руками писать подобное, значит, скорее всего, код попахивает
[15:24:53] <ada_ru> (I_vlxy_I) Мой вот конкретно воняет пока что :-)
[15:25:25] <ada_ru> (reznikmm) Да, можно привыкнуть и суп палочками есть 😂
[15:25:40] <ada_ru> (Gourytch) отвечает (nitrocerber) на <Мне как-то непривычн…>
imho, нагляднее вообще использовать типы-диапазоны.
[15:26:46] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <imho, нагляднее вооб…>
Так в Аде и делают
[15:26:48] <ada_ru> (Gourytch) обозвал его красиво, а там уже в его декларации написал... ну, менее красиво =)
[15:26:52] <ada_ru> (I_vlxy_I) Там это искаропки
[15:27:03] <ada_ru> (I_vlxy_I) С 83 года :-)
[15:27:11] <ada_ru> (Gourytch) вот про то и говорю. вот они и тут - молодцы
[15:27:22] <ada_ru> (I_vlxy_I) То есть к массива можно спросить его ренж
[15:27:32] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <Да, можно привыкнуть…>
Кстати, норм!
[15:27:41] <ada_ru> (nitrocerber) Ну один раз так или иначе его всё равно придётся написать)
[15:27:53] <ada_ru> (nitrocerber) цифирьками чи как ещё
[15:28:34] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <Ну один раз так или …>
А нет такой формы, чтобы просто число элементов задать?
[15:29:08] <ada_ru> (nitrocerber) что есть число элементов, советник?
[15:32:28] <ada_ru> (I_vlxy_I) Просто хочу масссив на 100500 элементов
[15:32:49] <ada_ru> (I_vlxy_I) Пусть индекс начинается с дефолтного (пофигу с какого)
[15:32:56] <ada_ru> (I_vlxy_I) Так можно?
[15:37:19] <ada_ru> (nitrocerber) Нет
[15:37:39] <ada_ru> (nitrocerber) принципово забороненно
[15:37:47] <ada_ru> (nitrocerber) ибо нефиг
[15:39:50] <ada_ru> (Gourytch) в петончеке зато можно list(range(100500)) - и - получите-распишитесь
[15:40:13] <ada_ru> (Gourytch) прям уже заполненный =)
[15:40:55] <ada_ru> (nitrocerber) берёшь два таких массива и хочешь покомпонентно ппоприсваивать элементы одного другому... от одного индекса, по привычке. инересно, що будет
[15:41:45] <ada_ru> (nitrocerber) Или там оно таки от одного и того же каждый раз индексируется?
[15:42:00] <ada_ru> (Gourytch) проитерировать. вот я не хочу петончегом как образцом махать, но он тут прямо молодец.
[15:42:41] <ada_ru> (Gourytch) [a + b for a, b in zip(v1, v2)]
[15:43:01] <ada_ru> (nitrocerber) мои глаза
[15:43:29] <ada_ru> (Gourytch) <прислал наклейку> 😶
[15:54:32] <ada_ru> (Gourytch) о. а раст уже и в эмбеддед просочился?
https://habr.com/ru/post/495948/
[16:09:55] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <о. а раст уже и в эм…>
Да, давно
[16:10:01] <ada_ru> (I_vlxy_I) И в фронт и в железки
[16:10:22] <ada_ru> (Gourytch) ужас.
[16:10:28] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <берёшь два таких мас…>
Индекс, как по мне, вообще внешняя сущность по отношению к массиву.
[16:10:50] <ada_ru> (Gourytch) «Пропал Калабуховский дом.»
[16:10:53] <ada_ru> (I_vlxy_I) Он может быть любым
[16:11:06] <ada_ru> (nitrocerber) что такое массив?
[16:11:30] <ada_ru> (I_vlxy_I) отвечает (nitrocerber) на <что такое массив?>
Это массив данных :-) куча данных непрерывно сваленная
[16:11:43] <ada_ru> (nitrocerber) структура данных, хранящая набор значений (элементов массива), идентифицируемых по индексу или набору индексов, принимающих целые (или приводимые к целым) значения из некоторого заданного непрерывного диапазона.
[16:11:52] <ada_ru> (nitrocerber) педивикия ту зе рескью
[16:12:15] <ada_ru> (nitrocerber) "идентифицируемых по индексу"
[16:12:35] <ada_ru> (I_vlxy_I) Есть одномерный массив. Я могу хотеть иметь индекс который обращается к элементам как к двумерному массиву
[16:12:40] <ada_ru> (I_vlxy_I) Это частый кейс
[16:13:05] <ada_ru> (I_vlxy_I) У массива может быть сколь угодно сложный индекс так то
[16:13:21] <ada_ru> (I_vlxy_I) Индексов может быть много
[16:13:22] <ada_ru> (nitrocerber) реализуй element(index) и хоть гусями индексируй же
[16:15:00] <ada_ru> (nitrocerber) и вообще, хочешь произвольный индекс - бери map)
[16:15:57] <ada_ru> (Gourytch) собссно, я согласен с предыдущим оратором: map/dict - это наиболее универсальное решение.
[16:16:18] <ada_ru> (Gourytch) правда обычно хочется не key->value хранить, а только value
[16:17:43] <ada_ru> (nitrocerber) Ну тут или рыбку съесть, или на катере кататься. Массив - частный случай реализации мапа интами по чему скажешь с вытекающей оптимизацией и недостатками
[16:18:12] <ada_ru> (nitrocerber) Если хоцца индексировать по гусям - гусей прижётся хранить) или кодировать интами...
[16:24:15] <ada_ru> (I_vlxy_I) Подумал, вроде бы особенно не за что блеймить и шеймить тут Аду. Разве что только за хранение лишнего числа для каждого массива. Что суть перерасход памяти. Но он столь ничтожен, что там, где это критично, можно прямо поверх памяти сырой навернуть то, что хочется
[16:33:13] <ada_ru> (Gourytch) я понял что такое перерасход когда пару миллионов интов в питончике в оперативку попытался загрузить из базы. и когда сервер стал колом я осознал, что шестьдесят четыре мегабайта оперативки для плюсов и для питона - это совсем разные размеры =)
[16:57:26] <ada_ru> (I_vlxy_I) 2 миллиона интов это ж вообще ничто
[16:57:29] <ada_ru> (I_vlxy_I) совсем ничто
[16:57:50] <ada_ru> (I_vlxy_I) это можно грузить в ОЗУ дивайсов 25 летней давности спокойно
[17:13:16] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <я понял что такое пе…>
а питончик то небось там список вместо массива решил сделать?
[17:13:35] <ada_ru> (I_vlxy_I) да еще оно всё и boxed до кучи...
[17:13:41] <ada_ru> (Gourytch) отвечает (I_vlxy_I) на <а питончик то небось…>
так у него только оно и есть.
[17:17:17] <ada_ru> (I_vlxy_I) не. если бы оно сделало тьюпл - было бы сильно компактней 🙂
[17:17:27] <ada_ru> (I_vlxy_I) тьюпла это ж непрерывный памяти кусок
[17:18:09] <ada_ru> (Oleg) Docker и Linux надежно говорили они
[17:18:20] <ada_ru> (Oleg) Redirecting to /bin/systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Tue 2020-04-07 17:02:34 MSK; 41s ago
Docs: https://docs.docker.com
Process: 1792 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 1792 (code=exited, status=1/FAILURE)
Apr 07 17:02:34 srv-docker01.whsd-office.local systemd[1]: start request repeated too quickly for docker.service
Apr 07 17:02:34 srv-docker01.whsd-office.local systemd[1]: Failed to start Docker Application Container Engine.
Apr 07 17:02:34 srv-docker01.whsd-office.local systemd[1]: Unit docker.service entered failed state.
Apr 07 17:02:34 srv-docker01.whsd-office.local systemd[1]: docker.service failed.
Apr 07 17:02:42 srv-docker01.whsd-office.local systemd[1]: start request repeated too quickly for docker.service
Apr 07 17:02:42 srv-docker01.whsd-office.local systemd[1]: Failed to start Docker Application Container Engine.
Apr 07 17:02:42 srv-docker01.whsd-office.local systemd[1]: docker.service failed.
Apr 07 17:03:06 srv-docker01.whsd-office.local systemd[1]: start request repeated too quickly for docker.service
Apr 07 17:03:06 srv-docker01.whsd-office.local systemd[1]: Failed to start Docker Application Container Engine.
Apr 07 17:03:06 srv-docker01.whsd-office.local systemd[1]: docker.service failed.
[root@srv-docker01 ~]#
[17:18:42] <ada_ru> (I_vlxy_I) отвечает (Oleg) на <Docker и Linux надеж…>
никогда не говорили, кстати
[17:18:52] <ada_ru> (Oleg) так короче
[17:18:53] <ada_ru> (I_vlxy_I) докер он не для продов
[17:26:03] <ada_ru> (I_vlxy_I) отвечает (Gourytch) на <так у него только он…>
вообще, мир вебни с их недоязыками странный.
то 2 миллиона элементов - это дофига много
то база размером в 2 гигабайта - огромная просто
то сервисы, обменивающиеся сообщениями по IPC, иногда шлют ГИГАНТСКИЕ сообщения размером в 10 КИЛОБАЙТ!11
[17:28:42] <ada_ru> (I_vlxy_I) ОГРОМНЫЙ ТЕКСТОВЫЙ ФАЙЛ, С КОТОРЫМ ЕСТЕСТВЕННО ТЕКСТОВЫЙ РЕДАКТОР БУДЕТ ТОРМОЗИТЬ (3 Мегабайта)
[21:04:11] <ada_ru> (reznikmm) https://blog.adacore.com/the-elegance-of-open-source-collaboration
[21:19:36] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <https://blog.adacore…>
в этот блогопост надо добавить больше Alire 🙂
[21:19:52] <ada_ru> (I_vlxy_I) то, что я сейчас пишу, оно сразу как Alire проект оформлено
[21:27:02] <ada_ru> (I_vlxy_I) каждый новый проект должен быть запакетизирован и пользоваться другими пакетами. экосистему надо отращивать
[22:04:04] <ada_ru> (I_vlxy_I) Кстати, есть некоторая проблема, что gps собирает не через alire, и что ему для артефактов хочется отдельные папочки
[22:04:29] <ada_ru> (I_vlxy_I) Ну и alr run работает немного не так как хочется
[22:12:52] <ada_ru> (reznikmm) артефакт дир можно в проекте указать
[22:14:05] <ada_ru> (I_vlxy_I) отвечает (reznikmm) на <артефакт дир можно в…>
Ну да. Но alr при создании пакета и gpr создаёт. Так вот - там не прописаны правильные пути :-)