И способствует быстрому нахождению нужных кнопок, цветное пятно найти проще чем прочитать надпись, не зря АСУТП'эшные экраны такие пестрые, там важна скорость реакции как и здесь.
Вы про абсурдность функции Pattern ()? Мы про необходимость сохранения целостности записей на этапе обработки соответствующих этим записям данных. Заметим, что функция Pattern () упоминается вскользь. Если кому-то проще обращение к тому, что называется 'нормальные системы класса ETL/MDM/DQ', то это ничего не меняет. Смотрите нашу новую статью в продолжение темы конвертации — 'Адаптация SQL' о совместимости СУБД, где в PostgreSQL создается БД из скрипта MySQL
Xps рассматривал как вариант, но так и не понял как там указать лоток принтера для каждой страницы документа. Потом вариант с PCL показался не сложным, кроме того его можно так же просто реализовать не только на .Net потому и остановился на PCL + GhostScript.
Интересно как узнать про ваше решение, т.е. как получали xps фалы, приходилось ли их модифицировать для многолотковой печати и как?
Зависит, конечно, от определений, но вообще нет. Если считать интернет самой большой и объемной компьютерной сетью, то в основе такой сети исторически дерево, дополненное до многоуровневого графа. Если считать топологией не только железки, но и гиперпространство поверх них, то всякие умные люди, пишущие статьи, придумали для этого термины Jellyfish (медуза), либо Bow Tie (галстук-бабочка).
У дерева a priori есть корень. Где же корень интернет?)
Я уверен, что у большинства читателей как минимум дома стоит роутер, к которому цепляются остальные железки, а это и есть звезда.
Вообще-то в тексте сразу поясняется, о какой надежности речь: «(выход из строя одной машины не сказывается на других)». Конечно, выход из строя концентратора приведет к выходу из строя всей сети. Именно поэтому программная реализация ядра должна быть предельно проста и надежна.
А если по существу — то вы написали n+1-ую messaging bus
– абсолютно верно.
Поясните, что ли, чем она лучше всех существующих и стандартизированных решений
Насколько я понимаю, не то, что нет гарантированной доставки, а нет даже концепции очереди и какого-то ее хранения?
– Если нужно, добавить очередь в methanum, не так-то и сложно.
Сообщения, судя по коду, пакуются в JSON — не кажется ли, что это как-то, несколько неоптимально для внутрипрограммной шины?
— Сами события сериализуются в бинарный формат, при этом по умолчанию они могут содержать словарь примитивов (int, double, bool…). Т.к. первоначально система создавалась для сбора и обработки данных с промышленных контроллеров, где примитивов было вполне достаточно. Если нужно передавать пользовательскую структуру, можно добавить ее в качестве известного типа, например «[KnownType(typeof(List))]». Или можно запаковать объект ну скажем в строку, в данном случае в JSON. И кстати нигде и речи не идет, что данное решение исключительно внутрипрограммное.
Данная статья задумывалась, чтобы поделиться опытом, как сделать программную реализацию звезды своими руками, без каких либо зависимостей и сторонних проектов. Проект methanum абсолютно не претендует на звание нового и уникального инструмента. Однако, в некоторых случаях может быть очень полезен, его можно быстро заточить под свои нужды.
Спасибо за наблюдение. В cond может быть как else так и #t оба варианты корректны, в стандарте R6Rs, в примерах else. Хотя #t наверно более читаемо.
Так же забыли упомянуть, что функции вида (define (add a b) (+ a b) это named functions (именные?), а функции вида (lambda (x y) (+ x y)) это anonymous functions.
Я бы еще сюда добавил функции для создания, разрушение, присоединения листов: cons, car/cdr, append.
И очень полезную функцию eval
Согласен, как-то упустил из виду, обязательно позже дополню.
Ошибки нет, наверно 0 сбивает с толку привыкших к си, в Scheme истина все кроме #f. Результат and и or это либо ложь, либо значение истинного аргумента. Например, (and #f 11 22 33); => #f, при этом как только получен #f остальные аргументы не вычисляются. Выражение (or #f 11 22 33) ;=> 11, т.к. после того, как получена истина следующие аргументы не вычисляются.
Нечто общее с FORTH есть, сам когда-то увлекался последним. Форт может в более широких пределах расширять синтаксис. Однако, ИМХО лисп более гибок и более высокоуровневый, не нужно постоянно заботится о стеке, проще реализуется переменное число аргументов и т.д…
Интересно как узнать про ваше решение, т.е. как получали xps фалы, приходилось ли их модифицировать для многолотковой печати и как?
У дерева a priori есть корень. Где же корень интернет?)
Я уверен, что у большинства читателей как минимум дома стоит роутер, к которому цепляются остальные железки, а это и есть звезда.
Вообще-то в тексте сразу поясняется, о какой надежности речь: «(выход из строя одной машины не сказывается на других)». Конечно, выход из строя концентратора приведет к выходу из строя всей сети. Именно поэтому программная реализация ядра должна быть предельно проста и надежна.
– абсолютно верно.
– наверно минимализмом. Ну в самом деле, посмотрите в исходники существующих решений
– Если нужно, добавить очередь в methanum, не так-то и сложно.
— Сами события сериализуются в бинарный формат, при этом по умолчанию они могут содержать словарь примитивов (int, double, bool…). Т.к. первоначально система создавалась для сбора и обработки данных с промышленных контроллеров, где примитивов было вполне достаточно. Если нужно передавать пользовательскую структуру, можно добавить ее в качестве известного типа, например «[KnownType(typeof(List))]». Или можно запаковать объект ну скажем в строку, в данном случае в JSON. И кстати нигде и речи не идет, что данное решение исключительно внутрипрограммное.
Данная статья задумывалась, чтобы поделиться опытом, как сделать программную реализацию звезды своими руками, без каких либо зависимостей и сторонних проектов. Проект methanum абсолютно не претендует на звание нового и уникального инструмента. Однако, в некоторых случаях может быть очень полезен, его можно быстро заточить под свои нужды.
Согласен, конкретно в данном примере вполне можно использовать MemoryStream[].
А вот статью "Выравнивание горизонта" взял на заметку, спасибо.
Согласен, как-то упустил из виду, обязательно позже дополню.
Если это и это еще больше увеличит восторг, то не зря старался).
Нечто общее с FORTH есть, сам когда-то увлекался последним. Форт может в более широких пределах расширять синтаксис. Однако, ИМХО лисп более гибок и более высокоуровневый, не нужно постоянно заботится о стеке, проще реализуется переменное число аргументов и т.д…