Pull to refresh
16
0
Антон Жуков @Beetle_ru

Программист

Send message
И способствует быстрому нахождению нужных кнопок, цветное пятно найти проще чем прочитать надпись, не зря АСУТП'эшные экраны такие пестрые, там важна скорость реакции как и здесь.
можно, но если вдруг понадобится поменять разделитель его придется изменить в двух местах, а не в одном)
Предпочитаю не стрелять из пушки по воробьям независимо от того как хорошо стреляет пушка)
Вы про абсурдность функции Pattern ()? Мы про необходимость сохранения целостности записей на этапе обработки соответствующих этим записям данных. Заметим, что функция Pattern () упоминается вскользь. Если кому-то проще обращение к тому, что называется 'нормальные системы класса ETL/MDM/DQ', то это ничего не меняет. Смотрите нашу новую статью в продолжение темы конвертации — 'Адаптация SQL' о совместимости СУБД, где в PostgreSQL создается БД из скрипта MySQL
Xps рассматривал как вариант, но так и не понял как там указать лоток принтера для каждой страницы документа. Потом вариант с PCL показался не сложным, кроме того его можно так же просто реализовать не только на .Net потому и остановился на PCL + GhostScript.

Интересно как узнать про ваше решение, т.е. как получали xps фалы, приходилось ли их модифицировать для многолотковой печати и как?
Верно, у GhostScript лицензия AGLP, поэтому либо покупать версию для коммерческого использования, либо открывать исходники
Работаю над продолжением, там будет пример на C#. Хотя действительно, идею из данной статьи можно реализовать на чем угодно.
Зависит, конечно, от определений, но вообще нет. Если считать интернет самой большой и объемной компьютерной сетью, то в основе такой сети исторически дерево, дополненное до многоуровневого графа. Если считать топологией не только железки, но и гиперпространство поверх них, то всякие умные люди, пишущие статьи, придумали для этого термины Jellyfish (медуза), либо Bow Tie (галстук-бабочка).

У дерева a priori есть корень. Где же корень интернет?)
Я уверен, что у большинства читателей как минимум дома стоит роутер, к которому цепляются остальные железки, а это и есть звезда.
Вообще-то в тексте сразу поясняется, о какой надежности речь: «(выход из строя одной машины не сказывается на других)». Конечно, выход из строя концентратора приведет к выходу из строя всей сети. Именно поэтому программная реализация ядра должна быть предельно проста и надежна.
А если по существу — то вы написали n+1-ую messaging bus
– абсолютно верно.
Поясните, что ли, чем она лучше всех существующих и стандартизированных решений
– наверно минимализмом. Ну в самом деле, посмотрите в исходники существующих решений
Насколько я понимаю, не то, что нет гарантированной доставки, а нет даже концепции очереди и какого-то ее хранения?
– Если нужно, добавить очередь в methanum, не так-то и сложно.
Сообщения, судя по коду, пакуются в JSON — не кажется ли, что это как-то, несколько неоптимально для внутрипрограммной шины?
— Сами события сериализуются в бинарный формат, при этом по умолчанию они могут содержать словарь примитивов (int, double, bool…). Т.к. первоначально система создавалась для сбора и обработки данных с промышленных контроллеров, где примитивов было вполне достаточно. Если нужно передавать пользовательскую структуру, можно добавить ее в качестве известного типа, например «[KnownType(typeof(List))]». Или можно запаковать объект ну скажем в строку, в данном случае в JSON. И кстати нигде и речи не идет, что данное решение исключительно внутрипрограммное.

Данная статья задумывалась, чтобы поделиться опытом, как сделать программную реализацию звезды своими руками, без каких либо зависимостей и сторонних проектов. Проект methanum абсолютно не претендует на звание нового и уникального инструмента. Однако, в некоторых случаях может быть очень полезен, его можно быстро заточить под свои нужды.
Есть, и что теперь ThreadPool.QueueUserWorkItem забыть как тупиковую ветвь эволюции?)

image
Не понимаю связь между годом и многопоточностью.
Согласен, конкретно в данном примере вполне можно использовать MemoryStream[].
Спасибо за наводку
Про разность восприятия цветов в курсе, но для данной задачи такие тонкости не к чему.
А вот статью "Выравнивание горизонта" взял на заметку, спасибо.
Спасибо за наблюдение. В 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


Согласен, как-то упустил из виду, обязательно позже дополню.
Всегда пожалуйста!
Если это и это еще больше увеличит восторг, то не зря старался).
Используется для разруливания логики, но пока не в больших объемах. Пока лисп разработчики не нужны, но будем иметь ввиду ;)
Под рукой нет Racket, думаю, причина в том, что в примере юникод, т.е. 2 байта, а Racket поддерживает Ascii, т.е. должно быть #\xE5 для лямбды.
Ошибки нет, наверно 0 сбивает с толку привыкших к си, в Scheme истина все кроме #f. Результат and и or это либо ложь, либо значение истинного аргумента. Например, (and #f 11 22 33); => #f, при этом как только получен #f остальные аргументы не вычисляются. Выражение (or #f 11 22 33) ;=> 11, т.к. после того, как получена истина следующие аргументы не вычисляются.

Нечто общее с FORTH есть, сам когда-то увлекался последним. Форт может в более широких пределах расширять синтаксис. Однако, ИМХО лисп более гибок и более высокоуровневый, не нужно постоянно заботится о стеке, проще реализуется переменное число аргументов и т.д…
Racket тема интересная. Из Racket можно работать с базами данных, с тем же Orcale?
2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity