[01:38:54] <vlad2> Точка с запятой лишняя в рекорде. Включай Еберон режим :)
[01:44:42] <valexey> да, грамматика у Виртовского оберона немного не для людей, а для роботов
[01:45:25] <vlad2> Это Виртовская фишка - строгость в ущерб технологичности. Точка с запятой формально не нужна - значит ее нужно запретить. Пофиг на технологические нюансы типа того, что в диффе при добавлении нового поля будет две строки, а не одна...
[01:46:25] <valexey> и пофиг что копипастить запаришься постоянно. ну или просто код писать
[01:46:41] <valexey> грамматически красиво и ладно
[01:47:14] <valexey> не допустить избыточности в грамматике ценою избыточности при манипуляции с исходниками этого языка
[01:47:47] <vlad2> Про копипаст специально не говорю, потому что до такого легко додобаться  (оберон не поощрает копипаст, как классно).
[01:47:55] <valexey> по мифам и легендам, советская боевая техника была вот как Оберон - с тем же подходом
[01:48:07] <valexey> задачу выполняет как надо, но неудобная, жуть!
[01:48:59] <valexey> возможно потому Оберон так неплохо и лёг на русскую почву. местами.
[02:02:04] <valexey> vlad2: а в US при выборе места где искать жильё кто-нибудь вообще руководствуется ли доступностью общественного транспорта в этом месте? ну и чтобы на нем было удобно добираться до работы и прочих точек интереса.
[02:02:25] <valexey> или все забивают на ОТ и просто ориентируются как там на машинке добираться будет?
[04:54:01] <vlad2> Зависит от того есть ли общественный транспорт в принципе и ходит ли он до работы. И есть ли парковка при работе. Короче, общественный транспорт это хорошо, но насколько это важно зависит от.
[04:55:33] <vlad2> И вообще велосипед может оказаться удобнее и общественного транспорта и авто...
[09:44:36] <valexey> велосипед это тема, да
[09:54:39] <vlad2> Ты уже намылился в штаты? :)
[09:58:43] <valexey> пока нет :-)
[09:59:29] <valexey> я тут просто, на досуге, маршрутами да изохронами на карте занимаюсь. вот думаю насколько это может быть полезно человекам кроме меня.
[10:00:31] <valexey> в москве той же, кажется, довольно полезно -- найти все области города откуда на общественном транспорте до большинства мест потенциальной работы по специальности, будет добираться не дольше T минут.
[10:02:36] <valexey> но москва тут уникальна конечно - тут ОТ отлично развит
[10:02:49] <valexey> и на ОТ добраться до работы в среднем быстрее и комфортней чем на авто
[10:05:16] <Kemet> » [13:58:14] <valexey> и на ОТ добраться до работы в среднем быстрее и комфортней чем на авто
Думаю, так во всех более-менее крупных городах
[10:06:31] <Kemet> вот на ОТ мне добираться максимум 15 минут, а на авто так не получается и 40 минут бывает.
[10:10:07] <Kemet> а вот коллега живет достаточно далеко и на от добираться минут 40-50, а на авто почти 2 часа
[10:17:44] <valexey> ну вот например в Нижнем Новгороде не так.
[10:17:55] <valexey> либо одинаково либо на ОТ дольше
[10:18:09] <valexey> при том, что ОТ это в основном маршрутки переполненные. то еще удовольствие
[10:18:29] <valexey> в каком-нибудь питере из некоторых районов тоже только на авто добраться можно за адекватное время
[10:19:01] <valexey> а в Москве ОТ и не переполнен и комфортен и ваще...
[10:19:09] <valexey> даже если метро не учитывать
[11:08:19] <Kemet> valexey: ну метро у нас нет ))) от тоже не шибко комфортен, но трамваи троллейбусы автобусы и микроавтобусы. иногда приходится делать пенесадку, да. у меня прямой трамвай и куча автобусов( часто переполненных). вот я сажусь в трамвай и пилю себе не взирая на пробки, так вообще минут за 7 - 10 до площади и там минут 5 пешком. на автобусе чуток подольше, но и пешком всего 1-2 минуты. а на машине есть много трудностей. я понимаю, что есть районы где движуха минимальна и на авто стартовать проще и быстрее или куда заехать проще на авто, но том где придется ехать через центр и близлежащие улицы - там ад и проще проехать на от.
[14:28:13] <TRUE> vlad2> Это как раз "те же самые проблемы" про которые я говорил - т.е. ошибка в рантайме.
ошибка в рантайме и динамическая типизация - это разные вещи.
[14:30:42] <TRUE> почему вы любое изменение в прогшрамме пытаетесь подвести под динамическую типизацию? Есть переменная целого типа со значением пять. Мы делаем инкремент. Получается шесть. То есть, в программе есть динамичность, и действие произошло над переменной у которой есть тип - значит, это язык с динамической типизацийе
[15:20:26] <valexey> https://habr.com/post/434556/
[15:20:32] <valexey> Казалось бы, при чем тут оберон? :-)
[15:22:11] <valexey> " Видно, что на плате установлен 24-ядерный процессор ARM Cortex A53 с 32 ГБ оперативной памяти (на кадрах из операционной системы показано 29,4 ГБ), а система работает под управлением Ubuntu 18.04.1 LTS. "
[17:25:50] <Kemet> Ну работает и работает, количество бабла и ресурсов вбуханых в линупс несопоставимо с оными для оберонов
[17:27:43] <geniepro> Kemet: наверное это несопоставимо не просто так? стартовые условия у оберонов были куда лучше, чем у линукса, ну, не считая того, что линукс был бесплатным, а на оберонах оберонщики нажиться пытались
[17:27:51] <valexey> насколько я понимаю, для таких железяк предлагается 24 штуки блекбоксов или оберонов запускать параллельно
[17:28:04] <valexey> и пущай обмениваются данными через шаредмемори или соцкёт
[17:28:04] <geniepro> valexey: норм! микросервисы!
[17:28:18] <valexey> МАКРОСЕРВИСЫ!
[17:28:56] <Kemet> При этом всё это вбуханле можно было уменьшить на пару тройку порядков, если бы там было какое то представленыие и векторе развития, сейчас же там разброд и шатания, каждый пишет в меру своего понимания , причем явно  употребив самогонки с мухоморами
[17:29:32] <valexey> да не. вроде в ядре всё более-менее коньсистентно
[17:38:53] <prospero3000> i=2
i="hello"
print(i)
>>> "hello"
[17:38:59] <Kemet> Ну вот теперь нужно на нем запустить а2)
[17:39:28] <prospero3000> Если это СТРОГАЯ динмическая типизация -- то я балерина ёперного театра. Большого театра.
[17:42:45] <valexey> да, это именно строгая динамическая типизация.
[17:42:48] <geniepro> prospero3000: в этом коде нет ограничений на тип объекта кроме того, что его можно распечатать -- в чём проблема?
[17:44:21] <geniepro> капец, в обероне07 ещё и порядок переменных и процедур важен! о_О абсолютно не дружелюбный язык к тем, кто будет его учить
[17:44:44] <valexey> Аналогично (жаба):
interface Printable {void printSelf();}

