Про 1С++ООП, на ночь глядя бесстыжими вочами

Автор Пиит, 05 апреля 2024, 00:58

« назад - далее »

Как Вы относитесь к Истории к контексте данного форума?

Пишите, коллега, история это всегда интересно
1 (50%)
Мне по барабану
0 (0%)
Хватит уже, чувак, расвешивать здесь свои простыни
1 (50%)

Проголосовало пользователей: 2

Пиит

Цитата: Пиит от 19 апреля 2024, 14:49.  попробуйте уложить таким способом таблицу таблиц...
Не переведутся никогда на земле русской таланты и гении.
Вот, надежда русского слога, Джахид Афраил оглы Гусейнли, послушайте:
"Буря мглою небо кроет
Вихри снежные крутя
То, как зверь, она завоет
То заплачет, как дитя
И если ты найдешь во мне Инь-Янь
Останови это мучение
В тот миг, когда я потерял тебя
Там вдали падала Луна..."

А? Красавчик.
Я вот, как и коллега Djelf, иногда задумываюсь о своей адекватности.
Так было и тот день, когла впервые разложил в тетрадке структуры данных по таблицам.
Так просто? Не, не может быть. Я чё, умный такой? Никто до меня ещё не допетрил?
А что Компания? Ну вот же оно, документ-то разложили, Dh и Dt, отчего не дожали, не пошли дальше?
Они ведь карасавцы, копали, даже наследование данных в один шаг ввели, вот оно - JOURN, общие реквизиты, что это если не ООП в РБД, мать его тудэ? Что не так? Или может я таки псих?
И включил я тогда волшебный ДиалАп. Фу ты, какое облегчение, я не псих.
Оказывается, много лет IBM с Oracle вкупе с другими крутыми ребятами не могли договориться между собой в мелочах об уложении сложных структур, но таки пришли к стандарту, SQL 3, выродили наконец к 1999 году. Так что я хочу от какой-то российской компании, на краю айти-вселенной, если буржуины только-только сами определились? И называют этот стандарт Объектным SQL.
Вот, уже как четверть века определяемые типы данных не только существуют, но и поддерживаются в известных СУБД, и даже приняты как стандарт в SQL, в целях поддержки концепции Объектно-Ориентирования Программирования.
А я вот уже больше 20-ти лет периодически бьюсь лицом об стол с одним вопросом: ну когда же, когда, когда, когда Компания наконец сдвинется в места, когда совершит очередную революцию?
Сегодня, 21 апреля 24 года, я хотел бы задать этот вопрос и вам, друзья мои, Программистам с большой буквы, крутым ребятам, вывернувшим платформу наизнанку в благих целях, и даже тем, кто просто "знает крутых ребят".
Поднимите руки, кто знал об этом и не предпринял ничего в этом направлении?
Или задайте себе вопрос, а может Компания остановилась не одна, может и вы остановились вместе с ней? Глядя, как вы обсуждаете, какой из лайт движков SQL лучше прикрутить на новое детище, я чего-то таки недопонимаю.

Не обижайтесь, друзья, немного перебрал наверное.
Может быть потому, что Сергей Дмитриевич Кузнецов, горячий сторонник, популяризатор и аппологет ООБД, таки не дожил до светлых дней, до своей мечты, и отошёл от дел не далее как в прошлом году, а я узнал об этом буквально вчера, когда подыскивал ссылку для очередной заметки для наших мальчиков.

Помянем? SQL 3:1999





Forum123

Цитата: Пиит от 21 апреля 2024, 08:39А я вот уже больше 20-ти лет периодически бьюсь лицом об стол с одним вопросом: ну когда же, когда, когда, когда Компания наконец сдвинется в места, когда совершит очередную революцию?

https://www.ispras.ru/proceedings/                  О журнале «Труды ИСП РАН»
https://www.ispras.ru/proceedings/recent-issues.php Выпуски последних лет

Пиит

Цитата: Пиит от 21 апреля 2024, 08:39...  какой из лайт движков SQL лучше прикрутить 

За пять лет моей работы "во франчах", всего один раз за всё это время, я смог "впарить" SQL-версию Предприятия v7. И да, до этих самых пор, большинство моих клиентов работали и работают на файловых версиях, сами о том не догадываются, а меня это ни сколько и не смущает.
Не имеет ровным счетом никакого значения, какой движок БД будет прикручен к платформе. Это целиком и полностью прерогатива разработчика, как и выбор GDI, ОС и прочих постулатов.  Конечно, эти вопросы важны, от них зависит и ход реализации, и возможности платформы, но эти все вопросы лежат как вне моей компетенции, так вне моих интересов. Меня интересует, что я смогу сделать потом этим мотолком, что не смогу, или смогу, но не по прямому его назначению.

Вернёмся к теме. Как быть с вложенными друг в друга Таблицами, и смогу ли я уложить их в БД предложенным способом, при помощи Субтаблиц?
В работе я часто использую для отчетов вложенные друг в друга ТаблицыЗначений. Вот и намедни, раскладывал и подсчитывал данные Автотехконтроля по времени работы водителей, для доплаты ночных, на ТаблицахЗначений на глубину в четыре уровня вложенности. Поэтому вопросов, нужна ли кому-нибудь такая конструкция, я себе не задаю, хотя вопрос в общем правильный, практичный. Таких вопросов у нас на форуме хоть отбавляй. Смотришь порой хотелку очередную и думаешь, а на кой тебе парень эта хрень? И наоборот, твои хотелки читают коллеги, и пожимают плечами, куда ж ты её, вундеркинд, воткнуть-то собрался? Дело не в том, кому это нужно, дело в самой концепции, что я в ней задекларирую, как обьясню правила пользования моим молотком, и какой предел прочности заложу этому инструменту.

Повторение Мать учения, поэтому напомню термины. Субтаблицей называют таблицу, взятую как поджножество колонок исходной таблицы БД. Последнюю называют в этом случае Супертаблицей. Здесь и далее я начну использовать термин ТаблицаБД, для исключения путаницы между Таблицей как структурой данных, представителем семейства множественных типов данных, знакомую нам в v7 под названием ТаблицаЗначений. ТаблицаБД - это собственно физическая таблица БД в рамках реляционной её модели. Ничего сложного.

