Улыбнись! Забудь про все проблемы…
(и прочти предупреждение здесь)
Новый Год. Дополнительная иллюминация к Елке на Arduino NANO
Из «подручных» «остатков» и материалов.
Подробнее см. здесь.
Roblox Studio. Сторожевая собака. Модель
Представлена модель сторожевой собаки: Dog_Guard
Модель «Сторожевая собака» «умеет»:
— распознавать факт проникновения в запретную зону (кол-во запретных зон концептуально не ограничено);
— подавать текстовый/звуковой/световой сигнал «Тревога»;
— визуализировать номер запретной зоны, где был зафиксирован факт проникновения;
— а также, позволяет реализовать механизм «местной автоматики» (соответствующие заглушки предусмотрены в соответствующих скриптах).
Подробнее см. здесь.
Roblox Studio. Алфавитно-цифровая клавиатура (вариант-3)
Представлена модель алфавитно-цифровой клавиатуры:
Keyboard — ввод строки.
Подробнее см. здесь.
Roblox Studio. Цифровая клавиатура (вариант-2). Модель
Представлена модель цифровой клавиатуры:
Keyboard_Num — ввод целочисленного значения.
Подробнее см. здесь.
Roblox Studio. Простая цифровая клавиатура (вариант-1). Модель
Представлены 2 модели простой цифровой клавиатуры:
KeyNum_InputInteger — ввод целочисленного значения;
KeyNum_InputCode — ввод цифрового кода.
Подробнее см. здесь.
Roblox Studio. Межигровой телепорт. Модель
Термин «межигровой» означает телепортирование Игрока из одной игры (Place) в другую.
Приведены:
1. Иллюстрирующий пример
2. Видео-демка.
2. Краткое описание.
На рисунке ниже приведен обобщенный алгоритм действий.
Подробнее см. здесь.
Roblox Studio. Внутриигровой телепорт. Модель
Roblox Studio. Интерактивная «тревожная» кнопка с таймером. Модель
Важно!
1. Под интерактивностью (в данном случае) понимается реакция кнопки на событие «нажатие на кнопку»;
2. Событие «нажатие на кнопку» формируется при касании кнопки объектом типа (класса) Humanoid.
Приведены:
1. Модель кнопки.
2. Иллюстрирующий пример и видео-демка.
3. Краткое описание.
Roblox Studio. Простая интерактивная кнопка. Модель
Важно!
1. Под интерактивностью (в данном случае) понимается реакция кнопки на событие «нажатие на кнопку»;
2. Событие «нажатие на кнопку» формируется при касании кнопки объектом типа (класса) Humanoid.
Приведены:
1. Модель кнопки.
2. Иллюстрирующий пример и видео-демка.
3. Краткое описание.
Часть-4. Парсинг раздела «Uses» FS-скрипта с целями: 1. «отвязки» от «абсолютного пути» в именах файлов; 2. корректной выгрузки библиотечных FS-скриптов, хранящихся в ИБ, и «подключения» их к «вызывающему» FS-скрипту
Библиотека FastScript предоставляет отличную возможность − структурировать функционал скриптов, размещая соответствующие программные объекты (библиотечные функции, переменные, константы) в отдельных файлах, а затем − вызывать их из других FS-скриптов (также, как это реализовано в Delphi).
Для этого (по аналогии с Delphi) используется директива «uses».
Но проблема в том, что в текущей реализации FastScript в директиве «uses» можно использовать только полные имена файлов, что создает ощутимые неудобства при практическом применении библиотеки FastSript.
Причем, эта проблема существенно «мешает» не только при изменении местоположения FS-скриптов (в файловой системе ОС), но и при выгрузке их из БД для выполнения.
В статье рассматриваются пути решения этой проблемы.
И предлагается (на уровне исходных кодов) конкретные, практические варианты решения этой проблемы.
Открыть статью.
О применении библиотеки FastScript в своих проектах. Дополнение к Части-1 «Расширение функционала»
Программирование. Delphi. Строки (String)
Добавлены две функции (кодирование и декодирование строк на основе Base64).
function Str_to_StrBase64(S: string): string;
//Конвертация «строки» в «Base64-строку» (кодирование)
function StrBase64_to_Str(S: string): string;
//Конвертация «Base64-строки» в «строку» (раскодирование)
См. здесь.
Delphi. SQLite. FireDac. Обвязка для TreeView
Опять о «деревьях»…
🙂
Но тем не менее, тема все еще актуальна, поскольку в составе стандартного набора компонентов Delphi все еще нет компонента типа TTreeView, но ориентированного на таблицы БД (что-то вроде DBTreeView).
В этой статье вкратце рассматривается вариант обвязки (для TTreeView), ориентированной на отображение таблицы базы данных (SQLlite), содержащей иерархически структурированные строки.
Имя файла: __DBTreeView_FireDac.pas.
См. здесь.
О применении библиотеки FastScript в своих проектах. Цикл статей. Основные тезисы
Используемые сокращения: FS – FastScript; FSI – Интерпретатор скриптов (в части Обвязки для FastScript); GUI – Графический Пользовательский Интерфейс; БД – База Данных; ИС – Информационная Система.
Использование библиотеки FastScript (в том числе) является, пожалуй, наилучшим решением при разработке различных по назначению и сложности проектов (включая, в том числе, и объектно-ориентированные, гибкие информационные системы), когда необходимо сформировать гибкий программный инструментарий для автоматизации предметных областей без концептуального ограничения как на перечень «охватываемых» предметных областей, так и на градиент изменения условий функционирования программного инструментария в процессе его эксплуатации.
Существенная часть задач, где может быть применена библиотека FastScript,
это автоматизация выполнения различного рода прикладных (специфичных) задач конечного Пользователя − самим же Пользователем (в рамках эксплуатируемой ИС).
При этом, Пользователь (даже очень продвинутый), как правило НЕ является программистом со «всеми вытекающими». Чем более дружественным (комфортным) для него будет инструментарий, тем эффективнее он будет его применять.
Одним из факторов («облегчающих жизнь» конечному Пользователю), является максимально возможная локализация программного инструментария не только в части GUI, но и в части идентификаторов функций, процедур, переменных и констант (что при использовании FastScript легко реализуемо).
В силу того, что возможности библиотеки FastScript существенно велики, а «аппетит растет во время еды», то через довольно-таки небольшой промежуток времени количество «специальных» функций (которые добавляет Программист) может стать знАчимо «большим» (особенно, в «больших» ИС).
И в этом случае необходимо сразу предусматривать возможность группировки дополнительного функционала по отдельным модулям (которые будут подключаться по мере необходимости в процессе разработки конкретного скрипта или группы скриптов).
В ряде случаев, когда FastScript применяется в гибких ИС, тексты FS-скриптов хранятся в таблицах БД и загружаются для выполнения периодически, согласно принятого регламента, или ситуативно, по «требованию» внешних инициаторов информационного обмена.
«Требования» инициаторов информационного обмена могут включать некие исходные данные, которые должны быть учтены при выполнении FS-скрипта (входные параметры FSI), и возвращаемые данные, полученные в результате выполнения FS-скрипта (вЫходные параметры FSI).
Входные параметры FSI могут быть преобразованы в константы FastScript,
а вЫходные параметры FSI – в переменные FastScript.
Т.е., некий функционал (из состава Обвязки) конвертирует поступившие входные параметры – в константы FastScript, а вЫходные параметры – в переменные FastScript.
А затем, соответствующий FS-скрипт выгружается из БД и (используя компонент TfsScript библиотеки FastScript) запускается на выполнение. После того, как FS-скрипт выполнен, значения соответствующих переменных конвертируются Обвязкой в вЫходные параметры (для предоставления их инициатору информационного обмена в соответствии с требованиями).
В ряде случаев, когда FastScript применяется в гибких, объектно-ориентированных, распределенных (в том числе и иерархически) ИС, тексты FS-скриптов однозначно хранятся в соответствующих таблицах БД и участвуют в миграции данных в составе информационных потоков, предусмотренных соответствующими регламентами.
Кроме этого, определенные FS-скрипты могут реализовывать выполнение одних и тех же алгоритмов, но с специфическими исходными данными (зависящими от конкретных узлов распределенной сети ИС).
Как следствие:
идентификация FS-скриптов должна носить глобальный характер (для всей сети ИС);
процесс выгрузки взаимосвязанных FS-скриптов не должен быть привязан к конкретностям файловых систем.
Список статей цикла:
- Часть-1. Расширение функционала FS (локализация идентификаторов программных объектов);
- Часть-2. Входные и вЫходные параметры FS-скрипта (при информационном обмене с внешними инициаторами);
- Часть-3. Группировка (распределение по модулям) добавляемых в FS программных объектов;
- Часть-4. Парсинг раздела «Uses» FS-скрипта с целями: 1. «отвязки» от «абсолютного пути» в именах файлов; 2. корректной выгрузки библиотечных FS-скриптов, хранящихся в ИБ, и «подключения» их к «вызывающему» FS-скрипту.
См., также, здесь (PDF-документ).
О применении библиотеки FastScript в своих проектах. Часть-2. Входные и вЫходные параметры FS-скрипта (при информационном обмене с внешними инициаторами)
Цикл статей по программированию в среде Delphi (ориентирован на FastScript).
См. продолжение:
Программа spPasToHtml.exe
Программа предназначена для конвертации Delphi-файлов ( *.pas, *.dfm и *.dpr) в HTML формат.
Может быть полезной при подготовки исходников для публикации их на сайте.
(Автор разрабатывал под себя)
Программа не требует установки, нигде себя не прописывает и не выполняет никаких действий, кроме тех, что предусмотрены ее назначением.
Статус программы: freeware.
ОС: Windows (разрабатывалась под Win-10).
Версия 1.00 от 22.02.2024.
О применении библиотеки FastScript в своих проектах. Часть-1 «Расширение функционала»
Новый цикл статей по программированию в среде Delphi (ориентирован на FastScript).
См. начало:
Соглашения, термины и сокращения.
О применении библиотеки FastScript в своих проектах. Часть-1 «Расширение функционала»
Часы на Arduino UNO с управлением от ТВ-пульта
Часы «умеют» (предоставляют возможность):
— визуализировать время в формате ЧЧ:ММ (часы, минуты);
— «помнить» время при отключении питания (встроенный аккумулятор);
— визуализировать состояние и время будильника (один будильник) в формате ЧЧ:ММ (часы, минуты);
— подавать сигнал будильника (звук и/или свет);
— интерактивно устанавливать время суток на часах;
— интерактивно устанавливать время будильника;
— интерактивно включать/выключать будильник;
— «сигналить» в режиме их поиска.
Интерактивное управление часами (далее − Устройство) производится с помощью ТВ-пультов.
В текущей версии скетч «настроен» на ТВ пульты:
— TELEFUNKEN;
— LG.
Но можно легко добавить и другие ТВ-пульты.
Раздел «Мини-квесты»
Новый «мини-квест».
Тема: «Новый год 2024». 10 вопросов (есть «озвучка»). Возраст: 5+. По окончанию — переход к онлайн игре для детей от Яндекс-360 «Новогоднево».
Открыть…
Программа «Часы». Новая версия 1.03 от 21.12.2023
Иной раз бывает так, что телефон и/или планшетник устарели.
Их и использовать уже — совсем не комфортно и выбросить жалко.
В этом случае, их можно приспособить под настольные электронные часы.
В этой версии появилась возможность изменить размер шрифта отображаемого времени.
Программа «Часы». ОС: Android. Версия программы: 1.03 от 21.12.2023. Статус программы: Freeware (свободное распространение и использование). Требуемые разрешения: не требует никаких разрешений. Открыть страницу программы.
spMP3play — программа предназначена для использования в качестве «читалки» АудиоКниг (файлов в MP3-формате)..
Операционная система: Windows.
(разрабатывалась и тестировалась под Windows 10).
Статус программы: Freeware (свободное распространение и использование).
Цель (ее разработки) – максимально упростить процесс прослушивания АудиоКниг. Программа предоставляет возможность пользователю: 1. Интерактивно находить и открывать нужную ему АудиоКнигу (папку с MP3-файлами); 2. Выбирать и прослушивать нужный файл в папке АудиоКниги; 3. В процессе прослушивания АудиоКниги программа визуализирует имя воспроизводимого MP3-файла, текущую позицию воспроизведения в файле и % уже прослушанного содержания файла; 4. Интерактивно изменять текущую позицию воспроизведения в файле; 5. В процессе прослушивания файла, программа запоминает как имя файла, так и текущую позицию воспроизведения. При запуске программы, Пользователь может продолжить прослушивание с того момента времени, на котором он «остановился»; 6. После окончания воспроизведения файла, автоматически начинается воспроизведение следующего (в списке) файла; 7. По желанию Пользователя, программа может автоматически продолжить воспроизведение файла сразу после запуска. Открыть страницу программы.
Обновление раздела «Документы (скачать)»
Простой детектор загазованности помещения на Arduino UNO и MQ-7
Устройство «умеет»:
- Дискретно (16 значений) регулировать верхнюю границу допустимых значений датчика MQ7 в интерактивном режиме (с помощью микропереключателей);
- Визуализировать заданную верхнюю границу допустимых значений датчика MQ7 (на блоке 7-ми сегментных индикаторов);
- Периодически (с заданным в скетче интервалом времени) считывать значения датчика MQ7;
- Визуализировать считанные значения датчика MQ7 (на блоке 7-ми сегментных индикаторов);
- Определять превышение значений датчика MQ7 относительно заданной границы допустимых значений;
- Выдавать звуковой (зуммер) и световой (красный светодиод) сигнал в случае, если значения датчика MQ7 превысили заданную границу;
- Питание Устройства – один (любой) из вариантов:
7.1 Батарейка «Крона» (9В);
7.2 Стандартная телефонная USB-зарядка (5В);
7.3 Соответствующий аккумулятор.
См. здесь.
Arduino. Экспертная Система (ЭС) байесовского типа
Распознавание объектов по готовым правилам.
Иллюстрирующий пример.
Версия 1.01.
В качестве «подопытного кролика» используется Arduino UNO (без всяких дополнительных устройств, датчиков и т.д.).
В этой статье тема рассматривается лишь как шуточный, иллюстрирующий пример… Поэтому, в скетче (см. статью) «все зашито жестко». Т.е., ровно НОЛЬ практического эффекта.
Но вот если: 1. Вместо Arduino UNO использовать (например) ESP-12F WeMos D1 WiFi… С целью: оперативно передавать на WeMos через Wi-Fi задачу (таблицу правил) и признаки распознавания объекта. 2. Каждому признаку будет соответствовать определенный датчик. 3. «Это» встроить в адаптивную и гетерогенную СЕТЬ ЭС… То очень может быть − будет практическая польза… :-)
spTrain_ES (spTrainES) — программа, где реализован функционал простой Экспертной Системы байесовского типа
Операционная система: Windows.
(разрабатывалась и тестировалась под Windows 10).
Цель — предоставить возможность желающим «поиграть» с простой, но реальной ЭС байесовского типа.
И в игровой форме освоить основные процессы, связанные с обучением и применением ЭС для решения простых, прикладных задач.
А может даже и детей к этому подтолкнуть.
🙂
Программирование. Delphi. По следам книги «Как построить свою экспертную систему». (c) К. Нейлор
К. Нейлор (в своей книге «Как построить свою экспертную систему») подробнейшим образом изложил как теоретические основы построения экспертных систем байесовского типа, так и их практическое применение для «домашних целей».
В книге приведены не только рассуждения и информационные посылы,
но и (что крайне важно) конкретные методы и алгоритмы (вплоть до исходных кодов) разработки экспертных систем.
Но… Исходные коды приведены в синтаксисе языка программирования Basic…
Что несколько затрудняет их использование в современных условиях.
Автор этого Документа озадачился вопросом создания собственной экспертной системы (байесовского типа) с целью разработки ряда простых игровых (с элементами обучения детей основам некоторых технологий ИИ) программ.
Предлагаются исходники Delphi-компонента (TES_bayes), где реализован соответствующий функционал простой Байесовской экспертной системы. А также исходники программы, где можно протестировать этот компонент.
Программирование. Delphi 10.2 Tokyo. Гибриды (комплексы)
Использование DataSnap-технологии на примере разработки комплекса взаимодействующих приложений (ОС Windows, ОС Android и ОС Arduino) в среде Delphi 10.2 Tokyo. Иллюстрирующий пример
В последнее время все чаще на слуху такие термины, как «умный дом», «техносфера», «искусственный интеллект», «нейронные сети», «миварные технологии», «интернет вещей» и т.д.
Примечание – по личному мнению Автора термин «техносфера» включает в себя все, перечисленные выше, термины (как, в том числе, инструментарий для формирования «техносферы»).
Delphi (все ее «крайние» версии) предоставляет возможность разработки приложений для различных платформ (включая Windows и Android).
Кроме этого, на рынке (Aliexpress) предлагается достаточно много дешевых программируемых электронных модулей семейства Arduino, а также множество типов дешевых датчиков, индикаторов и исполнительных механизмов (которые ориентированы на подключение к Arduino).
Ряд модулей семейства Arduino имеют встроенную, аппаратную, поддержку для организации информационного обмена с внешними программами (включая и взаимодействие через wi-fi).
Наличие «всего этого» предоставляет возможность заинтересованному программисту предпринять практические шаги для «автоматизации» определенных, важных для него, процессов (включая и игровые с детьми/внуками).
Вплоть до формирования «Домашней техносферы своими руками»…
MS Word. Простейшие операции. Включить поддержку макросов в MS Word
Применительно к MS Word 2016.
См. здесь…
Arduino. ТехноСфера. Шаг 2. Продолжение…
Скетч для ESP-12F WeMos D1 WiFi. Обновление
См. здесь…
Программирование. Delphi 10.2 Tokyo. Гибриды (комплексы)
Использование DataSnap-технологии на примере разработки комплекса взаимодействующих приложений (ОС Windows и ОС Android) в среде Delphi 10.2 Tokyo. Последовательность действий
Постановка задачи (иллюстрирующий пример): 1. Разработать простую игру «Столкновение» «шаров» на плоскости. 2. Количество игроков: 2. 3. Цель игры: обеспечить столкновение двух «шаров» (т.е., игроки, управляя «шарами», должны столкнуть их друг с другом). 4. Визуализация процесса игры должна быть реализована в программе, функционирующей в среде ОС Window. 5. Управление игрой должно быть реализовано в программе, функционирующей в среде ОС Android. 6. Информационное взаимодействие программ (в комплексе) должно производиться с использованием Wi-Fi.
Программа spMyIP. Скачать
Иной раз возникает необходимость быстро получить список IP-адресов на каком-либо, локальном компьютере.
В этом случае, как раз, эта программа может быть полезной.
Программа ориентирована на операционную систему MS Windows.
Простой таймер на Arduino (UNO или Nano)
См. здесь.
Обновление раздела «Программирование. Delphi 10.2 Tokyo. VCL»
Новый подраздел Delphi. Файлы. Base64
Base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит латинские символы A-Z, a-z, цифры 0-9 (всего 62 знака) и 2 дополнительных символа, зависящих от системы реализации. Каждые 3 исходных байта кодируются 4-мя символами (увеличение на ¹⁄₃).
Раздел «Квесты». Новый подраздел
Новый подраздел: «Сыграть что-то вроде квеста…»
Новый «что-то вроде квеста».
Тема: «Правила дорожного движения». Возраст: 5+. 9 вопросов.
Открыть…
Обновление раздела «Игры -> Играть»
Две новые игры в разделе «Игры -> Играть».
Обе сформированы в среде Axure.
Обновление раздела Delphi 10.2 Tokyo. VCL
Новый подраздел:
Комплекс программ для конвертации графических файлов (в формате BMP) в текст и обратно. Скачать
В некоторых случаях такая операция бывает крайне полезной.
Комплекс программ (консольные приложения) состоит из 2-х программ:
bmp2txt.exe — конвертор BMP-файлов в текстовые файлы;
txt2bmp.exe — конвертор текстовых файлов в BMP-файлы
Обе программы ориентированы на операционную систему MS Windows.
ОС: Windows.
Статус: Freeware (свободное распространение и использование).
Обновление раздела Delphi 10.2 Tokyo. VCL
Обновление раздела Delphi 10.2 Tokyo. VCL
Обновление раздела «Об играх»
Ссылки на игры: StarCraft II и War Thunder.
См. здесь…
Обновление раздела «Астро»
Программа SQLite_Admin. Скачать
Создание SQLite баз данных (простейший вариант, не требует установки, нигде себя не прописывает).
ОС: Windows.
Версия: 1.03.
Статус: Freeware (свободное распространение и использование).
Delphi. БД. Потенциально полезный функционал
Delphi. Базы Данных. SQLite. По следам статьи «Полноценный upper (или lower) в SQLite при работе с unicode»
Автор указанной выше статьи не известен, к сожалению.
Ссылка на статью: https://habr.com/ru/sandbox/98493/
При разработке ПО в среде Delphi зачастую возникает необходимость хранения данных в какой-либо локальной БД.
СУБД SQLite вполне подходит для этих целей, но в некоторых случаях проблема, обозначенная в указанной статье (см. выше), существенно усложняет ее использование.
Суть проблемы в том, что функции UPPER и LOWER в SQLite не умеет работать с кириллицей (под кириллицей в данном документе подразумевается русский алфавит).
В статье (см. выше) приведен конкретный, работающий вариант решения этой проблемы.
Воспользовавшись идеей и конкретным примером, приведенным в статье (см. выше), решил реализовать это применительно к среде Delphi (а если конкретно, то Delphi 10.2 Tokyo).
PostgreSQL. Простой интерпретатор скриптов (plpgsql). Новый пример применения
Программа «Диктофон» (Конвертор: Речь (звук) —> Текст). Скачать
ОС: Android.
Версия программы: 1.02 от 05.10.2020.
Статус программы: Freeware (свободное распространение и использование).
Требуемые разрешения: INTERNET (доступ к интернету).
PostgreSQL. Простой интерпретатор скриптов (plpgsql). Новый пример применения
Arduino. Два новых информационных блока
PostgreSQL. Простой интерпретатор скриптов (plpgsql)
Новый раздел. Открыть…
Интерпретатор скриптов может быть полезен в том случае, если формируется адаптивная (максимально гибкая) информационная система.
Об играх…
Новый раздел: Об играх.
См. здесь…