Вверх ↑
Этот топик читают: Гость
Ответов: 4628
Рейтинг: 749
#181: 2014-11-24 18:23:36 ЛС | профиль | цитата
Формат описания однозначно нужно менять/совершенствовать. Бинарный формат нужен только если будут проблемы с производительностью. Тогда его генерацию из текстового можно делать "на лету" при установке элемента или принудительно командой после изменения параметров элемента.
Предусмотреть многоязычность в конфиге компонента.
карма: 26

1
Голосовали:CriDos
Ответов: 1841
Рейтинг: 369
#182: 2014-11-24 22:53:36 ЛС | профиль | цитата
Про многоязычность я даже и подзабыл, надобно продумать хорошо этот момент.
------------ Дoбавленo в 20.12:
Netspirit писал(а):
Предусмотреть многоязычность

json очень гибкая штука, однако
Вот так вот, будет реализована поддержка языков:
пример на основе файла описания пакета

В итоге получаем поддержку любого к-ва переводов в удобном виде.
------------ Дoбавленo в 23.53:
В процессе реализации, упростил json конструкцию, убрав массивы и запихнул всё в объекты {}.
Также, в случае если отсутствует интересующий ключ перевода, будет выбрал первый в списке из доступных переводов.
карма: 1
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#183: 2014-11-25 10:53:20 ЛС | профиль | цитата
Galkov писал(а):
Единственное "нетупиковое" направление -- среда написанная на самом языке HiAsm.

Если использовать для этого «Hyper» элементы то, наверное, можно. Под понятием «Hyper» элемента имею в виду что-то вроде HiAsmSDK пакета Windows и SDK пакета CNET: эксперименты с SDK

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 2125
Рейтинг: 159
#184: 2014-11-26 14:45:01 ЛС | профиль | цитата
CriDos писал(а):
Вот так вот, будет реализована поддержка языков:

Пихать разные языки в один файл - не лучшая идея. Поддержка языковых файлов (один язык - один файл) де факто является стандартом.
карма: 1

1
Голосовали:CriDos
Ответов: 1841
Рейтинг: 369
#185: 2014-11-26 15:22:51 ЛС | профиль | цитата
tsdima, в общем, согласен.
В случае если будем иметь большое к-во переводов, выйдет не очень хорошо...
...

"description": {
"ru": "Пакет с набором базовых элементов",
"en": "Package with a set of basic elements",
"ar": "صفقة مع مجموعة من العناصر الأساسية",
"te": "ప్రాథమిక మూలకాల ఒక సమితి తో ప్యాకేజీ",
"ko": "기본 요소들의 세트와 패키지",
"no": "Pakke med et sett av grunnleggende elementer",
"la": "Sarcina cum statuto elementa",
"ja": "基本的な要素のセットのパッケージ",
},
"description2": {
"ru": "Пакет с набором базовых элементов",
"en": "Package with a set of basic elements",
"ar": "صفقة مع مجموعة من العناصر الأساسية",
"te": "ప్రాథమిక మూలకాల ఒక సమితి తో ప్యాకేజీ",
"ko": "기본 요소들의 세트와 패키지",
"no": "Pakke med et sett av grunnleggende elementer",
"la": "Sarcina cum statuto elementa",
"ja": "基本的な要素のセットのパッケージ",
}


Однако, реализовать данный вариант наиболее сложнее, ибо все ключи (названия функционала) к которым будут привязаны переводы, будут динамическими (определяться пользователями/разработчиками).
Думаю, тут можно сделать следующим образом:
AccessFTP(dir) //Директория элемента, в которой хранятся все необходимые файлы
---------element(file) //Файл конфигурации элемента
---------script(file) //Скрипт
---------icons(dir) //Каталог с состояниями
--------------main.png(file) //Состояние
--------------new.ico(file) //Состояние
--------------end.ico(file) //Состояние
---------lang(dir) //Каталог с переводами
-------------ru(file) //Файл описания элемента
-------------en(file) //Файл описания элемента
-------------ar(file) //Файл описания элемента
Над форматом теперь нужно подумать и как это всё корректно обработать ...
Ну и состояния тоже тогда стоит поместить в суб директорию, ведь их может быть довольно много.
карма: 1
0
Ответов: 964
Рейтинг: 12
#186: 2014-11-27 16:47:01 ЛС | профиль | цитата
Насчет чего-то своего "по мотивам" хайасма я тоже почти созрел для собственной "попытки к бегству" но я считаю что нужно идти от КОДА к СХЕМЕ .

Точнее попытаться реализовать трансляцию произвольного кода на ЯВУ в схему и обратно . (Причем генерируемый код должен быть ВНЯТНЫМ хорошо структурированным Все схема-технические настройки и структурные надстройки можно прятать в промежуточный "грязный-код" в виде комментариев то есть в принципе не будет некого промежуточного не чем не компилируемого кода )