Базовые типы данных я пропускаю, они представляются атомарными значениями в своих ячейках.
Структуры данных фиксированной размерности, такие как Массив и Структур, целиком и полностью укладыватся в свои Супертаблицы. С многомерным массивом также нет никакой сложности, на уровне ТаблицыБД он однозначно раскладывается в виде одномерного своего собрата, и таким же образом собирается обратно в свою многомерную логику. Единственное, что может нас испугать, это геометрический рост Супертаблицы "по горизонтали". Но и в v7 у нас есть будь здоров какие ТаблицыБД, порой не влазят и на ширину двух экранов, пуганые мы. К тому же, напомню, что и ОЗУ, и ПЗУ по сей день остаются одномерными массивами, в которые каким-то чудесным образов влазит вся ит-вселенная, не говоря уже о каких-то там типах данных.
В множественными структурами данных ситуация сложнее. Поскольку их размерность заранее не определена, всегда будет необходимость в двух ТаблицахБД для их уложения. Одна ТаблицаБД несёт в себе ключ Владельца записи, другая ТаблицаБД содержит само множество элементов, растёт "по вертикали", и кроме данных содержит поле-ссылку OWNER, содержащую ключ Владельца, более известный нам как ID, идентификатор записи ТаблицыБД влалельца.
Так вот, чтобы уложить Таблицу в другую Таблицу, необходимо, чтобы и эта ТаблицаБД была наделена своей субъектность, своим ID, чтобы каждая в ней запись могла служить в качестве значения OWNER для подчиненной ей ТаблицыБД, содержащей вложенную Таблицу.
Таким образом, мы приходим к выводу, что любой элемент множественного типа данных должен иметь свой ID. Немного необычно для v7, в ТабличныхЧастях которой нет уникального идентификатора для каждой её строки. А он должен был быть, имхо, уже в семёрке.
И не только множественные типы требуют ID, вернёмся обратно к Массивам и Структурам.
Представьте ситуацию, когда Супертаблица имеет вложенными в себя две Субтаблицы, два Массива одного типа, и в каждый их них мы хотим вложить например Таблицу. Каким же образом по значению OWNER в Подтаблице мы сможем отличить эти два Массива, для которых есть один только ID, идентификатор Валадельца, общий для обоих Массивов? Получается, что в этом случае мы не можем уложить даже множественный тип? Поэтому вот здесь и ставим многоточие, каждых тип данных обязан быть уложен в свою ТаблицуБД, иметь свой ID, и переходим таким образом к другой модели уложения - Ссылочной...

Пиит

Цитата: Пиит от 20 апреля 2024, 11:14...Уже в школе я был уверен на все 200, что стану программистом...

Первые уроки информатики были невыносимой мукой. Из гаджетов - тетрадь да ручка, и Робик на доске выводит мелом замысловатые формулы разложения десятичного числа в бинарную сущность. Робик - это наш и мой первый Учитель информатики, николько не смущался белым от мела пиджаком, повторя при этом, что информатика - это наука, и не обязательно иметь под рукой компьютеры для её изучения, достаточно вот этого куска мела. Так то оно может и так, но уроки утомляли меня бесконечным поглядыванием на часы, а когда дело дошло до алгоритмического языка, НЦ/КЦ, я и вовсе стал скучать по футбольному мячу, и оценки такого усердия стали соответсвующие.
Наша жизнь изменилась в одно морозное утро, когда к учебному заведению подкатила большая фура с неизвестным содержимым и нас, парней покрепче, сняли с физры на помощь Робику заниматься погрузочно/разгрузочными работами. На вопросы вне урочного времени Робик отвечать отказался, с волнением бегал вокрук ящиков, с довольным видом потирал руки и покрикивал на неопытных грузчиков, не дрова мол носим.
Да, это были они, 286-е Машины, с 1М ОЗУ, без ХДД, но с VGA, они самые, сверхъестественные на то время наглядные пособия учебного процесса. Так лицей стал первым в городе учебным заведением с самым настоящим классом не каких-нибудь УКНЦ, а фирменных АйБиЭм. За чей счет банкет, я не знаю до сих пор, поговаривали, что какие-то мериканьские спонсоры отслюнявили такое богатство. Кто не в курсе, в 91м году такое один такой гаджет стоил целой квартиры в моём уездном городке.
Отбоя от желающих пощупать, понюхать и попробовать на зуб чудо-технику первое время было так много, что Робик открыл в школе "вторую смену", после обеда приезжал в родные пенаты, открывал кабинет и отскакивал в сторону, чтобы не снесло его бурным потоком юных исследователей. Дрались за каждую машину, сидели по трое за одним монитором. Ещё бы, только физмата было восемь классов разных возрастов, не считая очкариков из других факультетов. Такое безобразие Робик быстро прекратил, введя Журнал учёта, где уже по квотам, не далее чем на неделю, мы записывались по времени на вожделённой свидание со своим цифровым другом.
Учебники среди дефицитов того времени были для нас самым ценным приобретением, у Робика - только под запись и только на один день, крутись как хочешь. Бэйсик был освоен мною именно таким образом за одну ночь. Паскаль я осваивал уже по своей, честно спионеренной в городской библиотеке рукописи Никлауса Вирта, за что отнёс взамен целую стопку какой-то макулатуры. Дискеты - на вес золота, я даже звонил в МММ, тогда ещё безобидную компьютерную контору, чтобы прислали мне, сироте Бресткой, посылкой парочку. Посмеялись и повесили трубку.
Со временем от желающих проводить время вечерами остались только самые стойкие, прирождённые, и сложилась у нас такая себе айти-банда местного разлива. Обзавелись как-то дискетами, стали приносить всяки вкусняхи и делиться друг с дружкой. И, конечно, в первую очередь это быди игрухи. Пакман отстой, ПринцОфПерсия наше всё. Как же буржуины его так отрисовали? И полез наш коллективный разум в видеопамять, разбирать на части этот гадкий VGA. С мультиками уже всё ясно, или фон, или персонаж, проехали. А как-же буржуины распараллеливают персонажи, Принц бежит, огонь горит, а боссу всё похер, а? Это не реал тайм какой-то, и это ж надо ещё оторвать от процессорного времени, заглушки нужны от таймера. Вот таким образом мы и росли над собой, каждый в отдельности и все разом одновременно, освоили языки, начали писать себе библиотеки, "драйвера" для мышки, добрались до прерываний и портов, освоили таким способом ассемблер. Ну, и конечно, Петер Нортон тоже парень что надо. Не дурак, не зацикливал обработку ожидания пользователя, как мы, а включился в таблицу прерываний. Вот кто отец всех хакеров и вирусов на свете. Резиденты, это наше всё, и отныне мы стали хакерами, подбрасывали друг дружке безобидные какахи на дискеты, чтобы вместе потом поржать над бедолагой. Тогда же мы и придумали Окна. Да, да те самые Окна. Это просто, ведь если все программы включить в цепочку таблицы прерываний, они смогут работать одновременно, нужно только отказаться от текстового режима 80х25, уйти в графику и все дела. Покрутили мы это открытие, ну да, можно, а как все проги причесать под одну гребёнку, чтобы знали кажный своё окно? Не прикажешь ведь, в общем, покрутили идею и выбросили, таки под одну гребёнку - это не наш метод. У нас у каждого уже на дискетах свои проекты, свои игрули. Тем более, кто-то притащил Реталятор, первый известный мне авиасимулятор, и мы все как один переключились на разгадку 3D моделирования.
Неизвестно, как сложилась бы судьба человечества, и что ещё выдумала бы наша айти-банда, но неожиданно пришёл конец нашему броуновскому развитию, и как это обычно бывает, в один прекрасный день.
Представьте, урок информатики, Робик ведёт урок, объясняет покрасневшим девочкам про начало циклов и конец оных, и вдруг так вот, посреди занятия, на Учительской машине выскакивает на весь экран тётька с титьками и не только. Робик покраснел и отправился к директору.
Нет, родителей в школу не вызывали, Робик поступил по-другому, так как не ожидали ни мы, и не догадался бы мой читатель. Робик не закрыл "вторую смену", не искал виновных, а отправился к директору выбивать деньги на дополнительные факультативы. Отныне Робик стал приглашать местных специалистов читать нашей банде по вечерам лекции, направляя тем самым бурную творческую активность в правильное русло. Александр Адамович Сахарук познакомил нас с языком Си, Виталий Александрович Козлов - с Клиппером, его брат Александр Александрович, будучи программистом, и вовсе перешёл учительствовать к нам в школу, благо через годик мы обзавелись вторым компьютерным классом.