class S implements Printable {...}
class I implements Printable {...}

...

Printable i = new I(2);
i.print();
i = new S("hello");
i.print();
[17:45:28] <valexey> geniepro: кто будет учить - тому как раз норм. а вот тому, кто его будет использоваться для написания программ, тому боль.
[17:46:39] <geniepro> valexey: но как учить без написания прог?
[17:47:12] <valexey> да легко. фигли? побольше теории и писать на бумажке. и норм.
[17:47:15] <valexey> или на доске.
[17:47:20] <valexey> это ж практически псевдокот
[17:47:26] <valexey> никто ж компилять его не будет
[17:51:52] <geniepro> хм:
MODULE test;
IMPORT JS;

TYPE
   PFruit = POINTER TO Fruit; Fruit = RECORD WhoAmI: PROCEDURE END;
   PApple = POINTER TO Apple; Apple = RECORD(Fruit) END;
   PPear  = POINTER TO Pear;  Pear  = RECORD(Fruit) END;

VAR fruit: PFruit;
   apple: PApple;
   pear : PPear;      

PROCEDURE IAmanApple; BEGIN JS.alert("I Am an Apple!") END IAmanApple;
PROCEDURE IAmanPear;  BEGIN JS.alert("I Am an Pear!")  END IAmanPear;

BEGIN
   NEW(apple); apple.WhoAmI := IAmanApple;
   NEW(pear);  pear .WhoAmI := IAmanPear;
   fruit := apple;
   pear  := fruit(PPear);
   pear.WhoAmI()
END test.

