Рубрика «FSM»

Запуск I2S Трансивера на Artery [часть 2] (DMA, FSM, PipeLine) - 1

Пролог

В этом тексте вы узнаете, что общего между I2S трансивером и оладьями. Да... Именно так. Зачем программисту микроконтроллеров конвейеры и цифровые фильтры.

В этом тексте изложено как источать звук при помощи I2S DMA.

В чём проблема?

В прошлом текстеЧитать полностью »

Существует классическая задача:

Есть 2 емкости: 5 литров и 3 литра. Как отмерить 4 литра жидкости используя только эти 2 емкости?

Понятное дело что тут важно не сколько знание правильного ответа, а знание метода решения таких задач. Ведь вместо целевых 4х литров могут спросить отсчитать и 1,2,6,7 литров.

В этом тексте я решу эту задачу в общем виде при помощи конечного автомата. Так как тут явно можно проследить состояния и входные воздействия. Также я упомяну про малоизвестный язык Front-End разметки DotЧитать полностью »

Признаюсь, но я не знаю Python. Просто потому, что не использую. Тем не менее, взявшись за его освоение, а также в попытках расшифровать загадочную аббревиатуру GIL, вышел на статью с описанием «необъяснимых магических явлений» параллельного варианта CPU-зависимой функции на Python. Возникло желание перепроверить данный тест и сравнить с эквивалентной реализацией в форме модели конечного автомата (Finite-state machine или сокращенно FSM) в среде Визуального Компонентного Программирования (автоматного) — ВКП(а).

Очевидно любая программа в определенной мере CPU-зависима. С другой стороны, если это только не ассемблер, то тестированием на том или ином языке высокого уровня мы в большей степени исследуем программную прослойку, скрываемую им. Поэтому, рассматривая Python, правильнее было бы говорить о CPU-зависимости его интерпретатора. Можно даже утверждать, что программа на Python будет иметь скорость, зависимую от версии интерпретатора, и обладать характерной для него «мистикой».

В то же время есть ситуации, когда зависимости от CPU может почти не быть (в этом мы убедимся). Речь идет о языках, вычислительная модель которых отлична от типовой архитектуры процессоров. Вычислительная модель Python, ей соответствует, а автоматная модель вычислений, о которой далее пойдет речь, имеет другую архитектуру и это будет определять специфику ее тестирования. Какая будет скорость и будет ли иметь место мистика выяснится в процессе тестирования «автоматного кода».
Читать полностью »

Снова на связи продуктовый аналитик отечественной service desk. В прошлый раз мы рассказывали про нашего клиента, сервисную компанию “Брант”, которая внедрила нашу платформу во время активного роста своего бизнеса.

Одновременно с ростом числа заявок у “Бранта” выросло и число объектов обслуживания — количественно и территориально. Как следствие, понадобилось больше разъездов на большие расстояния, и бюджет на расходы по ГСМ значительно увеличился. Как автоматизация диспетчерской службы помогла уберечь ее от этих расходов, хочу рассказать в этом посте.

Автоматизация диспетчерской службы, или Как сервисной компании сократить транспортные расходы на 30% - 1
Читать полностью »

Меня зовут Дарья, я продуктовый аналитик. Основной продукт моей компании — service desk, облачная платформа, которая автоматизирует бизнес-процессы: например, ремонтные работы, техническое обслуживание различных объектов. Одна из моих задач — участие в процессе внедрения нашей платформы в бизнес клиентов, при этом нужно погрузиться в специфику работы конкретной компании как можно глубже.

Хочу поведать, как удалось автоматизировать трудоемкие бизнес-процессы одному из наших клиентов, сервисной компании “Брант”. Компания обратилась к нашей платформе, когда количество ее клиентов, и, соответственно, заявок на обслуживание, стало стремительно расти. Бизнес активно развивается, ведь это отлично, в чем подвох? В том, что резко растет и количество однотипных рутинных процессов, и эту опасность нельзя недооценивать. А кроме того, становится очевидно, что нельзя пользоваться теми же инструментами, которые работали, когда заявок было меньше.

Как Service Desk спас сервисную компанию, или Что делать, если ваш бизнес растет? - 1
Знакомо?

Итак, история спасения.
Читать полностью »

Введение

Начитавшись разных статей на тему автоматизации сервисной компании, мы приняли решение, что нам тоже пора обзавестись волшебной кнопкой, которая «вжик» и увеличит эффективность всех текущих процессов сервисного обслуживания наших клиентов.

Стоит сразу отметить, что с момента решения «нам нужно автоматизировать процессы» до момента реализации задуманного у нас ушло 2 месяца. И мы считаем, что мы справились довольно быстро. Большая часть времени ушла на то, чтобы разобраться в работе и функционале предложенных на рынке вариантов. Еще столько же на внедрение выбранного решения в бизнес и окончательный «переезд» на работу в нём. Сэкономим время читателя и расскажем про наш сравнительный анализ рынка систем автоматизации сервисного бизнеса.
Читать полностью »

5 лет назад, после поиска годного решения в RxJs, Beacon, ...etc.js, и остановившись на flyd.js и написал 4-6 проектов используя только три фичи из либы stream, on, combine. Остальное оказалось не у дел, хотелось легкости бандла. Так появился alak, первые версии до 0.3 были всего 20-30 строк и полностью заменили flyd.

Год спустя появилась версия 0.4 уже на 72 строки с паттерн матчингом и mix (аналог combine из flyd или computed из vue). Спустя три года и десятки проектов — появилось ощущение годности к релизу 1.0.

Реактивный конечный автомат - 1
Читать полностью »

Стандартный подход к описанию последовательности вводов пользователя и реакции на них (например при управлении персонажем в игре) — это конечный автомат (state machine). Он, однако, часто приводит к громоздким программам, понимание которых требует немалых усилий или даже зарисовок на бумаге. В этой статье я предлагаю небольшой сдвиг в описании, который позволяет экономить место на экране и мозговой ресурс.

image

Сдвиг в описании заключается в использовании техники сопрограмм. Для применения этой техники, необходимо представить, какое поведение мы ожидаем от компьютера в итоге. Поэтому я назвал небольшую библиотеку, которую создал под эту задачу — Behaviors.
Читать полностью »

Модель конечного автомата (finite-state machine, FSM) находит применение в написании кода для самых разных платформ, включая Android. Она позволяет сделать код менее громоздким, неплохо укладывается в парадигму Model-View-Presenter (MVP) и поддаётся несложному тестированию. Разработчик Владислав Кузнецов рассказал на Droid Party, как эта модель помогает в развитии приложения Яндекс.Диск.

— Вначале поговорим по теорию. Думаю, каждый из вас слышал и про MVP, и про стейт-машину, но повторим.Читать полностью »

image

Введение

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js