Вот так, покидая альмаматер в 93м году, я свободно разъяснялся на шести языках, среди которых два знал в совершенстве, это Паскаль и Кумир. Обычно не хвастают знанием русского, но здесь особый случай, это был любымый язык нашего Робика, Яцкевича Сергея Александровича, нашего Учителя с большой буквы.
Говорят, что он уже не с нами, но, как вы знаете, это не правда. Он всегда со мной, мой Робик, мой Кумир на все времена...

Пиит

Должен сказать, что моя айти-биография интересует в первую очередь меня самого. Мне, как и АЛьФу, в этом году предстоит штурм новой "вершины", в моём случае это покорение платформы v8. Да, я никогда ещё плотно с ней не работал, не знаю секретов и подводных камней, но дуть против ветра уже не имею возможности.
В связи с этим, кроме того, что мне нужно как следует встряхнуть свой процессор, хочу ещё и дефрагментировать нежножко свою память, вспомнить кто я есть, и на чьих плечах стою, потому как, признаюсь, немного сцыкотно, смогу ли я потянуть новые объемы информации.
Здесь я хочу развести ветку на две линии, собственно сабж, где планирую "бродить околицей" и биографию, где буду "снимать портки". Буду указывать ссылками на соответствующие субветки, чтобы у читателя была возможность пропускать не интересующие его подробности. Конечно, факты моей жизни позволят моему читателю немножко расслабиться, в какой-то степени стать ближе ко мне, ну а мне соответственно, стать ближе к вам. Спасибо за внимание.

Злоп

Цитата: Пиит от 22 апреля 2024, 20:46позволят моему читателю немножко расслабиться, в какой-то степени стать ближе ко мне, ну а мне соответственно, стать ближе к вам
https://www.youtube.com/watch?v=Bq7398HxsVI&t=84s

Пиит

Цитата: Пиит от 22 апреля 2024, 10:22... переходим таким образом к другой модели уложения - Ссылочной...

Модель уложения структур данных 2. Ссылочная.
Должен предупредить, что давно не слежу, чего там творят буржуины, какой по счёту стандарт SQL они нынче рожают. Причин этому аж целых три.
Во-первых, я немножко побаиваюсь самого языка запросов, назвал даже его сегодня про себя СцыКуэЛем, и не оттого, что это некая сложная субстанция, нет. Я действительно слабо знаю SQL, но моих знаний хватает, чтобы подозревать, что это детище реляционной модели в итоге не налезет на объектную модель БД от слова совсем.
Во-вторых, я перестал листать талмуды по объектому SQL, когда понял, что принятая ими модель уложения на базе Субтаблиц мягко скажем ограничена, как я уже указал, не только для вложений друг в друга множественных типов, но и в некоторых случаях для более простых структур. Может я таки не долистал до нужной страницы, но по своей привычке просто взял тетрадку и стал копать дальше самостоятельно.
И в третьих, меня больше занимает развитие концепции Запроса аля v7, как ПрикладногоОбъекта на базе другой теории, алгебраической теории множеств.

Вообще я этим предисловием хотел сказать, что так называемая Ссылочная модель уложения структур данных является плодом моего воображения, может она уже принята как некий стандарт, а может существует только как идея в головах таких любителей поболтать, как я.

Итак, по порядку. Для каждого определяемого ТипаДанных предполагается наличие собственной ТаблицыБД, с обязательными для неё полями ID и OWNER. Поле Идентификатор создает субъектность ТипаДанных, т.е. возможность для вложения в него других ТиповДанных, а поле Владелец соответственно определяет его объектность, т.е. возможность быть вложенным в другие структуры данных.
Рассмотрим примеры, и начнём не с базовых типов, как обычно, а с середины списка. Составный тип данных фиксированной размерности, Массив либо Структура, выносятся со всем своим барахлом из ТаблицыБД Владельца, и представляются в записи Владельца одной колонкой, ссылкой на себя любимого в своей родной таблице. Таким образом, никакие изменения внутри самой структуры данных, будь-то добавили мы реквизитов, или изменили размерность массива, не повлечёт за собой изменений ни в одной из ТаблицБД Владельцев. Имхо, это уже напоминает принцип Инкапсуляции из ООП. Как минус, теряем простые индексы и чувтствуем снижение скорости чтения/записи.
Похожая ситуация и с множественными типами, с поправкой на то, что для каждого из них таки нужны две таблицы, эдакая ТаблицаБД-шапка, с ID и OWNER непосредственно экземпляра типа данных как такового, и вспомогательная ТаблицаБД-множественная часть, содержащая множество его значений, но тем не менее, также содержащая в себе ID и OWNER для определения субъектности и объектности каждого элемента множества. Например, в случае с Таблицей, таким образом мы задаём в шапке ID самой Таблицы, как цельного субъекта, для указания ссылки на неё из записи владельца, а в множественнной части для СтрокиТаблицы, в которую также может быть вложена другая структура, OWNER же СтрокиТаблицы задает принадлежность этой записи самой Таблице по её ключу в шапке. Такое масло масляное с множественными типами на первый взгляд кажется мутноватым, но привыкнуть можно. Мути в это дело дабавляет любимая нами ТаблицаЗначений, которая по сути сама является особенной среди структур данных, наследует свойства одновременно и Списка и Структуры, но надо и к ней привыкнуть, и к тому же, не следует путать её с такой структурой данных, как СписокОфСтруктура, это немножко таки разные блюда.
Попытки уложить множественный тип в одну ТаблицуБД считаю возможными, но бесперспективными, поскольку так или иначе теряется либо субъектность самого объекта, либо ссылочная целостность с ТаблицейБД Владельца. В общем, нужно чуток привыкнуть к такой схеме.
Схема работает ессесно на уровне Машины, а на уровне Конфигуратора мы просто куда нужно добавляем реквизит и указываем его ТипДанных.Таблица.ТаблицаОтгрузки. И всё.
Для базовых ТиповДанных, Числа, Строки и т.д. ТаблицаБД несёт, как и для остальных типов, не только символическую нагрузку. Во-первых, каждый ТипДанных, имея собственную ТаблицуБД, может иметь дополнительные свойста объекта, например, ДатаСоздания, ВерсияОбъекта, ИмяСобственное и т.д. Так мы невзначай подошли к ПредопределеннымЭлементам, как весьма интересному изобренению Компании. А во-вторых, что самое интересное, любая Переменная, любого типа данных, объявленная в любом модуле, может быть взята и сохранена в БД общим для всех объектов методом А.Записать(), даже если не имеет ни Владельца, ни ИмениСобственного. А что нам мешает, идеология?
Здесь я должен напомнить, что:
ТипыДанных - это сопокупность БазовыхКлассов, для которых, в рамках ссылочной целостности, на уровне исполняемой Машины устанавливается правило каскадного удаления.
Таким образом, наличие Идентификатора и использования его как Ссылки в других Объектах не является алиби для объекта, чтобы не быть уделённым как вместе со своим Владельцем, так и без оного. Объекты без владельца - это подобие "мусора" в ООП, как и утечки памяти, являются сопутствующим явлением, и нас не должны пугать. Для подобных случаев нужно позаботиться о специальных механизмах - сборщиках мусора, а мы тем временем становимся всё ближе и ближе к ООП в рамках нашей концепции.
Но и всё дальше от РБД. Обратите внимание, что все записи БД, связанные отношением Владелец-Вложенный, имеют прямую и обратную ссылку друг на друга, по меткому выражению коллеги Злопа, зациклены между собой, как Документ-Операция и Операция-Документ. Здесь на самом деле нет никокого противоречия. В природе самих СтруктурДанных, а именно в упорядоченных множествах, таких как Список, Стек, Очередь, Дерево и даже Граф, наличие взаимных указателей между элементами является априори необходимым свойством, которое обычно проявляется в системе предписаний, другими словами в интерфейсе Класса, методами Предыдущий() и/или Следующий(). Таким образом, в связных списках достигается целостность самой СтруктурыДанных, но это не про ТаблицыБД, поэтому дедушка Кодд здесь наверняка нахмурится. Как пример, попробуйте побродить по Дереву Справочника вверх-вниз с помощью SQL-запроса.
Запись Владельца происходит в транзакции вместе со всеми вложенными структурами, по порядку сверху вниз устанавливая значение OWNER, а по пути обратно наделяя всех попутных владельцев Ссылками на ID вложенных структур. Как-то так.
А в Справочнике между тем мы имеем такое свойство как Родитель, как раз для указания свой ветки для этой груши. Но название этого свойства мне не нравится от слова никак. Кого же родил это родитель? К тому же, нас ждёт таки наследование ТиповДанных, и этому словечку я хочу вернуть первоначальный общепринятый смысл...

Кстати, Владимир Ходаков в своё время отчаянно доказывал своим оппонентам, что SQL тоже, как и FoxPro, имеет средства для работы с указателями для навигации по ТаблицамБД, и нет причины, чтобы в интерфейсе справочника отсутствовали такие методы как Предыдущий() и Следующий() в рамках установленного для ТаблицыБД индекса.


Пиит

Цитата: Пиит от 22 апреля 2024, 13:05...  покидая альмаматер в 93м году ...

Да, у моих ног была вся айти-вселенная, а в пальцах рук я чувствовал такую мощь, что смог бы легко свернуть шею любому косо взглянувшему на меня терминатору, ну, по крайней мере, робокопу уж точно.
Так я тогда думал, но что-то пошло не так.