Error: typeguard assertion failed: 'Apple' is not an extension of 'Pear'
[17:56:27] <geniepro> так, а чо, выражение "fruit(PPear)" уже сразу же меняет тип fruit на PPear? я как-то ожидал, что оно вернёт приведённый к типу PPear указатель fruit, но сам fruit не изменит...
или это баг компилятора у Влада?
[17:57:27] <TRUE> это особенности реализации
[17:57:54] <Kemet> В обероне нельзя изменить тип, а жабаскрипт это такой жабаскрипт
[17:58:43] <TRUE> есть преобразования типов же
[17:59:36] <geniepro> pear  := fruit(PPear); компилится в pear = RTL$.typeGuard(fruit, Pear);
получается, как будто RTL$.typeGuard перезаписывает значение fruit, хотя в её теле я ткаого не увидел
[17:59:44] <Kemet> Тип то не меняется
[18:01:32] <Kemet> TRUE, преобразования типа - в результате получается новая перменная, тип которой опять же определен на этапе компиляции
[18:02:20] <TRUE> новое значение получается. С новым типом.
[18:02:48] <Kemet> Новое значение с другим типом не получить
[18:03:56] <Kemet> Можно получить только новую ( возможно вре енную) переменную
[18:06:58] <TRUE> переменные нужны до этапа компиляции. Программа работает со значениями и адресами. Грубо говоря, переменные перобразуются в адреса.  У адреса нет типа. Все рантайм проверки идут над значениями.
[18:07:22] <TRUE> или я что-то неправильно понимаю..
[18:10:25] <Kemet> TRUE, указатели в обероне типизированные. Экзе пляры ссылочного типа создаются на этапе выполнения и в общем случае могут быть проверены только в рантайме. Операции с указателями всегда приводят к проверкам типа и в этом смысле указатели никуда не исчезают
[18:13:08] <TRUE> так это указатели, а не переменные. Переменные - это идиома
[18:14:57] <Kemet> Это теологические тонкости
[18:17:36] <Kemet> Структурные типы храняит метаинформацию, поэтому перменные никуда не исчезают внутри
[18:20:44] <Kemet> Процессору да, все равно, он адресами оперирует, но мы то говорим о яву, и в метафизическом плане переменные существуют на всем протяжении жизненного цикла программы
[18:28:24] <geniepro>   pear  := fruit(PPear);