Чем такой подход хорош ?

1 Тем что можно легко преходить от схемы к коду и обратно без потери качества того и другого . ( Посмотрел и поправил в графике потом вернулся к коду вел несколько формул и вернулся обратно в графический схемо-код )

2 Тем что можно легко переходить от одного ЯВУ к другому
(По сути мы по совместительству получим "универсальный переводчик" практически между любыми языками программирования )

3 Все структурные надстройки и дополнения(на пример визуальную генерацию форм ) можно вводить без изменения в ядре механизмов трансляции схем в яву (где забит только самый низкий уровень) по сути добавляя только шаблон-макрос)


Минусы
1 Не вполне понятна архитектура самого схемотехнического языка
(То есть понятно что на нижнем уровне должен быть отражен каждый основной элемент ЯВУ (if for while case := Var Type и тд )
Но совершенно понятно что на среднем и высоком уровне должно быть что-то иное иначе теряется удобство схемотехнического стиля )

2 Есть желание полностью избавится от "стековой пробки " и "кольцевания" как главных бичей Хайасма
Сделать нормальное ООП без недостатков ХайАсма
Но пока все слишком размыто и трудно представимо именно в графической форме ... (Как представить универсальный механизм записи классов в потоки как показать наследование или универсальные коллекции? )
Понятно что низкоуровневый код можно просто показать как обычный алгоритм, но наглядность подобного представления крайне сомнительна ...


Зы
Пока есть столбовая идея "Контейнер"
var - Контейнер
Type - Контейнер
Класс - Контейнер
porocedure - Контейнер
Begin end - Контейнер

Все прочие операторы типа (if then else ...) имеют поля условий и/или место(или места) для одного контейнера на схеме контейнер показывается одним кубиком который можно открыть кликом мыши ...
Потоков в понимании хайАсма в проекте пока нет (Но возможны надстройки ) имеется одна линия "ход исполнения" и ветвления происходят только в "глубину" через механизмы контейнеров а еще доступно "дерево премьерных" что-то вроде объектной навигации в современных ИДЕ )

Но все это спасет только на среднем уровне (уже форму представить так сложно .)
карма: 0

0
Ответов: 1841
Рейтинг: 369
#187: 2014-11-27 20:05:57 ЛС | профиль | цитата
AlexKir, как занесло Вас
ЛЮБОЙ_ЯВУ -> ? -> СХЕМА
? - вот тут что делать то?
Даже компиляторы этих ЯП иногда ошибаются при разборе семантики, из-за чрезмерной сложности всех нюансов...
карма: 1
0
Ответов: 316
Рейтинг: 21
#188: 2014-11-28 12:09:34 ЛС | профиль | цитата
CriDos писал(а):
AccessFTP(dir) //Директория элемента, в которой хранятся все необходимые файлы
---------element(file) //Файл конфигурации элемента
---------script(file) //Скрипт
---------icons(dir) //Каталог с состояниями
--------------main.png(file) //Состояние
--------------new.ico(file) //Состояние
--------------end.ico(file) //Состояние
---------lang(dir) //Каталог с переводами
-------------ru(file) //Файл описания элемента
-------------en(file) //Файл описания элемента
-------------ar(file) //Файл описания элемента

Можешь объяснить по поводу обработчиков элемента в графической среде, это папка скрипт или обработчики отдельно?
Компиляторы находятся в пакете или где-то в среде?
Что по поводу удаленной сборки думаешь?
карма: 1

0
Ответов: 1841
Рейтинг: 369
#189: 2014-11-28 14:15:30 ЛС | профиль | цитата
LastLeader писал(а):
обработчиков

Что подразумевается под обработчиком в данном случае?
LastLeader писал(а):
Компиляторы находятся в пакете или где-то в среде?

Локальные компиляторы, скорее всего, будут так-же находиться в папке compilers.
LastLeader писал(а):
Что по поводу удаленной сборки думаешь?

Для кодогенератора, можно разработать сервер, который будет принимать трафик обёрнутый в AES 256 (или чего там) и отдавать результат.
В среде, предусмотреть профили, поддерживающие удалённую сборку.
Т.е. по сути, можно будет собрать схему, без файлов скриптов и инструментов сборки.
Они будут находиться на стороне сервера.
карма: 1
0
Ответов: 316
Рейтинг: 21
#190: 2014-11-29 12:14:56 ЛС | профиль | цитата
CriDos писал(а):
Что подразумевается под обработчиком в данном случае?