Выбор ВУЗа был в целом вынужденным, с одной стороны родители увещевали, мол, куда тебе ехать, голодные годы и как же мы одни без тебя останемся. С другой стороны, моя тройка по физике, как ни странно, никуда не делась. Больше того, я прекрасно знал, что эта тройка в аттестате была на самом деле нулём с пририсованным хвостиком. И аттестат в целом остался, как и был до того, 50/50. Чудные дела твои, товарищ Макаренко. Есть такой парадокс в гимназиях и лицеях, поступают туда дети отличниками, и вдруг уже в первой четверти оказывается, что среди них есть и хорошисты, и троешники, и того похуже. Ну не может наша школа жить без таких категорий, обязательно нужно выстроить учеников по ранжиру. Именно поэтому многи дети, не без родительских советов, уходят обратно в свои школы, чтобы подтянуть в выпускном году свои аттестаты до уровня Бог. А я вот, как вошёл, так и вышел, как гусь из воды.
За аттестат я не парился, мне было пофиг, единственное, чего я тогда опасался, так это обуть сапоги и нахлобучить пилотку в осенний призыв. А поскольку в нашем политехе на все желанные специальности был барьер в виде экзамена по физике, этот вариант я не рассматривал. И какая таки разница, какую специальность я выберу, главное - заполучить доступ к Машине, а остальное - "дело техники".  Вот, таким самоуверенным юношей я и пошагал в сторону нашего пединститута, наивно полагая, что специальность математика-информатика есть именно то, что мне нужно в этой жизни. Вступительные экзамены таки были по профильным предметам, а мои мощные пальцы плюс восемь часов математики в неделю на протяжении трёх лет это вам не хухры-мухры.
Математику я сдал на 5, и вошёл число 4-х умников из 120 абитуриентов. У троих были медали, и экзамены для них таким образом закончились, а я готовился к информатике. И первый облом от ВУЗа ждал меня именно на любимом предмете. Единственный из всего потока, я выбрал Паскаль для решения задачек по билету, справился на 15 мин, и поднял руку, мол я всё, оцени, товарищ профессор, мою незаурядность. Садись, Эдик, тебе 4. Как 4? А так, чтобы не выёживался. Нехер нам тут в куб возводить через логирифм экспоненты, у нас принято А*А*А. Понял, щенок?
Мда, тогда я ещё не понял, куда попал, унижение пережил, скрипел зубами, но справился с собой, чтобы не свернуть шею этому Робокопу.
Дальше больше, первая вводная лекция, на которой до меня доводят, что я есть не кто иной, как будущий образцовый госслужащий, поскольку заказчиком системы образования у нас является государство, а я не более чем винтик в этой Машине. О как. А хрен вам, мечтайте дальше.
А где же мои Машины? Бегаю по этажам, ищу компьютерный класс, везде Искры и УКНЦ, да ёптыть, не может быть такого, этож цельный ВУЗ! Ищу скрытую комнату, нашёл, заперто, постучал, иди на хер, занято. Вот так, под сигнализацией и охраной ретивых лаборантов, единственный класс Машин был окупирован местной айти-бандой, можно сказать, айти-мафией в лице хитрожопых лаборантов и важных преподов с кафедры информатики. Не по сеньке шапка, вот тебе монохром, вот тебе клава, вот и экстраполируй свои фукнции и транспонируй матрицы, а нам не мешай, мы тут делом заняты, Дуум изучаем. Пальцы мои не разжимались наверное целый семестр, так и хотелось свернуть чью-нибудь жалкую шею.
Бытие таки определяет сознание, да и физмат не давал мне много свободного времени. Так я постепенно втянулся в проблемы Гильберта, в пространства Лобачевского и ещё массу всякой научно-непопулярной хрени, которая не без труда укладывалась в мои извилины.
Робокоп оказался отличным парнем, научил меня кое-каким вещам, а именно, не важно сколько ты знаешь языков, важно что ты ими "имеешь что сказать". Вообще, с пониманием ко мне отнёсся, разрешил не посещать занятия по информатике совсем, что бы я больше не спал на его парах и не подавал таким образом дурной пример окружающим. А чтоб не расслаблялся, вот тебе задачка из школьного учебника А.Г.Кушнеренко, на исполнитель Робот, пиши хоть на ассемблере, но в конце семестра предоставь решение. Я не решил, точнее решил, но только наполовину, известная оказалась задачка, про Робота у забора. Это был урок. С тех пор я не спал на лекциях, клевал носом, но не спал, в надежде услышать для себя что-нибудь интересное. И услышал таки. Тщательно законспектировал курс Силаева Николая Васильевича по структурам данных, потом долго хранил и перелистывал эти конспекты, это был другой подход к информатике, подход к сущностям через их системы предписаний. А спецкурс Омельянюка Сергея Николаевича по ООП и вовсе расставил всё на свои места. Классы, интерфейсы, вот оно, недостающее звено Никлауса Вирта. Теперь я точно знал, как нужно писать проги в принципе, и уже к концу третьего курса, в 95м году, я потихоньку утратил интерес к этому предмету.
Я ушёл в математику, придумал себе своё пространство, выдумал некую дискретную математику и занялся, как умел, изучать своё детище, исследовать свойства, придумывать аксиомы и теоремы. Так я благополучно и профукал революцию в айти-вселенной, появление на свет Окон как основополагающего принципа бытия, со всеми АПИ и ГДИ, и таким образом отстал от паровоза на веки вечные.
Но и над этим не парился. На выходе из ВУЗа я был уже прилежным болваном, образцовым госслужащим, видел себя эдаким молодым и остроумным школьным учителем, но одна мысль таки не покидала мою голову, начиная наверное курса с четвёртого. Что-то не так, Эдик, каким-то ты тут стал придурком, ей Богу. Служение отечеству, пример для подражания, образец поведения - когда ты успел заразиться всем этим?
Но я и не боялся уже ничего, ни детей, ни женщин, ни стариков. Был обучен планировать урочное время с точностью до минуты, четверть с точность до дня, составлять учебные программы хоть по физкультуре, ставить задачи и подводить испытуемого к их решению, дозировать объемы подаваемой информации, управлять любым коллективом, создавать и разрешать любые конфликты и т.д. В общем, если вы сейчас начали о чём-то догадываться, как говорит один мой друг, ничего личного.
А первое что сделал после выпуского вечера - отправился в военкомат, открыл ногой дверь и задал первому встречному в погонах остроумный вопрос: "а какого хрена мне ещё не пришла повестка, я что, нах, не человек? Хочу Родине служить!"...

Робокоп - это не прозвище, это не более чем имя персонажа, за которым скрывается замечательный человек и педагог, Лобов Сергей Дмитриевич. Это именно он спустя годы, приобёл у меня SQL-версию Предприятия. Ушёл он из ВУЗа, имхо, нельзя так разбрасывать ценными кадрами.

Пиит

Цитата: Пиит от 23 апреля 2024, 02:03... ТипыДанных - это сопокупность БазовыхКлассов

Пора уже заканчивать с определяемыми типами и переходить к ПрикладнымОбъектам, по-тихоньку подкрадываясь при этом к Наследованию.
Подведу небольшой итог по этой теме. Мне известны два способа уложения структур данных в РБД.

Первый, классический, Субтаблицы и Подтаблицы позволяют использовать все структуры с фиксированной размерностью и частично множественные типы данных, является де-юре стандартом в мире SQL, и не только имеет право на жизнь, но и определённые таким образом типы данных могли бы быть внедрены даже в v7, не говоря уже о ее потомке. Этой модели вполне бы хватило, чтобы сделать из клюшек конфету с номером 7.8, облагородив при этом платформу более научным подходом в реализации ТабличныхЧастей, как любимого детища Компании. Но лично меня такой способ концептуально не интересует.