как я понял, ошибка Error: typeguard assertion failed: 'Apple' is not an extension of 'Pear'  выскакивает во время попытки каста
[18:28:28] <Kemet> В языке переменные это ж просто имена, а внутренности это уже компилятор и рантайм, для которых эти переменные физически существуют
[18:30:17] <Kemet> geniepro, это ошибка в компиляторе явно
[18:30:28] <geniepro> Kemet: почему?
[18:30:51] <geniepro> при попытке каста происходит прерывание работы программы с сообщением об ошибке
[18:30:56] <geniepro> а как иначе?
[18:31:28] <geniepro> или по твоему этот код вообще не должен компилироваться?
[18:31:43] <Kemet> Потому что в обероне указатели типизированные и типизированные статически, там тип указатели - фрукт а не яблоко.
[18:31:54] <geniepro> тогда нужно в компиляторе делать анализ потоков данных, что явно не виртовский путь
[18:32:46] <geniepro> Kemet: ну так в чём ошибка? я пытаюсь скачтовать фрукт к груше, в чём проблема-то?
[18:33:15] <Kemet> Проблема в компиляторе
[18:33:24] <geniepro> яблоко -- подтип фрукта, значит его можно присвоить фрукту
[18:33:25] <Kemet> Там ошибка
[18:33:33] <geniepro> где там ошибка? и в чём именно?
[18:34:19] <Kemet> В том что тип указателя fruit не должен меняться, а у Влада он измениля на яблоко
[18:34:50] <geniepro> прицип подстановки Лиссковой -- там где используется какой-то тип, можно использовать его подтип
[18:35:10] <Kemet> Он думает что в обероне динамическая типизация а она статическая
[18:35:36] <prospero3000> geniepro в этом коде нет ограничений на тип объекта кроме того, что его можно распечатать -- в чём проблема? Проблема в том, что это не диманическая типизация. Это каша. Смена типа переменной должна быт ьявной.
[18:35:52] <geniepro> Kemet: в 17 страницах об этом что-нибудь сказано, или это твои домыслы?
[18:36:12] <Kemet> Конечно сказано
[18:38:58] <Kemet> geniepro, просто нужно различать тип указателя и тип экземпляра на который он указывает. Экзе пляр доле быть того же типа что и тип указателя или быть расширением данного типа
[18:39:26] <Kemet> И тип указателя всегда известен и именно им нужно оперировать
[18:42:12] <geniepro> в этих нескольких абзацах я не нашёл подтверждения твоему утверждению:
6.3. Record types
A record type is a structure consisting of a fixed number of elements of possibly different types. The
record type declaration specifies for each element, called field, its type and an identifier which
denotes the field. The scope of these field identifiers is the record definition itself, but they are also
visible within field designators (see 8.1) referring to elements of record variables.
RecordType  = RECORD ["(" BaseType ")"] [FieldListSequence] END.
BaseType  = qualident.
FieldListSequence = FieldList {";" FieldList}.
FieldList  = IdentList ":" type.
IdentList  = identdef {"," identdef}.
If a record type is exported, field identifiers that are to be visible outside the declaring module must
be marked. They are called public fields; unmarked fields are called private fields.
5
Record types are extensible, i.e. a record type can be defined as an extension of another record
type. In the examples above, CenterNode(directly) extends Node, which is the (direct) base type of
CenterNode. More specifically, CenterNodeextends Nodewith the fields nameand subnode.
Definition: A type Textends a type T0, if it equals T0, or if it directly extends an extension of T0.
Conversely, a type T0is a base type of T, if it equals T, or if it is the directbase type of a base type
of T.
Examples of record types:
RECORD day, month, year: INTEGER
END
RECORD
name, firstname: ARRAY 32 OF CHAR;  age: INTEGER;
salary: REAL  END
6.4. Pointer types
Variables of a pointer type Passume as values pointers to variables of some type T. It must be a
record type. The pointer type Pis said to be bound to T, and Tis the pointer base type of P.Pointer
types inherit the extension relation of their base types, if there is any. If a type Tis an extension of
T0and Pis a pointer type bound to T, then Pis also an extension of P0, the pointer type bound to
T0.
PointerType = POINTER TO type.
If a type Pis defined as POINTER TO T, the identifier Tcan be declared textually following the
declaration of P, but [if so] it must lie within the same scope.
If pis a variable of type P = POINTER TO T, then a call of the predefined procedure NEW(p) has
the following effect (see 10.2): A variable of type Tis allocated in free storage, and a pointer to it is
assigned to p. This pointer pis of type Pand the referenced variable p^is of type T. Failure of
allocation results in pobtaining the value NIL. Any pointer variable may be assigned the value NIL,
which points to no variable at all.
[18:44:05] <valexey> Вроде компилятор и рантайм ведут в oberonjs логично. Как и в любом другом ЯП.
[18:46:35] <valexey> "[17:51:52] <geniepro> так, а чо, выражение "fruit(PPear)" уже сразу же меняет тип fruit на PPear? я как-то ожидал, что оно вернёт приведённый к типу PPear указатель fruit, но сам fruit не изменит...
или это баг компилятора у Влада?"

Тут же тайп чек происходит. При таком приведении. Динамиккаст, так сказать. Проверяемый апкаст.
Ты бы хотел в какой момент иметь рантайм падение тут? Разве не в этом?
[18:47:10] <Kemet> geniepro, да вроде все там написано. Кроме того нужно понимать что такое статическая типизация и не превращать ее в динамическую, а в данном ко пиляторе именно это, похоже и сделано
[18:47:17] <Kemet> По крайней мере привеленный код это демонстрирует
[18:47:55] <TRUE> если не сказано, что компиляция должна быть статической, то почему бы её не сделать динамической?
[18:48:29] <TRUE> или по-другому. Если динамическая типизация не мешает реализации языка, то почему бы её не сделать?
[18:48:36] <TRUE> раз они так хотят
[18:49:51] <Kemet> TRUE, ЮТак оберон статически типизированный яп и непонимание этого приводит к разным казусам
[18:49:52] <TRUE> а в этот fruit после каста можно присвоить что-то кроме PPear? То есть, PApple туда присвоить по-прежнему реально?
[18:50:57] <Kemet> В ссылочный фрут можно присвоить любой ссылочный расширенный тип
[18:51:10] <TRUE> изначально - да. Но каждая реализация Оберона чем-то отличается. Почему бы не сделать и такую. Имеет право на существование. Просто то, что применимо к ней, неприменимо к остальным Оберонам
[18:51:49] <Kemet> Нет, нужно отделять статику и динамику
[18:52:50] <TRUE> в том коде, который показывали раньше с грушами и яблоками, у переменной как-то менялся тип. После смены типа возможно ли в эту переменную записать фрукт другого типа, а не изначального?
[18:55:20] <valexey> да ну блин.
Object o = new A();
B b = B(o);