Обработчик событий в графической среде, например мы подводим мышку к элементу на рабочем поле и хотим чтоб он изменил иконку или если изменился параметр одного элемента то скрыть другие параметры или даже некоторые элементы на панели элементов. (обработчик позволяет управлять граф. средой, аналогияно жаваскрипта в html)
Этот термин (обработчик событий ) ввел -Netspirit, я раньше их называл скриптами)))
карма: 1

0
Ответов: 964
Рейтинг: 12
#191: 2014-11-29 12:20:43 ЛС | профиль | цитата
AlexKir, как занесло Вас ЛЮБОЙ_ЯВУ -> ? -> СХЕМА ? - вот тут что делать то? Даже компиляторы этих ЯП иногда ошибаются при разборе семантики, из-за чрезмерной сложности всех нюансов...

Так пусть себе ошибаются ... Но компиляторы .
Чем хорош хайасм ? Разумеется работой на высоком и немного на среднем уровне ..
А с низ и часть середины взвываю ''муки творчества '' там где достаточно нескольких строк .
на обычном яву . Вот я и хочу добавить возможность легкого перехода от схемы к коду и обратно
Более того добавить возможность ПРЯМО в СХЕМЕ делать вставки на яву без возни с инлайном или элементами
(Разумеется при должном навыке добавить инлайн не сложно однако '' камерность'' и слишком четкая ''грань' и множество лишних движений (сложный дjоступ к данным обязательный модуль и класс на каждый чих ) часто съедают все плюсы в подобного решения )

Я прекрасно понимаю почему так сделано .
Есть готовый механизм создания элементов его чуть модифицировали и ''маемо то что маемо'' ....

Превращение внешнего но ''рабочего кода'' в ''сырую схему'' у меня сводится к расстановке комментариев и разбивании кода на секции .

Возможно даже через ''сакраментальное инклуде''. Первично на с схеме будет что наподобие ''зигзага удачи''
Но что мешает навести красоты в визуальной форме? (Вероятно будет и распознавание элементов среднего и высокого уровня например формы и прочие визуальные элементы )

Поэтому у меня в любой момент можно и посмотреть ''перевод'' в код и сделать вставку кода прямо в схеме
Обратный процесс СХЕМА ->КОД будет еще проще ...

А схемы рисуемые непосредственно в редактор будут содержать и элементы значительно более высокого уровня ..

Это могут быть не только обычные элементы визуального программирования но и блоки управления/ БД
или описания поведения трехмерных объектов разные инструменты продержки ГИС или веб-интерфейсы ...


карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#192: 2014-11-29 12:22:16 ЛС | профиль | цитата
LastLeader писал(а):
Этот термин (обработчик событий ) ввел -Netspirit

Это, просто, он отлично его перенял. Но, увы, первенство принадлежит не ему. Но я, как бы, совсем не против
карма: 22

0
Ответов: 1841
Рейтинг: 369
#193: 2014-11-29 18:46:27 ЛС | профиль | цитата
LastLeader писал(а):
например мы подводим мышку к элементу на рабочем поле и хотим чтоб он изменил иконку или если изменился параметр одного элемента то скрыть другие параметры или даже некоторые элементы на панели элементов.

В таком случае, лучше делать это не из скрипта элемента, в котором будет находиться функциональная реализация элемента, а конфигурационном.
Т.е. по сути, у нас будет обычный "шаблонный" файл с конфигурацией элемента (как сейчас) и, если требуется, скрипт (обработчик ), у которого будут возможности реагировать на события в реальном времени и взаимодействовать через API со средой.
Тут мне очень понравилась система сигналовслотов в Qt.
Таким образом, мы отделяем функциональную часть, которая может находиться только на сервере, от графической, которая будет находиться на стороне клиента.

карма: 1
0
Ответов: 316
Рейтинг: 21
#194: 2014-11-29 19:41:37 ЛС | профиль | цитата
CriDos писал(а):
Тут мне очень понравилась система сигналовслотов в Qt.

Эти слова клосплатформенны? Нужно ж будет и в Hion это реализовывать.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#195: 2014-11-29 20:48:37 ЛС | профиль | цитата
LastLeader писал(а):
Эти слова клосплатформенны?

Windows, Linux, MacOS, Android, iOS, Windows Phone - web'а нету пока

А вообще, довольно сложно будет реализовать всё это в вэбе...
Легче будет разбить графическую часть на составляющие, используя модель-представление-поведение (как у меня).
Далее, на серверной стороне использовать серверное приложение со своим API, которое будет манипулировать только моделью, а представление уже реализовать в вебе (js, flash и тд).
Т.е. в hion мы передвинули кубик, эта информация через локальный\внешний API передаётся приложению, приложение всё считает и выдаёт представление, которое мы уже отображаем любыми средствами
В общем, получаем маленькую онлайн игру (по сложности), но с кубиками
карма: 1
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)