Второй способ, ссылочный, декларирует Инкапсуляцию структур данных, поддержку любого уровня вложенности любых абстракций, имхо более заманчивый вариант. Таблицы при этом в первом приближении напоминают деревья переплетённых между собой справочников, со Ссылками во всех места, и могут вызвать некое недоумение, а что здесь таки нового. Новое здесь - это определение Объекта через ссылочную целостность в понимании РБД, и ТипыДанных, как неизменные составляющие ПрикладныхОбъектов, несмотря на наличие ID, фактически не обладают полной субъектостью, целиком и полностью принадлежат либо своим Владельцам, либо в конечном итоге тем самым ПрикладнымОбъектам, Справочникам, Документам и т.д. Возможно наличие "мусора" в результате программных действий с этими типами, но как недостаток я это не рассматриваю, недостатки вижу в сложности реализации индексов для ПрикладныхОбъектов и в целом заметного замедления работы по причине Запросов "по длинным ссылкам". Это в сравнении в классической моделью уложения. Но жизнь таки не стоит на месте, и вопросы скорости ПЗУ и линий передачи данных сегодня таковы, что позволяют работать клюшкам в сетевом режиме по VPN, поэтому здесь я надеюсь на лучшее.

В отличие от ТиповДанных, ПрикладныеОбъекты наделены самой что ни на есть настоящей субъектностью, суверенностью в политике наших метаданных, и "ссылочная целостность" здесь записана уже в ковычках, в понимании платформы как нечто, что нельзя удалять без спросу. Согласен, для них не может быть огульно установлено правило КаскадногоУдаления, но в зависимости от логики каждого, это будет либо Запрет, либо ПрисвоениеNull, и не исключено, что какие-то Регистры подпадут таки и под КаскадноеУдаление. К слову, Null таки является фундаментальным понятием концепции РБД, и я только приветствую появление его в платформе v8.

Закончить эту заметку я хочу немного крамольной мыслью.
Не нужно думать, что ООБД это что-то сложное. Заложив Классы в базу, прикрутив к ней определяемые типы данных любой абстракции, вложив в руки программисту Var.Save() и Create Table, и как вишенку на торте, всего один оденюсенький прикладной объект, а именно ТаблицуБД, мы получим в итоге такую дубину, что треснет шея не только у Робокопа, но и яйца у самого БиллиГейтса. Но это не есть наша цель, пусть трудится на благо своего отечества.
Имхо, такая конструкция ООБД это как ящик пандоры, как ИИ, заранее невозможно даже предположить, что с эти делать и куда это приведёт.
Так, открывая каждый раз конфигуратор, мы будем видеть всё новые и новые Объекты Метаданных, и станем задаваться резонным вопросом, а нужен ли нам "такой футбол".

Здесь и я, как немножко Программист, должен остановиться в полёте своей фантазии, оставить на рассмотрение Потомкам эту конструкцию, и ограничить таки ПОП привычными нам окнами конфигуратора и ПрикладнымиОбъектами. Более того, я считаю, что концептуально нельзя давать в руки Одинэснику
такую дубину, как ТаблицаБД. Имея на вооружении такой инструмент, отпадёт необходимость в Справочниках, Документах и т.п., ведь любого из этих представителей, вооружившись терпением и 1С++, можно будет реализовать на уровне Конфигуратора, и Регистры, и даже БухгалтерскиеИтоги, таким образом я нарушу основополагающие принципы любой Концепции, такие как полнота, непротиворечивоть, достаточность и так далее.

Да, друзья мои, Концепция ООБД в некотором смысле даже проще, чем наша ПОП.
Моделируя ПрикладнойОбъект, мы берём на себя ответсвенность заложить в Машину максимальную реализацию его прикладной сущности, не обременяя при этом Конфигуратор глобальными модулями в 30к строк, десятками и сотнями модулей и обработок, а Одинэсника тратить время на поиски извращений для преодоления наших недоработок...


Пиит

Цитата: Пиит от 24 апреля 2024, 11:04Пора уже заканчивать с определяемыми типами и переходить к ПрикладнымОбъектам

Перед тем как взять этого быка за рога, приведу ещё пару примеров применения ТиповДанных и их Наследников.

Число. Суть любого базового Класса-наследника заключается в сужении логики применения своего Суперкласса, в некой собственной специализации, так, для БазовогоКласса Число, с максимально определённой для него разрядностью, каждый из Наследников может только уменьшить такое вродённое свойство чисел, но никак не увеличить. В целом, можно определить КоличествоПроводки[18.3], СуммуПроводки[18.2], СчётчикИтераций[18.0], Часы[10.0] и так далее. Да, да, Часы это вовсе не время, Часы это трудовой измеритель, хотя в некоторых отраслях народного хозяйства, например в медицине, можно встретить и табеля с минутами, и значение часов 168:42 не должно удивить опытного бухгалтера.

Строка. Здесь также имеет место некая специализация от максимально возможного Строка[8], и перечень наследников больше нужен для "общей гребёнки", например Фимилия[30], Имя[25], Отчество[30] и т.д.,  чтобы не было в конфигурации разношёрстного употребления даже этого, казалось бы, неприметного БазовогоКласса. Что касается Строк бесконечной длины, я к ним отношусь очень аккуратно. Бесит прямо, когда КоммендарийДок задан как бесконечность, выведен колонкой в журнале, и при этом ещё кто-то жалуется, что форма списка тормозит. И это не "в Малорите". Я бы даже ввёл тип данных Текст, а АЛьФ бы реализовал РасширениеТекста. )

Дата. Безусловным шагом вперёд стало внедрение в v8 типа данных ДатаВремя, здесь я согласен с Компанией, это нужная штука. Но не согласен с тем, что специализация этого типа данных возможна только на Форме, имхо, в нашей ветке метаданных вполне буду востребованы таки отдельно и Дата, и Время и даже Месяц, и Год, Наследники от ДатаВремя, во всём своём разнообразии представлений и кнопочек для выбора. Я бы даже определил Дату и Время даже в БазовыеКлассы, запихал в Машину, чтобы они были неотъемлемой частью конфигурации "с нуля".

Булево. Здесь имхо возможно играть только представлениями, Да/Нет, +/- и т.д. Иногда это тоже бывает востребовано.