Вопрос -- тут должна быть ошибка компляции?
[18:55:35] <valexey> A и B естественно наследники Object'a
[18:58:59] <TRUE> если писать без синтаксических ошибок, то в простом компиляторе - нет. В сложном - может да, а может нет. Точнее, будет ворнинг, наверно.
[19:00:14] <valexey> таак. а жаба прога шлепнется где? в рантайме?
[19:00:23] <valexey> это ж точно то же поведение, что и в oberonjs!
[19:00:29] <valexey> я не понимаю про что спор вообще
[19:03:01] <TRUE> я по этому поводу ничего не говорил
[19:03:23] <valexey> я понимаю. но, кажется, Kemet говорил
[19:03:52] <valexey> тут много чего-то наговорили. я всё не читал. :-) просто стриггерило на пример кода и общую атмосферу безумия
[19:06:16] <Kemet> Он там никак не менялся, я уже писал. В обероне указателяли статическаяи типизированы. Их тип известен на этапе компиляции и никогда не меняется и динамически не прокрядтся. А вот экземпляр на который он указывает  может быть как ттго же типа так и расширеного и образуетие к экзе пляру требует проверок. Если есть код var fruit:  PFruit; и ты делаешь fruit := apple, то тип указателя не меняется, а тип экземпляра меняется и когда ты дальше делаешь pear := fruit( PPear ) ,  то на этапе компиляции ты не можешь прокрить истинность, так как экземплРов еще нет и прокряется лишь допустимость такого приведениеия, а тна возможна для ссылочных типов в этом случае. А ос альное проверяется в рантайме и трапнется.
[19:07:23] <valexey> ну вот тут именно в рантайме оно и трапается на этой строчке
[19:07:25] <valexey> что не так то/
[19:07:27] <valexey> ?
[19:10:36] <Kemet> Нуу, мне показалось ч о на этапе компиляции)
[19:12:32] <TRUE> не, трапается на исполнении js-кода
[19:13:07] <valexey> на исполнении НЕ ВАЖНО какого кода.
[19:13:22] <valexey> оно с тем же успехом и в бинарь могло бы собрать.
[19:13:30] <valexey> считаем что трапается на исполнении Оберон-кода :-)
[19:15:39] <Kemet> Хех
[19:16:10] <valexey> А то у вас тут была такая война, что мне аж страшно стало
[19:21:06] <Kemet> Ну меня смутило там слово еггог
[19:24:13] <Kemet> Тут было не понятно, мне казалось это этак компиляции
[19:24:23] <Kemet> [geniepro 21:51]
» так, а чо, выражение "fruit(PPear)" уже сразу же меняет тип fruit на PPear? я как-то ожидал, что оно...
---
[19:24:57] <valexey> ну, в рантайме же. проверка типа. но да, geniepro выразился коряво.
[19:29:49] <Kemet> Ассерт и на этапе компиляции может срабатывать, когда всё очевидно. Я в ао пару раз натыкался, низя было присвоить, и приходилось переменную вводииь, ч обы ко пилытор запутать
[19:30:39] <valexey> хочется всё же два разных ассерта. static_assert и просто assert. как в плюсах
[19:32:01] <TRUE> это для свободы ошибаться с правильным выбором ассерта?
[19:32:07] <Kemet> Как раз было чтото подобное от генияпро, но проще, оно сразу просчитывалось и не компилялось
[19:32:34] <valexey> TRUE: угу. удобно!
[19:32:43] <Kemet> Неее
[19:34:14] <Kemet> Если оно трапается при компиляции ты явно чтото странное делаешь))
[19:36:40] <TRUE> например IF FASE THEN ... END
[19:48:23] <geniepro> TRUE> а в этот fruit после каста можно присвоить что-то кроме PPear? То есть, PApple туда присвоить по-прежнему реально?
в процессе каста программа падает, так что после каста уже ничего нельзя сделать, ибо ничего уже нет
[19:52:14] <valexey> синтаксис приведения типов у Оберона немного инопланетный таки.
[19:52:34] <geniepro> valexey> ну, в рантайме же. проверка типа. но да, geniepro выразился коряво.
да я отвлекался постоянно, не сразу понял что там происходит в этом вашем браузере, в котором даже ошибки выполнения не стираются после успешной компиляции
[19:52:58] <valexey> дык ты бы отдельно тыкал compile
[19:53:02] <valexey> а не "хочу всё и сразу"
[19:53:21] <geniepro> ну так тыкаю -- ничего не происходит, и хер пойми что там где
[19:53:39] <geniepro> в нормальном компиляторе в кончоли пишется -- "скомпилировал!!!!"
[19:53:42] <geniepro> а тут нет
[19:54:47] <geniepro> хоть бы была кнопка очистки окна с JS-кодом и строкой ошибки выполнения
[19:55:31] <geniepro> можно, конечно, нажать F5, но тогда очищается и окно с программой, а это уже нетехнологично
[19:56:44] <geniepro> кстати, неплохо было бы в процедуре каста выводить номер строки окда на обероне, в которой происходит этот неудавшийся каст, а то хрен задолбаешься отлаживать в программе побольше
[19:57:14] <valexey> может тебе еще и отладчик дать?
[20:00:18] <valexey> А у Ивана Денисова там нет более культурной веб-странички для экскрементов?
[20:02:13] <geniepro> мне кажется или этот каст како-то неправильный?
   typeGuard: function(from, to, line){
       if (!from)
           return from;
       if (!(from instanceof to)){
           var fromStr;
           var toStr;
           
           if (from && from.constructor && from.constructor.name)
               fromStr = "" + from.constructor.name;
           else
               fromStr = "" + from;
           
           if (to.name)
               toStr = "" + to.name;
           else
               toStr = "" + to;
           
           var msg = "typeguard assertion failed in line " + line;
           if (fromStr || toStr)               
               msg += ": '" + fromStr + "' is not an extension of '" + toStr + "'";
           throw new Error(msg);
       }
       return from;
   }
