CREATE TABLE ZAKAZ_SPEC ( DAT_ BAS$DATE NOT NULL, CARDINDEX BAS$ID, QUANTITY BAS$SUMMA NOT NULL, WEEK_NUMBERS BAS$VAR_255, INROAD BAS$SUMMA
);
ALTER TABLE ZAKAZ_SPEC ADD CONSTRAINT U_ZAKAZ_SPEC_DAT_CARDINDEX UNIQUE (DAT_,CARDINDEX) USING ASCENDING INDEX U_ZAKAZ_SPEC_DAT_CARDINDEX;
COMMENT ON COLUMN ZAKAZ_SPEC.DAT_ IS 'date_type=timestamp';
GRANT SELECT ON ZAKAZ_SPEC TO USER AA;
Выше - это копия примера файла выгрузки из статьи, что бы было понятно что я ниже обсуждаю.
Я может быть забегаю вперед, в ответы которые будут в четвертой части, но не удержусь и спрошу сейчас.
Первое что бросается в глаза - оператор CREATE TABLE в одну строку. Человеку читать неудобно, и результаты diff так же будут неудобочитаемые. Но наверное причина в том что бы "выигрыш в отсутствии парсера текста". Выглядит достаточно логично. Читаем построчно, в одной строке - один sql-оператор, выполняем, и все Ок. Процедуры - отдельными файлами, там (наверное) один файл - одна процедура, один оператор CREATE PROCEDURE. Правда, тут же возникает вопрос - а каменты к процедуре в том же файле? Это же будет отдельный оператор...
Ну и собственно вопрос. А как быть с построчным чтением COMMENT ON ..., ведь внутри камента переносы строк допустимы, и например я этим активно пользуюсь. В IBexpert в инспекторе объектов, в табичной части видно первую строку камента, а если навести мышку, то в хинте будет весь камент. Ну или открыть нужный объект в виде отдельного окна и там посмотреть описание полностью. Соответственно, из-за возможных переносов строк внутри камента, возможность построчно, без парсинга, читать операторы - она как минимум весьма рискована, и если парсинг все-таки имеет место быть, тогда зачем страдать читая CREATE TABLE одной строкой, или почему бы не пойти дальше (для отказа от sql-парсинга) - каждый оператор отдельным файлом, что бы многострочность не требовала парсить sql-текст?
У любого электромобиля есть возможность зарядки от 220, через специальный переходник. Обычно его нужно купить самостоятельно, ценник в районе 5-10т.р. На ОЗОНе их полно. Вопрос в том что это будет т.н. медленная зарядка, а т.к. автомобиль не гибрид - то при больших пробегах может статься что при медленной зарядке вам не хватит пробега на след. день. Нужно расчитывать. Или потом добивать нехватающий объем на быстрых коммерческих зарядках.
По умолчанию включен Emacs-режим, но есть возможность переопределить на vi-режим, или в процессе работы переключаться между ними. И еще можно набиндить кучу функций которые есть в readline но не привязаны к сочетаниям клавиш.
За man ascii больше спасибо. Не нужно гуглить, все под рукой оказывается есть :)
С некоторыми манами прям нереальная боль работать. Например man smb.conf. Там в разделе "EXPLANATION OF EACH PARAMETERS" содержится описание более 500 параметров. И как бы описание есть, а пользоваться нереально. Я вручную перегнал ман в html а потом в md, потом вручную нарезал его на папки и файлы. Каждый раздел - папка, каждый параметр - отдельный файл. Ну и потом пришлось вручную поредактировать что бы md-оформление было читабельным. Потратил наверное неделю, но получил доку которой очень удобно пользоваться. Написал скриптик который через fzf позволяет искать/фильтровать что угодно (разделы/параметры), а в preview-команду вставил отображение файла через lowdown - консольный рендеринг md-разметки, смотрим сразу отформатированное. Тут же сделал по кнопке F4 вызов редактора, можно сразу поправить ошибку, если увидел. Для универсализма, если встречается файл не md, сделал вывод с подсветкой синтакисиса, по расширению, программой bat. По F3 открывается сам документ, для просмотра в полноэкранном режиме, без фильтра статей. Просмотр через bat, с подсветкой синтаксиса по расширению, а если файл md - то предварительно рендерится lowdown.
Наверняка есть варианты как из непосредственно исходника man-файла делать md, без страданий, но я не разобрался. Там такое дикое наслоение всяких атавизмов, что удивительно что само по себе man man работает. Есть оказывается опция man --html но на практике выдает какую-то ошибку и не алё. Хотя я как-то встречался с компами где это работало.
man2web работает, но криво. Продукт видимо брошен, давно.
В nano не все хоткеи видны внизу экрана. Область вывода подсказок имеет определенные размеры, и nano выводит столько подсказок сколько есть места. Если место увеличить (распахнуть окно терминала пошире, уменьшить шифт терминала) - то влезет больше, и nano выведет больше подсказок.
Встречал на эту тему статьи, там для накопительных баков с водой использовалась аэрация. Там правда вода из скважины а не дождевая, но возможно аэрация в баках/баке и вам чем-то поможет. Ну и статьи на том сайте тоже интересные - умный дом и все такое.
С одной стороны - просто и достаточно удобно. С другой - переизобретаем уже изобретенное.
Для чего делать один файл с секциями если можно на каждую секцию сделать по файлу, и не копать общий файл через awk. Бонусом имеем просмотр всех тем-ключевых слов просто в виде имен файлов, и файловая система будет сама следить за их уникальностью. в одном файле следить за уникальностью секций придется самостоятельно, и в большом файле может быть неудобно.
По большому счету - это переизобретение классического man который есть в любой системе. Добавляем в конфиг мана свою папку, что бы свои читы не класть в системные папки, и все работает. Правда писать странички на языке разметки манов не очень удобно.
Именовать файлы можно с расширением .md и писать с применением разметки. Тот же nano при редактировании .md-файлов автоматом подсвечивает разметку. Даже без исполнения этой разметки, только с подсвечиванием - это уже удобнее. Вывести тест в консоль с подсветкий синтаксиса можно программкой bat (примерно как cat только умеет подсвечивать множество синтаксисов).
Если ключевых слов наберется много, можно написать скриптик с применением fzf который покажет этот список, зафильтрует, даст выбрать один из (или не один) и даже можно сделать показ превью, через тот же bat с подсветкой синтаксиса.
Можно сделать много файлов с уточнением ключей, что бы итоговые файлы получались небольшие. Что бы среди них выбрать - запускаем их список через fzf, набирая буквы быстро фильтруем большой список, уточняя его до потребного состояния, из оставшегося выбираем нужное, выводим на экран. Кстати, через fzf можно не только выбрать, но и передать в командную строку не выполняя, потом подставляем руками нужный аргумент или редактируем - и готово.
КГД и КЦГД - это уже ДВК 3 и выше, конструктив другой, со встроенным монитором, и корзиной установленной вертикально позади кинескопа в корпусе. А речь шла про ДВК-2М.
Помню такое. Причем, раз все равно компиляется в макроассемблер, то можно было в тексте паскаля писать вставки на макроассемблере, которые работали.
Еще помню что на одну системную дискету не влазили одновременно транслятор и линковщик, поэтому были две системные дискеты, она с редактором и транслятором, вторая - с линковщиком. Соответственно, перед линковкой системную дискету меняли. ОС, естественно не перегружали - ей было все равно :) Исходники и объектники - во втором дисководе.
Приточка с улицы - источник пыли, что для серверной очень плохо.
У нас в "серверной" два кондея, один летний, другой зимний. По смыслу они одинаковы, но у "зимнего" внешний блок висит не на улице а во входном коридоре-тамбуре, и зимой хорошо его отапливает. Зачем выкидывать тепло на улицу если можно использовать с пользой. У "летнего" кондея внешний блок на улице, и его приходится обслуживать, чистить от пыли. У "зимнего" внешний блок в помещении, и в таком обслуживании он не нуждается.
Ну и т.к. в серверной нет ни приточки ни вытяжки - пыль там не собирается, системники всегда чистые.
Два кондея - это еще и резервирование. Если летом сдохнет летний - можно включить зимний, открыв дверь из тамбура на улицу. Если зимой сдохнет зимний - то если не сильный мороз, то можно попробовать включить летний. Если сильный мороз - то придется просто проветривать, на время ремонта. На этот случай есть воздушный канал между серверной и it-отделом, с мощным вентилятором. Но для отопления it-отдела этот метод на постоянку не используется т.к. натянет пыль в серверную.
Там поди был какой-то старый Firebird архитектуры супер-сервер, который не умеет параллелиться. Старый сервер был, условно с одним ядром, но с большой частотой, и FB его успешно использовал. А на вашем новом сервере поди 64 ядра, но с частотой в 3-4 раза меньше, вот FB сел на одно медленное ядро, и слил всю скорость :)
На заглавной картинке КДПВ, в штампе подписи, указаны странные сроки. Дата окончания меньше даты начала действия. Там данные совсем с потолка, или где-то в коде есть ошибка?
Оно не узкое. После того как актуальность версий заканчивается, это место будет в дальнейшем использовано. Уборка "мусорных версий" производится при обращении к записи, сервер определяет какую из версий может видеть клиент, а какие версии уже никому не нужны. Т.е. убирать будет не тот кто эти версии создал, или удержал, а следующий за ними клиент/транзакция. От этого есть несколько решений - не держать длинных транзакций без необходимости. При удалении большого количества записей лучше тут же их прочитать, из той процедуры которая удаляла, но в новой транзакции. Таким образом замедление будет у того кто удалял а не у следующего, типа "необъяснимое торможение".
Так что совершенно не факт что " отдельный undo log лучше ".
Кажись еще не упомянули Alt Mobile. Когда смотришь ее интерфейс, начинаешь понимать для чего гномовцы так упарываются с интерфейсом десктопа.
https://www.basealt.ru/alt-mobile
CREATE TABLE ZAKAZ_SPEC ( DAT_ BAS$DATE NOT NULL, CARDINDEX BAS$ID, QUANTITY BAS$SUMMA NOT NULL, WEEK_NUMBERS BAS$VAR_255, INROAD BAS$SUMMA ); ALTER TABLE ZAKAZ_SPEC ADD CONSTRAINT U_ZAKAZ_SPEC_DAT_CARDINDEX UNIQUE (DAT_,CARDINDEX) USING ASCENDING INDEX U_ZAKAZ_SPEC_DAT_CARDINDEX; COMMENT ON COLUMN ZAKAZ_SPEC.DAT_ IS 'date_type=timestamp'; GRANT SELECT ON ZAKAZ_SPEC TO USER AA;
Выше - это копия примера файла выгрузки из статьи, что бы было понятно что я ниже обсуждаю.
Я может быть забегаю вперед, в ответы которые будут в четвертой части, но не удержусь и спрошу сейчас.
Первое что бросается в глаза - оператор CREATE TABLE в одну строку. Человеку читать неудобно, и результаты diff так же будут неудобочитаемые. Но наверное причина в том что бы "выигрыш в отсутствии парсера текста". Выглядит достаточно логично. Читаем построчно, в одной строке - один sql-оператор, выполняем, и все Ок. Процедуры - отдельными файлами, там (наверное) один файл - одна процедура, один оператор CREATE PROCEDURE. Правда, тут же возникает вопрос - а каменты к процедуре в том же файле? Это же будет отдельный оператор...
Ну и собственно вопрос. А как быть с построчным чтением COMMENT ON ..., ведь внутри камента переносы строк допустимы, и например я этим активно пользуюсь. В IBexpert в инспекторе объектов, в табичной части видно первую строку камента, а если навести мышку, то в хинте будет весь камент. Ну или открыть нужный объект в виде отдельного окна и там посмотреть описание полностью. Соответственно, из-за возможных переносов строк внутри камента, возможность построчно, без парсинга, читать операторы - она как минимум весьма рискована, и если парсинг все-таки имеет место быть, тогда зачем страдать читая CREATE TABLE одной строкой, или почему бы не пойти дальше (для отказа от sql-парсинга) - каждый оператор отдельным файлом, что бы многострочность не требовала парсить sql-текст?
Предположу что:
документацию никто не отменял. Кто хочет разобраться - тот читает.
современные 3D-принтеры вроде все так же через G-команды управляются, так что можно и на них некоторый опыт получить.
До сих пор развиваю/поддерживаю свой же проект по автоматизации учета товаров. Для использования внутри фирмы. Уже лет 25.
FoxPro 2.5 -> Delphi 1 -> Delphi2 -> Delphi5 -> Delphi7 (и по сей день).
Новый софт для линукса начинаю писАть на Lazarus.
У любого электромобиля есть возможность зарядки от 220, через специальный переходник. Обычно его нужно купить самостоятельно, ценник в районе 5-10т.р. На ОЗОНе их полно. Вопрос в том что это будет т.н. медленная зарядка, а т.к. автомобиль не гибрид - то при больших пробегах может статься что при медленной зарядке вам не хватит пробега на след. день. Нужно расчитывать. Или потом добивать нехватающий объем на быстрых коммерческих зарядках.
У меня нет кармы поставить плюс, но говорю в каменте - спасибо что публикуете актуальные для РФ решения, несмотря на то что вас активно минусуют.
Описание команд readline есть тут
https://tiswww.cwru.edu/php/chet/readline/readline.html#Command-Line-Editing
там дофига чего есть, даже макросы :)
По умолчанию включен Emacs-режим, но есть возможность переопределить на vi-режим, или в процессе работы переключаться между ними. И еще можно набиндить кучу функций которые есть в readline но не привязаны к сочетаниям клавиш.
За
man asciiбольше спасибо. Не нужно гуглить, все под рукой оказывается есть :)С некоторыми манами прям нереальная боль работать. Например
man smb.conf. Там в разделе "EXPLANATION OF EACH PARAMETERS" содержится описание более 500 параметров. И как бы описание есть, а пользоваться нереально. Я вручную перегнал ман в html а потом в md, потом вручную нарезал его на папки и файлы. Каждый раздел - папка, каждый параметр - отдельный файл. Ну и потом пришлось вручную поредактировать что бы md-оформление было читабельным. Потратил наверное неделю, но получил доку которой очень удобно пользоваться. Написал скриптик который черезfzfпозволяет искать/фильтровать что угодно (разделы/параметры), а в preview-команду вставил отображение файла черезlowdown- консольный рендеринг md-разметки, смотрим сразу отформатированное. Тут же сделал по кнопке F4 вызов редактора, можно сразу поправить ошибку, если увидел. Для универсализма, если встречается файл не md, сделал вывод с подсветкой синтакисиса, по расширению, программойbat. По F3 открывается сам документ, для просмотра в полноэкранном режиме, без фильтра статей. Просмотр черезbat, с подсветкой синтаксиса по расширению, а если файл md - то предварительно рендеритсяlowdown.Наверняка есть варианты как из непосредственно исходника man-файла делать md, без страданий, но я не разобрался. Там такое дикое наслоение всяких атавизмов, что удивительно что само по себе
man manработает. Есть оказывается опцияman --htmlно на практике выдает какую-то ошибку и не алё. Хотя я как-то встречался с компами где это работало.man2webработает, но криво. Продукт видимо брошен, давно.В nano не все хоткеи видны внизу экрана. Область вывода подсказок имеет определенные размеры, и nano выводит столько подсказок сколько есть места. Если место увеличить (распахнуть окно терминала пошире, уменьшить шифт терминала) - то влезет больше, и nano выведет больше подсказок.
Встречал на эту тему статьи, там для накопительных баков с водой использовалась аэрация. Там правда вода из скважины а не дождевая, но возможно аэрация в баках/баке и вам чем-то поможет. Ну и статьи на том сайте тоже интересные - умный дом и все такое.
https://ab-log.ru/smart-house/1-wire/water_cleaning
С одной стороны - просто и достаточно удобно. С другой - переизобретаем уже изобретенное.
Для чего делать один файл с секциями если можно на каждую секцию сделать по файлу, и не копать общий файл через awk. Бонусом имеем просмотр всех тем-ключевых слов просто в виде имен файлов, и файловая система будет сама следить за их уникальностью. в одном файле следить за уникальностью секций придется самостоятельно, и в большом файле может быть неудобно.
По большому счету - это переизобретение классического man который есть в любой системе. Добавляем в конфиг мана свою папку, что бы свои читы не класть в системные папки, и все работает. Правда писать странички на языке разметки манов не очень удобно.
Именовать файлы можно с расширением .md и писать с применением разметки. Тот же nano при редактировании .md-файлов автоматом подсвечивает разметку. Даже без исполнения этой разметки, только с подсвечиванием - это уже удобнее. Вывести тест в консоль с подсветкий синтаксиса можно программкой bat (примерно как cat только умеет подсвечивать множество синтаксисов).
Если ключевых слов наберется много, можно написать скриптик с применением fzf который покажет этот список, зафильтрует, даст выбрать один из (или не один) и даже можно сделать показ превью, через тот же bat с подсветкой синтаксиса.
Можно сделать много файлов с уточнением ключей, что бы итоговые файлы получались небольшие. Что бы среди них выбрать - запускаем их список через fzf, набирая буквы быстро фильтруем большой список, уточняя его до потребного состояния, из оставшегося выбираем нужное, выводим на экран. Кстати, через fzf можно не только выбрать, но и передать в командную строку не выполняя, потом подставляем руками нужный аргумент или редактируем - и готово.
КГД и КЦГД - это уже ДВК 3 и выше, конструктив другой, со встроенным монитором, и корзиной установленной вертикально позади кинескопа в корпусе. А речь шла про ДВК-2М.
Какая графика на ДВК-2М? Там же алфавитно-цифровой терминал 15-ИЭ-00-013, подключаемый через последовательный порт. :)
Помню такое. Причем, раз все равно компиляется в макроассемблер, то можно было в тексте паскаля писать вставки на макроассемблере, которые работали.
Еще помню что на одну системную дискету не влазили одновременно транслятор и линковщик, поэтому были две системные дискеты, она с редактором и транслятором, вторая - с линковщиком. Соответственно, перед линковкой системную дискету меняли. ОС, естественно не перегружали - ей было все равно :) Исходники и объектники - во втором дисководе.
Тем что РЕД База Данных - это форк Firebird.
Приточка с улицы - источник пыли, что для серверной очень плохо.
У нас в "серверной" два кондея, один летний, другой зимний. По смыслу они одинаковы, но у "зимнего" внешний блок висит не на улице а во входном коридоре-тамбуре, и зимой хорошо его отапливает. Зачем выкидывать тепло на улицу если можно использовать с пользой. У "летнего" кондея внешний блок на улице, и его приходится обслуживать, чистить от пыли. У "зимнего" внешний блок в помещении, и в таком обслуживании он не нуждается.
Ну и т.к. в серверной нет ни приточки ни вытяжки - пыль там не собирается, системники всегда чистые.
Два кондея - это еще и резервирование. Если летом сдохнет летний - можно включить зимний, открыв дверь из тамбура на улицу. Если зимой сдохнет зимний - то если не сильный мороз, то можно попробовать включить летний. Если сильный мороз - то придется просто проветривать, на время ремонта. На этот случай есть воздушный канал между серверной и it-отделом, с мощным вентилятором. Но для отопления it-отдела этот метод на постоянку не используется т.к. натянет пыль в серверную.
Там поди был какой-то старый Firebird архитектуры супер-сервер, который не умеет параллелиться. Старый сервер был, условно с одним ядром, но с большой частотой, и FB его успешно использовал. А на вашем новом сервере поди 64 ядра, но с частотой в 3-4 раза меньше, вот FB сел на одно медленное ядро, и слил всю скорость :)
На заглавной картинке КДПВ, в штампе подписи, указаны странные сроки. Дата окончания меньше даты начала действия. Там данные совсем с потолка, или где-то в коде есть ошибка?
Оно не узкое. После того как актуальность версий заканчивается, это место будет в дальнейшем использовано. Уборка "мусорных версий" производится при обращении к записи, сервер определяет какую из версий может видеть клиент, а какие версии уже никому не нужны. Т.е. убирать будет не тот кто эти версии создал, или удержал, а следующий за ними клиент/транзакция. От этого есть несколько решений - не держать длинных транзакций без необходимости. При удалении большого количества записей лучше тут же их прочитать, из той процедуры которая удаляла, но в новой транзакции. Таким образом замедление будет у того кто удалял а не у следующего, типа "необъяснимое торможение".
Так что совершенно не факт что " отдельный undo log лучше ".
Для Linux, видимо, должна быть несколько иная строка.