Массив. В отличие от базовых типов данных с логикой специализации, здесь на первом уровне наследования у нас полное разнообразие возможных размерностей. Реализация автокада как внешней компоненты к платформе не является для меня фантастикой на втором этаже, но как глисту, было бы достаточно и одномерного массива Табель[31], чтобы управляться таки без хлопот с рабочим временем сотрудников без 100500 одноимённых реквизитов Документа-владельца.

Структура. Имхо, наиболее востребованная СтруктураДанных. Кроме упоминаемых кортежей Счет..СубконтоХ, я мог бы не париться ни с Кладром, ни ФИО, ни с Комиссиями, и ни с теми же ДнямиЧасами в табельных значениях, определив тот Массив[31] of День как Структура[ТабельноеЗначение, Дни, Часы, ЧасыНочные, ЧасыПраздничные, ЧасыСверхурочные...] и т.д.

Список. Список уже существует в Конфигураторе v7, но тщательно укрыт от посторонних в компоненте Расчеты, это ГруппыРасчетов. По сути, подмножества каких-либо элементов, будь-то Справочника, Документа или других сущностей. Здесь также на первом уровне наследования разнообразие нужных вам Наследников, например тот же Список of Справочник.ВидыРасчетов, Список of Счет, Список of МоиВкусняшки и т.д. Может быть востребован где угодно, от заработной платы до рецептур в общепите. Может служить также к качестве Перечисления, с логикой выбора или/или, но в отличие от родственника, заполняется не в Конфигураторе, а в Предприятии, включая в себя элементы разных типов.

Дерево. Дерево уже присутствует в платформе v7, как неотъемлимая часть МногоуровнегоСправочника, что имхо является издевательством как над Деревом, так и над Справочником. Имея такую структуру в базе, можно прикрутить два разных Дерева классификации одного Справочника. Например, отобразить Товары как по пользовательким веткам, так и по папкам торгового классификатора; ОсновныеСредства, как по пользовательким веткам, так и по веткам КлассификатораЕНАОФ и т.д. Дерево вообще имхо, недооценённая штука, и АЛьф недаром ТаблицуЗначений раскурочивал.

Таблица. Это самая неординарная СтруктураДанных. Скажу по секрету, что такую структуру данных вы можете и не найти в академических статьях. Иной академик бы даже приказал выбросить её из списка структур, когда уже у нас в дереве есть возможность определить Список of Структура. Сущность ее и связность действительно отличается от своих собратьев, но, поскольку она уже давно вошла в нашу жизнь и прочно укоренилась на всех уровнях бытия БД, у меня не подымется рука вычеркнуть этот тип данных, эту вожделенную ТабличнуюЧасть из своего списка. Здесь, как мне кажется, комментарии излишни.

Стек, Очередь и Граф я уже пропущу. "Здравствуй, племя, младое, незнакомое". Структуры эти нужны для решения общеизвестных задач в информатике, прикладное значение в бухгалтерии я пока не берусь сформулировать, разве что применение графов в логистических процессах. На мой взгляд, будет лучше, что бы они таки были в нашем конфигураторе, чтобы не пришлось когда-нибуль делать глупый вид, что при чтении академических статей по структурам данных вы что-то ненароком пропустили.
В любом случае, повторюсь, список типов данных не запечатан наглухо, может пополняться в процессе развития Машины, и здесь возьмём пример с Компании, которая на протяжении уже более чем 20-ти лет не изменяет себе, сохраняя версию своего детища, и скромно ограничивает себя только релизами...

trdm

Чувак, ты ломаешь просмотр "последних сообщений" своими простынями.
Лучше это в блох какой-нить вынести.

Пиит

Цитата: trdm от 24 апреля 2024, 16:32Чувак, ты ломаешь просмотр "последних сообщений" своими простынями.
Лучше это в блох какой-нить вынести.

Привыкай, чувак.
Я здесь энтропию форума повышаю.
То ли ещё будет.
Читать хоть можно?
А сам проголосовал-то?

Пиит

Цитата: Пиит от 23 апреля 2024, 11:44... не боялся уже ничего, ни детей, ни женщин, ни стариков...

На выпускном вечере в институте я сидел и вспоминал своего отца. Слушал разговоры новоиспечённых высокообразованных и думал, а пожал бы мне папа руку сегодня за этим столом? Не долюбливал он на своём заводе ИТР, работников умственного труда. И таки было за что.

Я вырос на улице, районы-кварталы, стенка на стенку, всё как положено. От детской комнаты милиции меня спасали только успехи в учёбе. Всякий раз на комиссии по делам несовершеннолетних, уткнувшись носом в зашарпанный пол, я бубнил как "отче наш": "я бош так не бу". И мама там же со слезами вторила: "он так больше не будет". И в лицей она привела меня за руку не только из-за тройки по физике. Что будет дальше, это был не праздный вопрос. Ещё на первом собеседовании меня спросили, чем занимаюсь в свободное время, я честно ответил - гуляю. Мама сидела рядом, спохватилась, не слушайте его, говорит, читает он, читает. Да, верно, я и забыл, читать я тоже любил, как папа, фантастику особенно, про космос там, про "бороздят просторы вселенной". Даже писал что-то, в 12 лет. Один рассказ до сих пор помню, как полетел капитан Джон Магеллан на звёздной вундервафле куда-то туда, далеко-далеко, на самый край, прилетел, глядь, знак стоит указательный - Малорита - 2км. Примерно так, но суть была охрененной на те мои годы, до сих пор удивляюсь. Потом уже, наш профессор физики Шульман, на четвёртом курсе нам сообщит, что наука не знает точно, круглая вселенная или плоская, всё зависит от кривизны пространства, а измерить рулетки пока не нашли. Вот вам и Лобаческий.

За прошедших восемь лет среди очкариков я сильно оторвался от дна, от отца своего, и в тот вечер заметил у себя этот зародыш высокомерия, вот мы какие красавцы, ваше благородие, будем миром управлять, рабоче-крестьянким классом погонять значит. Сидели вот так за столом и вслух обсуждали, прям кремлёвская элита. Гавнита, подумал я, всё ровно наоборот, винтиками были, шпунтиками стали. Вспомнил, как папа старательно прятал бутылочку русской, когда пришёл с мамой на выпускной вечер в лицее. Мама дёргала его за рукав, а он нет, вытащил таки чекушку и протянул мне со словами: "на вот, ток закусывайте там". Тот ещё шуруп. Тогда я впервые осознал, что он мной гордится.