[20:02:57] <geniepro> эм, line я добавил для эксперимента щас
[20:03:02] <geniepro> в оригинале его нету
[20:03:37] <geniepro> я имею в виду, почему возвращается from? или это только для указателей каст?
[20:06:14] <geniepro> ладно, это всё херня! лучше изучайте секси-типы! https://www.youtube.com/watch?v=5lWIG3XQ2-A
[20:12:29] <valexey> секси типы, секси типы.. А я тут с Конаном трахаюсь!
[20:17:56] <geniepro> valexey: ну я давно подозревал тебя в необычной ориентации )))
[20:18:13] <valexey> да. а трахаюсь я с ним в малине!
[20:18:26] <geniepro> конан-варвар тот ещё мужыыык
[20:20:15] <valexey> да он там вовсю сейчас малинку насилует
[20:29:03] <vlad2> Наехали на компилятор ни за что... Ложечки нашлись, а вот остадок остался... :)
[20:29:22] <geniepro> vlad2: ненене, ты там дорабьотай страничку компиляторскую!!!
[20:30:03] <geniepro> и да, добавь вывод строки каста в случае авоста
[20:30:14] <vlad2> Страничка следует духу оберона :)
[20:31:25] <geniepro> Kemet> geniepro, да вроде все там написано.
ну процитируй конкретную строку
[20:35:07] <geniepro> https://www.facebook.com/olegchir/posts/2124079934281669
[20:44:09] <valexey> geniepro: зачот
[20:45:09] <valexey> geniepro: я вот, в свое время, примерно также понял про Оберон. Что всё. хватит в этом направлении глубоко копать.
[20:54:05] <valexey> Kemet: а что такое Component Oberon?
[21:02:53] <Kemet> valexey, хз, встречал как то в инете, какая. О поделка студенческойта из етх
[21:03:06] <valexey> хы
[21:03:45] <valexey> интересно, до буддена как скоро дойдет, что oberon/f -- это oberon framework (рантайм и либы) а oberon/L -- это Oberon LANGUAGE? :-)
[21:03:52] <Kemet> И там нет капса)))
[21:04:07] <valexey> Kemet: чорт! тот язык был обречен на успех! если бы не помер.
[21:07:03] <Kemet> valexey, ну это сразу не очевидно, если в отрыве смотреть, вдруг он думает там какой нить энлайт ент
[21:07:32] <valexey> там уже пробегала инфа, что oberon/f это не язык, а фреймворк
[21:07:42] <valexey> как бы дальше можно было бы и вывести
[21:07:46] <Kemet> [valexey 00:59]
» Kemet: чорт! тот язык был обречен на успех! если бы не помер.
---
[21:07:59] <Kemet> Да это не самое важное
[21:08:20] <valexey> Kemet: дык там и название у языка правильное уже было, и капса не было!
[21:08:26] <valexey> самый перспективный из оберонов же!
[21:09:34] <Kemet> Ну, насолько я помню, там было что то странное, как бы оно не испытало влияния композиты
[21:14:30] <valexey> Стадии знакомства с любым опенсорцным проектом

