Найти в Дзене
Закреплено автором
Сергей Харечкин aka SHS408
Мои знакомые и близкие, слушая истории о моей профессиональной деятельности, часто говорили мне, что неплохо бы было записывать их и публиковать. Наверное, они считают их интересными и, в чем-то даже, поучительными... Что ж... Спустя N лет я решил поддаться на их уговоры (точнее услышал серьезные аргументы) и вот он, блог... Кстати о деятельности... На самом деле ее сложно вписать в какие-то привычные понятия... Много чего из IT, но и из других областей тоже много чего, так как приходится касаться то метрологии, то геодезии... то VR, документооборота в государственном управлении и т.д. Немного о себе... Родился и вырос в деревне... Потом 9 лет Физ-Теха ТвГУ... (иногда скучаю по научной работе, компенсирую...) Потом начал бизнес в компьютерной сфере. "Интеграция в розницу" - вот такой принцип был мной придуман и реализован. Постараюсь в блоге рассказать поподробнее... Еще в университетские годы занялся разработкой ПО различного уровня и назначения. В основном для молекулярно-динамических моделирования и обработки результатов виртуальных экспериментов. Но были и коммерческие проекты. Например, автоматизация учета поступления и движения сырья для Бологовского молочного завода и Система управления версткой номера журнала объявлений на автомобильную тематику "АВТОТверь" для ООО РИЕ "Мы лучшие". На почве этих двух направлений (комплектующие и разработка ПО) начал сотрудничать с Total Interactive Tecnologies, первопроходцем 5D и VR в России. Поначалу как поставщик компонентов, затем и как консультант. В итоге переделал и программное обеспечение... И так далее, и так далее... Разные идеи, разные проекты. О том и блог!)
1 год назад
EdgeBrowser в Delphi, и чем он может быть полезен.
Собственно, что такое EdgeBrowser так или иначе знают все. Логично, что и Delphi содержит необходимый визуальный компонент, для работы с ним (пусть и с некоторыми нюансами, в отличие от привычного "старичкам" TWebBrowser), но... Итак, предыстория. Возникла у компании необходимость проверки оборудования, а именно IP-камер, на предмет соответствия их характеристик и возможностей. Получается, что надо взять выборку из партии, дать обученным людям и пусть проверяют. Так? Ну в малых масштабах так и делается...
2 месяца назад
И вновь тема Speech API и Delphi 12.1... Асинхронный вывод.
Собственно, речь пойдет о том, как добиться того, чтобы наше приложение не "подвисало" в процессе воспроизведения речевым синтезатором фразы. На самом деле раньше (когда мы использовали импорт библиотеки типов) все было просто и понятно. Импортируемая функция имела флаги, на все случаи жизни... Поэтому мы легко и непринужденно ставили SVSFlagsAsync и радовались жизни... Но когда мы работаем с чистым OLE, нас такой возможности нет...
10 месяцев назад
Всемогущий CMD.EXE и использование консольных комманд Windows в Delphi 12.1
Сказать по правде, в планах было написание статьи совсем на другую тему, а именно анонс обновления софта для 5D/7D/VR, но занимаясь этим самым обновлением обнаружил интересный момент в работе с командами консоли, с которым прежде не сталкивался... Кто-то может сказать, мол, ну а что ж тут сложного? Юзай winexec и будет тебе счастье! Да, но это годится только для простых задач, когда надо выполнить действие, не контролируя его исполнение и без намерений получить какой-либо результат... И тут уж нам никак не обойтись без нашего любимого CreateProcess и WaitForSingleObject...
11 месяцев назад
"Умная швабра" или контроль инструмента... Пару лет назад один немаленький клининговый холдинг обратился к нам с просьбой решить каким либо образом вопрос с контролем исполнения работ младшим персоналом (уборщиками, уборщицами и т.п.). Казалось бы, что сложного? Установили видеонаблюдение и пусть куратор мониторит.... Но! Помещения, где работает персонал, чаще всего "чужие" и потому ни установить свое наблюдение, ни установить какие-либо датчики или метки, да даже приклеить наклейку с QR-кодом и то НЕЛЬЗЯ! А контролировать надо... Скачала мы думали, что бы такого повесить на самого сотрудника... Но, если раскинуть мозгами, то активность сотрудников не всегда рабочая! Потому было принято решение контролировать рабочий инструмент! Без которого, хоть убейся, работу не сделать... С колесной техникой (полотеры, пылесосы и др.) все решилось просто. Их оснастили одометрическими датчиками и получили не только контроль активности, но и одометрическую навигацию. Т.д. куратор видел в реальном времени не только факт работы, например, полотера, но и его местоположение на объекте и траекторию движения. Довольно простая задача и, по своему, скучная. Может быть расскажу как-нибудь позже... А вот с мелким ручным инструментом получилось гораздо интереснее... Во-первых, устройство должно быть автономным, т.д. питаться от какого-то аккумулятора. Во-вторых, оно должно иметь свое средство связи с выходом в Интернет для передачи информации. В третьих, устройство должно было быть минимальным по размеру. В четвертых, крепиться к инструменту. В пятых, быть легко обслуживаемым. Ну и, уже позже, появилось еще одно требование - локальное сохранение данных на карте памяти и уже потом с синхронизация с сервером. Собственно, такое устройство мы и разработали: гироскоп-акселерометр в качестве датчика движений, связь через GSM-модем, Arduino в качестве микроконтроллера. Для реализации последнего требования пришлось еще и модуль времени и слот для карты памяти добавить. Не с первого, не со второго, а только с третьего раза получился рабочий прототип. Online устройство отправляло данные на сервер по REST протоколу, лог выгружало по FTP. Имело самодиагностику со светодиодной индикацией. Аккумуляторы использовали 18650 в отдельном неопломбированном отсеке, чтобы легко менялись, т.к. по задумке ответственный человек должен выдать инструмент исполнителю с заранее заряженным аккумулятором. Для сбора информации и показа результатов заказчику сделали портал, примитивный, но функциональный. Собственно фото и видео по теме, как всегда прикреплю к посту. Напомню, что сначала нас интересовал только online-режим. Однако, заказчика не устроили цифры, которые показала опытная эксплуатация. Получилось, что конкретно шваброй работают от 40 минут, до полутора часов за смену. "Это неправильно!" - сказал заказчик, - "Ищите, где ваши алгоритмы дают сбой!" Как ни искали, единственным здравой причиной, которую мы смогли для себя определить, это то, что не на всех точках объекта есть доступ к сети. Потому и пришлось добавлять модуль времени и слот для карты памяти. Хочу отметить, что основной сложностью оказалось как раз контроль аккумуляторов. Ни менять, ни заряжать их никто не хотел. А на индикаторы никто не обращал внимания. Еще тогда мне в голову пришла мысль: а не может ли быть такого, что весь тестовый объект в коврах или ковролине, а моют они только туалеты! Так же хочу отметить, что путем неимоверных усилий по оптимизации расхода энергии, удалось добиться работы устройства более 12 часов. Каков итог, спросите Вы? Оказалось, что действительно весь объект закатан в ковролин, а моют они только туалеты. Т.к. локальные записи на карте памяти полностью совпали с полученными онлайн. К этому времени "инвестор утратил интерес к проекту" и наработки легли на полку с надеждой, что когда-нибудь разработка окажется примененной, пусть даже и в другой сфере, ну или полученный опыт найдет применение в другом проекте.
1 год назад
5D+VR. Важное обновление для TrackPlayer'а!!! Практика показала, что часто при открытии новой точки с развлекательным оборудование случаются, скажем так, нюансы... Оборудование завезено, установлено, настроено и обкатано. Но контент еще находится на стадии доработки. И вот, в час Х нужно установить контент, а с доступом в интернет вопрос не решен вовсе или решен не до конца. Ну как-то не придали этому значения. Рядом с оборудованием только студенты-операторы. Технический персонал хорошо если в этом же городе где-то... Но чаще... В общем, после очередной такой ситуации и многочасовых консультаций по whatsApp с поисками решения, в голову мне пришла мысль автоматизировать процесс установки контента таким же образом, что и установку обновлений - через USB-накопитель. К тому же, исключается вероятность невнимательного копирования "не тех файлов" в "не те папки". Думаю, что для художников или менеджеров, как людей "в теме", не составит труда сделать папочку UpdateContent и вложить туда папки треками, саундтреков и т.п. Ну и маленькое видео для пояснения и демонстрации.
1 год назад
TrackPlayer. ПО для комплексов 5D,7D и VR аттракционов
Сегодня хочу рассказать об одном проекте, который поддерживаю уже почти 10 лет. Дело было в далеком уже 2015 году. Я тогда плотно сотрудничал в Total Interactive Technologes, у которой на тот момент возник интересный совместный проект с одной, не помню уже какой, питерской компанией. Ребята отсняли в фильм в формате 360 градусов об основных достопримечательностях Санкт-Петербурга для нашумевших тогда гарнитур GearVR. Но смотреть такую экскурсию стоя, и даже сидя на стуле, для вестибулярного аппарата человека оказалось непростым испытанием...
1 год назад
Итак, продолжаем тему Speech API и Delphi 12.1... Собственно приведу ссылку на начало истории (Смена версии среды разработки... и MS SpeachAPI | Сергей Харечкин aka SHS408 | Дзен (dzen.ru)) и продолжу... Итак, дошли руки до переноса в новую среду как раз "многоязычного проекта. Удалил описание несуществующего компонента, удалил из проекта юниты с описанием интерфейса, переписал процедуру (первое фото) генерации речи... И получил, собственно, что ожидал: по-английски система стала говорить с жутким акцентом))) Собственно, в этом можно убедиться, посмотрев первое видео к этому посту. Ну что ж, забавно конечно, но решать вопрос надо. Уточнил синтаксис, добавил метку языка и выбор диктора(второе фото) и вуаля, все работает, как надо! В этом можно убедиться, посмотрев второе видео. Оговорюсь, что мой "многоязычный" проект в данный момент использует два языка). Потому правомерно обошелся банальной конструкцией "if .. then ..." А вот о самом проекте постараюсь рассказать в следующий раз, т.к. статья получиться довольно обширной. СПОЙЛЕР! Это ПО для 5D-VR аттракционов!
1 год назад
Определение нахождения человека в помещении... по bluetooth! Пару лет назад у одной не очень маленькой, но очень экономной компании возникла необходимость контролировать нахождение сотрудников на рабочем месте... Точнее в конкретно взятом помещении. Обратились с этим вопросом ко мне... Помните, во время пандемии все паниковали по поводу чипирования? Я еще тогда стал шутить, что все мы уже давно чипированы той же SIM-картой. Ну или привязаны к мобильнику. Без мобильника никуда, он всегда с собой. Ну а на мобильнике есть что? Правильно, bluetooth! Который и так у большинства включен, да еще и обязать правилами предприятия это делать вполне можно. В общем идея была такая: 1. Сканируем помещение на наличие bluetooth устройств и получаем список MAC-адресов их модулей. 2. Собственно по MAC идентифицируем работника. 3. Контролируем, когда он пришел, и когда он ушел из помещения. Собственно, пример работы на видео! А идею реализовать в полном объеме не пришлось, т.к. компания сменила приоритеты и была поставлена задача контролировать не людей, а инструменты. Но об этом в следующих постах.
1 год назад
Смена версии среды разработки... и MS SpeachAPI
Как к этому не готовься, а всегда этот момент наступает неожиданно... В данном случае, моя лицензия Community Edition на Delphi 11.3 подошла к концу, а новая естественно уже на следующую версию - Delphi 12.1 Athens. Что ж... Прокрастинируй, не прокрастинируй, а переход должен был состояться. И вот, установлена советующая версия, активирована лицензия. Запуск, освоение, немного плевков в сторону изменений в интерфейсе... Открытие старого проекта естественно показало то, что надо доустановливать библиотеки, перелинковывать самописные, да и сгенерированные юниты...
1 год назад
Мои знакомые и близкие, слушая истории о моей профессиональной деятельности, часто говорили мне, что неплохо бы было записывать их и публиковать. Наверное, они считают их интересными и, в чем-то даже, поучительными... Что ж... Спустя N лет я решил поддаться на их уговоры (точнее услышал серьезные аргументы) и вот он, блог... Кстати о деятельности... На самом деле ее сложно вписать в какие-то привычные понятия... Много чего из IT, но и из других областей тоже много чего, так как приходится касаться то метрологии, то геодезии... то VR, документооборота в государственном управлении и т.д. Немного о себе... Родился и вырос в деревне... Потом 9 лет Физ-Теха ТвГУ... (иногда скучаю по научной работе, компенсирую...) Потом начал бизнес в компьютерной сфере. "Интеграция в розницу" - вот такой принцип был мной придуман и реализован. Постараюсь в блоге рассказать поподробнее... Еще в университетские годы занялся разработкой ПО различного уровня и назначения. В основном для молекулярно-динамических моделирования и обработки результатов виртуальных экспериментов. Но были и коммерческие проекты. Например, автоматизация учета поступления и движения сырья для Бологовского молочного завода и Система управления версткой номера журнала объявлений на автомобильную тематику "АВТОТверь" для ООО РИЕ "Мы лучшие". На почве этих двух направлений (комплектующие и разработка ПО) начал сотрудничать с Total Interactive Tecnologies, первопроходцем 5D и VR в России. Поначалу как поставщик компонентов, затем и как консультант. В итоге переделал и программное обеспечение... И так далее, и так далее... Разные идеи, разные проекты. О том и блог!)
1 год назад