Мужиков я никогда не чурался, вон они, во дворе, трико-домино, попивал даже с ними в прыщавом возрасте, уважали. Очкариком не был, занимался всю дорогу, и классикой, и штангой, и на станке сиськи качал, и с каратистами по залам прыгал. Когда пришёл в лицей, стыдно даже было, однокласники-то мои новые, оказывается ничего ребята, а вчера ещё я их по району гонял. В общем, лицей, как сказала бы мама, оказал на меня благоприятное воздействие.

Однажды, уже в институте, курсе на 3-ем, в какой-то тёплый месяц, выхожу я с девочкой своей после пар, не успели отойти от крыльца, навстречу три товарища в коже, чуть под мухой, ну и один меня плечом так раз, хорошо так развернул. А я что-то девочке в это время втюхивал, даже не заметил, откуда столб на дороге. Ну и слово за слово, я ему оплеуху и "потанцуем, дружище"? Десять шагов назад, дал ему намахаться вдоволь, он подустал, я вошёл, удивил левым джебом, а правым прямым в подбородок отправил оппонента в Малориту. Его друзья даже не пытались со мной дискутировать.
И вся эта картина на глазах у сотни людей, в т.ч. из преподавательского состава. Тепло таки, вылезли покурить и погреться. У моего геометра цыгарка аж изо рта выпала.
Нехорошо конечно. Молча я взял за руку девочку, и краснея от пристального внимания, поплёлся с ней на остановку. В животе остаток дня крутило, пока не вырвало меня, от душевных мук. Говорили, парень час на траве лежал, друзья отнесли в тенёчек, скорая откачала. Вот дурак, думал я, всю свою семью и карьеру в жопу из-за одного придурка. Ждал повестку и ругался сам собой. Не, ну так же нельзя, у нас во дворе так не принято, у нас другие правила, пацана с девкой нельзя трогать, даже самого очкастого, чтобы не ронять его какое-никакое достоинство. Кому нужны твои правила, отвечал сам себе, поедешь сейчас на пятёрку, за тяжкое телесное, родоки то постараются. Знаю я уже одну такую историю.
Был у нас на районе парень один, плюс минус моего года, Голиком звали, невысокий такой, а крепкий как два, на штангу вместе ходили, не дружили, но знал я его не с лучшей стороны, в итоге он в колонию, а я в лицей. Вышел он, успокоился, тихий такой стал, даже добрый. Приглянулась одна дивчина ему, и стал он её после уроков встречать, портфель носить и всё такое. А дивчина-то в лицее нашем училась. А лицей-то наш партийный. И вот стоит он как-то на крылечке, скромно стоит, в сторонке, девочку ждёт. И вываливают из дверей после занятий лицеисты, в пиджаках все, элита, и девочка его с ними, с портфелем. И тут один её одноклассник, чей-то сынок, сам щавель, попёр с чего-то с вопросами на Голика, че стал мол тут, баб типа в округе мало, а ты че, сука, мы тебя не устраиваем? Это он девочке так. Ну и ударил его Голик по лицу, один раз. Взял девочку за руку и пошел, краснея, с ней на остановку. А сынок этот встал с жопы, домой даже доехал, в дверь вошёл и упал там на ковёр персидский. Пришлось оперировать, не в ту руку он свой язык засунул. И его жалко, придурком выписался, таки не поправился. А папа его, большой тогда человек, усадил Голика на пятёрку, и никакие свидетели не помогли. Даже одноклассники на суде показали на чрезмерную неправоту своего товарища. А хрен там, руку поднял?, поднял, вот - пятак в плечи и привет семье и детям...
У меня, слава Богу, в тот раз всё обошлось. Повестка не пришла. Видно, папа был у того парня по-проще, как мой, виноват - отвечай, и неча на других пенять. И что странно, после того случая учёба у меня в гору пошла.

Вот так, сидя на выпускном, вспоминая отца своего, который не дожил до этого светлого дня, я готовился морально к службе в армии. Побаиваться я стал мужиков, как примут, чему научат тебя, зазнавшегося учителя, школа жизни всё-таки, папа всегда так любил повторять.
А девочка моя распределилась в один недалёкий северный городок отбывать учительскую повинность годика на три, так что, не плачь девчонка, ты только жди. А повестка действительно где-то потерялась...

Пиит

Вот так часто со мной бывает, сел писать одно, а на выходе хрен знает что.
Какой-то незначительный пустяк, муха мимо пролетела, пост новый появился и мысли уходят в сторону, в какие-то непонятные порой ассоциации. Так и здесь, чувак. Одно только слово, и память, как избушка на ножках, поворачивается со скрипом к тебе своей забытой уже гранью, и видишь себя в совершенно другом зеркале. Я даже в гугл залез, Чува́к — жаргонный синоним слов «парень», «юноша», «мужчина» в молодёжном сленге. Вроде и не обидно должно быть, но что-то есть в этом слове не очень хорошее, какая-то дурная ассоциация.
Там, в ВУЗе, в процессе ковки государственного винтика, я узнал много. Например, предмет психология дал мне знание типов памяти. Оказывается, у всех людей она построена по-разному. Одни, например, хорошо помнят факты, даты, формулы, другие - звуки, музыкальное направление, третие - видимые образы, художники значит, и порой люди часто и не понимают друг друга от этого. Как ты вот, не помнишь, как зовут моего сына, я ж тебе, такой ты эдакий, в том году рассказывал. Нет, не помню, ну хоть убей меня. У меня всегда были проблемы с историей, не мог никак запомнить я эти все имена и даты, и даже с математикой, формулы до сих пор не знаю, спроси меня про дискриминант школьный, не назову, стряляй меня в упор. Всю свою учебную часть жизни я был вынужден вникал в суть вопроса,  чтобы иметь возможность вывести эту формулу в любой момент, когда нужно будет. У меня другая память - ассоциативная. Соединяет какие-то фрагменты из улогков ПЗУ в одну цепочку, очень легко слышу плагиат в музыке, узнаю в бородатом хроне по телеку знаменитого актёра из детского советского фильма, могу юморить на ассоциация слов и образов, в общем, у меня свои гуси в голове, как обычно говорят в таких случаях. Вот и "чувак" здесь тоже сыграл определённую роль.
Так что не серчайте, братцы, не "бандюган я Брэски", вот уже как тридцать лет так точно.