1 стадия – Отрицание (ну не может такого быть, наверное я что-то не понимаю и для Настоящих Профессионалов в этом коде всё отлично. Ух сейчас заберусь в пещеру на три месяца и разберусь!);

2 стадия – Гнев (бля, и здесь тоже понаписано говна, никакой документации, комментариев, какие-то куски залочки на проприетарщину приклеены, бэк зависит от фронта а фронт от бэка, чтобы понять как устроено здесь надо перечитать документацию от всех других проектов этой компании, явно всё посреди Большого Рефакторинга, всё выбросят через месяц и вот нахуй я это ковырял, блядь блядь блядь!);

3 стадия – Торг (ну допустим, понимание этих принципов поможет мне в будущем при создании своего проекта. Да и на этом можно вполне жить, если придумать - как. И в резюме строчка, опять же. И вообще я исследователь, это инженеру важно чтобы работало, а мне - чтобы было в чем копаться.);

4 стадия – Депрессия (на данном этапе человек может круглые сутки находится в депрессивном состоянии. Суть такова, что жизнь проходит зря, а ты ковыряешься в говне мамонта технологий 60-х годов прошглого века, и даже с этим не можешь разобраться. В то время как вокруг искусственный интеллект и не нужно больше программистов и компиляторов, блокчейн, диджитализация, аджайл);

5 стадия – Принятие (согласие с неизбежной участью, последовательное чтение всех исходников подряд в алфавитном порядке, в иллюзорном стремлении закэшировать в мозг как можно больше).

( https://users.livejournal.com/--hedin/824921.html )
[21:26:23] <geniepro> бескапсовый оберон -- это же зоннон! я однажды чуть не стал зоннонистом, но его забросили раньше (((
[21:42:01] <valexey> geniepro: пассивный оберон тоже могёт безкапсовым быть!
[21:42:05] <valexey> в смысле активный
[21:42:46] <geniepro> valexey: вот ведь какие у тебя оговорочки по фрейду ))
[21:43:20] <valexey> пассивно агрессивный оберон :-)
[21:43:53] <valexey> vlad2: btw на малинке, после некоторого секса, opencv смог поставиться (собраться) через conan
[21:44:12] <valexey> баги, которые огреб в процессе я там челу зарепортил и сейчас он поправит.
[21:44:46] <geniepro> ну хоть какая-то польза )))
[21:44:56] <valexey> кажется conan штука довольно удобная. не без тараканов конечно.. но без них и не бывает.
[21:56:08] <valexey> а вот был бы там не линух, на малинке, а оберон - всё могло бы сложиться иначе!
[21:56:35] <valexey> (собиралось всё часа два с учетом исправления всех косяков. а чистого времени -- около часа)
[23:14:56] <NEW> geniepro: ты пару дней назад говорил про какой-то WebDAV-сервер на го. Как он называется?
[23:21:26] <geniepro> так и называется webdav, на гитхабе был
[23:23:34] <geniepro> NEW: сегодня ржака вышла -- напряг я нашего сисадмина (ну одного из них), что бы он настроил мне webdav на IIS -- оно то работает, то, стоит сисадмину отойти от моего компа -- тут же отваливается..
плюнул, вернул то решение на гошной прожке -- всё чётко работает, кроме того, что оно не умеет быть службой винды и его хитромудрым способом пришлось сервисом оформить
[23:24:42] <geniepro> NEW: вот, вот этот проект -- первый в поиске на гитхабе https://github.com/hacdias/webdav/releases
[23:31:38] <NEW> да, я уже нашёл, спасибо