Детектор и автосклейка многостраничных скриншотов
Постоянно попадаются посты вроде этого, где публикуются скриншоты длинной ленты сообщений из мессенджера или из комментариев.
При этом почему-то многие забывают или попросту не знают про функцию скриншота со скроллингом, а некоторые девайсы их даже не поддерживают.
Предолжение заключается в автоматическеой детекции в общих частей в наборе картинок и предложении пользователю в ходе подготовки поста после загрузки всех картинок - склеить их в одну с аккуратным вырезанием лишнего.
Просто показываем всплывающую подсказку и при нажатии кнопки принять показываем превью со склееным изображением. Если все норм, то заменяем загруженные картинки на одну склеенную.
При этом изображения, которые не имеют общих фрагментов, будут оставлены нетронутыми.
Это позволит убрать визультный шум в таких постах, облегчит чтение, сэкономит время пользователей, сделает публикацию более удобной и комфортной.
Технически задача не сложная, нужно лишь понимать, что на таких скриншотах кроме смещающейся контентной части могут быть полосы прокрутки (их нужно будет обрезать), границы кадра (верхняя и нижняя, каждая опционально), попапы и слои виджетов поверх контента (поле ввода ответа, диалоговые окна, миниатюра плеера "картинка в картинке", статичное декоративное оформление ленты контента).
Если у нас возникают какие-то слодности, мы всегда можем отказать в автоматическом слиянии скриншотов в один и не испортим контент.
В отладочных целях для бета-тестеров можно предложить в настройках включить склейу скриншотов "на лету".
Детектировать скроллинг в скриншотах можно на сервере, а сведения о координатах размещения контентной и оверлейных частей можно поместить в метаданные, отдаваемые нерез отдельный хендлер API по идентификатору изображения. Тогда функцию склеивания для существующих постов можно реализовать прямо на фронте.
Сбор и обработка показаний датчиков с Arduino в базу mysql
Говорят у меня появился один подписчик, возможно это будет интересно ещё кому-то.
Сам я программист не настоящий, пытаюсь помаленьку, иногда выходит что-то вразумительное. На основе данного поста, возможно кто-то более настойчивый и сообразительный сможет построить что-то своё.
В предыдущем посте я уже показал сбор и передачу показаний датчиков по "воздуху" от одной Arduino до другой. Здесь продолжение этой цепочки, дальнейшая обработка полученный данных.
В качестве базы использовал OrangePi One с установленной Armbian OS. В основе Debian, по этому всё как там. Соответственно MariaDB и Apach. Возможно что-то другое на свой вкус.
За сбор данных отвечает скрипт на Python запущенный в качестве сервиса. При запуске автоматом сканирует COM-порты и если такой находит, слушает его. Если в COM-порт что-то приходит, пытается разобрать и отправить в базу данных. База имеет такую структуру:
В базе две таблицы, в одну "data", заносятся показания датчиков, в другой "servo", заносятся значения устанавливаемые на сайте в разделе "Управление" для ручного управления какой-либо автоматикой (возможное дальнейшее развитие этого проекта), в моём случает для управления автоматизацией теплицы. На данный момент здесь нет логики которая основывалась бы на значениях датчиков и собственно автоматизированного управления. Пока только ручное управление.
Данные с базы "data" визуализированы и выводятся в виде различных графиков. По умолчанию выводятся на диаграммы последние значения, на общий график последние 12/48/... (сколько задать в настройках скриптов) значений, либо за указанный период.
Его нужно закинуть в /etc/systemd/system в варианте для Armbian OS.
На этом пока всё. Спасибо за внимание :)
Robotic process automation (далее RPA)
- технология автоматизации бизнес-процессов, основанная на программном обеспечении роботов (ботов) и/или работников искусственного интеллекта.
Отличительной и основной особенностью RPA является возможность использования пользовательского интерфейса для сбора данных и управления приложениями.
RPA оптимизирует рабочие процессы, что делает организации более прибыльными, гибкими, оперативными. Повышает удовлетворенность сотрудников, вовлеченность и производительность за счет удаления рутинных задач из их рабочего дня.
В традиционных системах автоматизации документооборота разработчик программного обеспечения создаёт список действий для автоматизации задачи и взаимодействия с внутренней системой с использованием внутренних интерфейсов прикладного программирования (API) или выделенного языка сценариев. RPA-системы используют как API так и создают список действий, наблюдая за тем, как пользователь выполняет задачу в графическом пользовательском интерфейсе приложения (GUI), а затем выполняет автоматизацию, повторяя эти задачи непосредственно в графическом интерфейсе.
Это может снизить барьер для использования автоматизации в продуктах, которые в противном случае не могли бы использовать API для этой цели.
Инструменты RPA имеют сильное техническое сходство с инструментами тестирования графического интерфейса пользователя. Такие инструменты автоматизируют взаимодействие с графическим интерфейсом, повторяя набор демонстрационных действий, выполняемых пользователем.
Инструменты RPA отличаются от таких систем, включая функции, которые позволяют обрабатывать данные в нескольких приложениях и между ними, например, получать электронную почту, содержащую счёт-фактуру, УПД и другие бухгалтерские документы, извлекать данные (если требуется, очищать их) и вносить в систему бух-учёта. (например, 1C)
Технология RPA получила такое широкое распространение, по причине широкого спектра применения. Практически любой, управляемый бизнес-правилами, повторяемый процесс является отличным кандидатом на автоматизацию, все чаще это касается когнитивных процессов, требующих навыков искусственного интеллекта более высокого порядка.
Хостинг служб RPA согласуется с метафорой программного робота, каждый робот имеет свою рабочую станцию, схожую с человеком-работником или используются терминальные сервера, где может работать несколько роботов, выполняя различные операции.
RPA использует элементы управления клавиатурой и мышью, чтобы выполнять действия и выполнять автоматизацию. Обычно все эти действия выполняются в виртуальной среде, а не на экране, роботу не нужен физический экран для работы, он интерпретирует экран в электронном виде.
Масштабируемость современных решений, основанных на таких архитектурах, как технологии виртуализации . Без которых большие развёртывания будут ограничены доступной способностью управлять физическим оборудованием и связанными с ним затратами. Реализация RPA на предприятиях показала значительную экономию средств по сравнению с традиционными решениями, не относящимися к RPA.
Так происходит за счёт экономии временных затрат, причем не только работников или компании в целом, но и разработчиков, которые роботов создают, отсюда и уменьшение цены автоматизации.
Почему? — это следствие того, что в разработке роботов основой служит Low-Code, в основе которого лежит синтаксис какого-нибудь языка программирования, например: C - образные, Python, PowerShell.
В платформе разработки RPA работают с так называемыми блоками, в которых прописываются действия, пути к файлам и т. д.
Чистый же код используется для встраивания дополнительных скриптов или даже целых программ, что расширяет возможности платформ и снимает многие ограничения.
В том числе использование ИИ, для создания сложных программно-роботизированных систем, с принятием решений и/или использованием OCR технологий.
Блоков не хватает? Вы всегда сможете написать свои варианты активностей, для дальнейшего использования в процессе разработки, что опять же приводит к сокращению временных затрат на оную, особенно при роботизации сложных процессов.
Но самая главная изюминка на мой взгляд это совмещение классических стеков технологий с RPA, подобный подход позволяет не только автоматизировать бизнес-процессы, но и создавать быстрые, безопасные, масштабируемые и отказоустойчивые приложения практически для любых нужд, где требуется автоматизация.
Согласно [Harvard Business Review], большинство компаний внедряющих RPA, пообещали своим сотрудникам, что автоматизация не приведёт к увольнению. Вместо этого трудовые ресурсы перераспределяются для выполнения более интересной работы.
В одном академическом исследовании подчёркивалось, что работникам в сфере знаний не угрожает автоматизация: они принимали его и рассматривали роботов в качестве коллег. В этом же исследовании было подчёркнуто, что вместо того, чтобы приводить к более низкой «численности персонала», технология была развёрнута таким образом, чтобы добиться большей работы и повышения производительности при одинаковом числе людей.
С другой стороны, некоторые аналитики утверждают, что RPA представляет угрозу для отрасли аутсорсинга бизнес-процессов. Тезис, стоящий за этим понятием, заключается в том, что RPA позволит предприятиям «репатриировать» процессы из удалённых районов в локальные центры обработки данных, используя данную технологию. Эффект, будет заключаться в создании высоких позиций для опытных менеджеров процессов на собственных площадках (и в рамках соответствующей цепочки поставок ИТ-оборудования, управления дата-центром и т. д.), с уменьшением доступных возможностей для низкоквалифицированных рабочих на аутсорсинге. (Пример: многие видели это огромное кол-во вакансий с различным набором текста, рассылки документов, холодных звонков или внесение данных из бумажных документов в 1С, различные ERP системы, в том числе и по ночам, когда организации не работают.)
Исчезновение подобных вакансий и в принципе рынка низкоквалифицированного труда, будет стимулировать интеллектуальное развитие граждан, побуждая их осваивать более человеческие специализации, где требуется интеллектуальная и/или творческая деятельность, а также в больших масштабах сократит человеческий фактор в документообороте и другой рутине.
Академические исследования предполагают, что RPA, среди других технологических направлений, как ожидается, приведёт к новой волне повышения производительности и эффективности на глобальном рынке труда. Оксфордский университет, хотя и не ассоциируется напрямую с RPA предположил, что до 20 % всех рабочих мест, возможно, будут автоматизированы к 2035 году.
На конференции TEDx проходившей в UCL в Лондоне, предприниматель Дэвид Мосс рассказал, что цифровая работа в форме RPA не только может произвести революцию в модели затрат индустрии услуг за счёт снижения цены на продукты и услуги, но и вероятно, повысит уровень обслуживания, качество результатов и создаст возросшие возможности для персонализации услуг.
Между тем, профессор Уилкокс, автор статьи Лондонской школы экономики и политических наук, приведённой выше, говорит об увеличении удовлетворённости работой и интеллектуального стимулирования, характеризующем технологию как способность вывести робота из человека, отсылка на понятие о том, что роботы возьмут на себя рутинные части ежедневной рабочей нагрузки людей, в результате чего они будут перераспределены на более межличностные роли или сосредоточатся на оставшихся, более значимых частях своего времени.
Теперь обсудим более предметно.
В связи с определенными событиями все зарубежные RPA платформы так или иначе ушли с Российского рынка автоматизации, упомяну только UiPath и Blu Prizm, так как в связи с импортозамещением сейчас идет обширная миграция (перевод роботов с одной платформы на другую) с данных платформ на наши Российские и, если вас заинтересует RPA было бы не плохо изучить хотя бы одну из них, это повысит вашу ценность как специалиста перед работодателями.
А что в России, у нас есть свои IDE для роботов?
Есть и не одна и не две, на самом деле их более 10.
Но основную долю рынка сейчас занимают три самые проработанные и клиенто-ориентированные: PIX Robotics, PrimoRPA и Sherpa RPA. (Ссылку указываю только на одну из платформ так как во время написания статьи, в выходной день, я смог получить прямое разрешение на упоминание, от команды данной платформы)
Сравнений в статье не будет, так как у каждой из них есть свои особенности и преимущества, но они уже не уступают мировым лидерам роботизации и где-то даже превосходят их.
К чему был весь этот экскурс?
Я хотел познакомить вас с одной из интересных технологий, которая сейчас развивается семимильными шагами и входит в нашу жизнь, правда есть одно – но, и это малое количество специалистов, как разработчиков так и аналитиков.
Сейчас на каждом углу кричат как легко войти в IT, цитирую неизвестного мне пользователя одного форума, “Легко можно выйти, но вот войти вряд ли” и тут он абсолютно прав, учиться и работать нужно в любой сфере, тем более в области высоких технологий. Но. Занять своё место как специалист RPA пока что намного проще, нежели в сфере классической разработки, где благодаря хайпу последнего года, нестройная толпа недоученных специалистов, сменивших специальности, но не имеющих практических навыков ищут своё место под солнцем. Дополнительную информацию или как стать RPA специалистом, вы можете почитать на Портале про RPA.
Здесь вы можете найти огромное количество информации по данной тематике.
Спасибо за внимание.
Безопасная бытовая автоматизация или «Умный дом на минималках»
На волне постов про забытые включенные утюги, газовые плиты и прочую пожароопасную электронику хочу поделиться современными технологиями, помогающими уменьшить количество опасных ситуаций.
В наше время чего только китайцы люди не придумали для облегчения рутинных дел. Это так же касается и системы «умный дом», которые сейчас работают от алисы, маруси и прочих электронных женщин.
Так вот, что касается безопасности - вот вам несколько приблуд, с которыми вы станете менее тревожными.
Сегодня расскажу про такую категорию как умные розетки. И даже умные сетевые фильтры. Их есть несколько вариантов.
Первый вариант - самый простой, нужно просто купить розетку которая втыкается в вашу существующую розетку и к ней уже подключить электроприбор. Как будто тройник, выглядит конечно не сильно эстетично, но вариант для «неэлектриков»самый подходящий.
Кстати в этот вариант я отправляю и сетевой фильтр. Это просто чуть больше управляемых розеток в одном месте. Принцип работы - в приложении или по кнопке на самой розетке можно отключить подачу питания на электроприбор. Т.е. вы вышли из дома и сомневаетесь- выключили ли утюг? Жамкнули на кнопку в приложении и теперь вы на 99% уверены что все таки выключили😁. Почему на 99%? Потому что внутренняя тревожность все таки не отпускает, 1% стоит ей оставить.
Второй вариант подойдет вам если вы умеете немного в электрику. Это установка в подрозетник релюшки, которая так же подключается к телефону, но уже не так громоздко выглядит и не нужно менять розетки в квартире. Этот вариант один из самых дешевых. Принцип работы точно такой же как и в первом случае.
Ну и третий вариант специально для электрических богов(шучу конечно) - это установка розетки со встроенным реле. Вариант дорогостоящий, предполагающий что вы сразу при ремонте закладываете систему «умный дом». Выглядит симпатично, и розетки так же можно подобрать под дизайн жилого помещения, вариантов масса.
В конце скажу что конечно не стоит на все 100% перекладывать ответственность на этих малышей, голова на плечах все равно должна оставаться. А так же, если вы не уверены что сможете установить данные приборы сами, лучше обратитесь к специально обученным людям, не рискуйте собой и своей жизнью. И помните - в квартире главное не дорогие обои или мебель. Главное - качественные коммуникации. Потратьте больше денег на сантехнику, отопление и электрику и будет вам счастье.
В следующий раз расскажу как можно нехитрой автоматизацией решить проблему затопления соседей и избежать утечки газа в квартире. Всем благ и умной автоматизации💛
Вы хотите головоломок?
Их есть у нас! Красивая карта, целых три уровня и много жителей, которых надо осчастливить быстрым интернетом. Для этого придется немножко подумать, но оно того стоит: ведь тем, кто дойдет до конца, выдадим красивую награду в профиль!