Easyelectronics.ru

Электроника для всех
Текущее время: 23 июн 2017, 20:36

Часовой пояс: UTC + 5 часов



    • The World's Cheapest PCB Prototyping: 10 шт. 2-слоя 100*100mm 2$(около 140rub), изготовление за 24 часа.
    • Создание принципиальных схем и проектирование печатных плат
    • Крупнейший китайский онлайн магазин радиодеталей. Скидка 50%
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 11:55 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
С помощью палки, верёвки и какой-то матери веб-сервера nginx, кэша данных memcached и графического редактора Inkscape.
Без шума и пыли web-applications, т.е. без серверного программирования.
Плюсы - простота, надёжность, масштабируемость.
Минус - это только монитор (смотреть можно, управлять - нет).
Если кого-то заинтересует эта тема, могу расписать подробно с картинками.
Заинтересует в смысле практически, для каких-то конкретных применений.
Потому что меня в свою очередь интересует для чего ещё можно применять этот метод кроме того, для чего я сам его применяю

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 13:40 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
Зачем если есть Node-red?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 13:59 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
alexsam писал(а):
Зачем если есть Node-red?
Это примерно как спросить "зачем делать свои девайсы если есть arduino?" )

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 14:11 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
Так вы бы описали что уже есть, а то набор инструментов и ничего конкретного.
Во-вторых - только монитор смысла особого не имеет. Та же красная нода позволяет это все реализовать ну за час максимум при том, что не нужно программировать. Та же кросплатформнность и гибкость в управлении. Поэтому и спросил :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 14:57 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
Ну не просто же набор инструментов, а со ссылками что это за инструменты )

Главное отличие от node-red и т.п. в том, что рисуются любые свои картинки, а не используются как-то кем-то сделанные виджеты.
По ходу рисования некоторым графическим элементам прямо в редакторе присваиваются уникальные идентификаторы и прямо к картинке добавляется несколько строчек javascript-a для "оживления" этих элементов.
Выходной фомат редактора - svg - это xml, который современные браузеры умеют показывать непосредственно, так же как html.
Т.е. нарисованную картинку можно сразу смотреть в браузере, а её javascript генерирует периодические запросы (XMLHttpRequest) данных к веб-серверу.

Веб сервер nginx умеет на лету перекодировать такие запросы в протокол memcache, и перенаправлять их кэш-серверу memcached (кэш-сервер - это просто очень быстрое сетевое хранилище данных в виде ключ-значение, а nginx+memcached - стандартная веб-технология).
Но nginx только забирает данные из memcached, а складывать туда их могут любые источники данных, как девайсы, которые умеют работать по tcp/udp, так и программы-драйверы девайсов.
Протокол memcached текстовый и очень простой

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 15:35 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
Ну вот у вас 3 компонента и каждый нужно настроить + еще источник данных нужен, тоже настраивать. Причем непонятно могут ли эти источники работать с мемкешем напрямую.
В красной ноде уже это все есть. Плюс большое комьюнити. Конечно картинки не все оживают но и для простого пользования очень удобно.
А если брать программиста - то тут уже каждый свой велосипед городить может. Тут конечно спору нет.
И самый большой минус в том, что изначально нельзя управлять, только смотреть. Какой в этом смысл?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 17:50 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
alexsam писал(а):
А если брать программиста - то тут уже каждый свой велосипед городить может. Тут конечно спору нет.

То есть километровые простыни сишной казуистики для мк могут и НЕпрограммисты, а вот десять строчек браузерного яваскрипта - только программисты
Забавно )
Код:
var R = new XMLHttpRequest()
function update() {
    if ((R.readyState == 4) && (R.status == 200)) {
        var d = R.responseText.split(',')
        // ...
    }
}
function cycle() {
    R.open("GET", "/data.mc", true)
    R.onreadystatechange = update
    R.send(null)
    window.setTimeout('cycle()', 500)
}
window.onload = function() {cycle()}

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 18:35 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 715
vt340 писал(а):
То есть километровые простыни сишной казуистики для мк могут и НЕпрограммисты, а вот десять строчек браузерного яваскрипта - только программисты
Забавно )

Приведенный кусок кода лучше никому никогда не показывать, что бы не смеялись и не тыкали пальцем. Современная разработка для веб весьма нетривиальная штука и существенно сложнее, чем вызубрить наизусть RM на STM32 или AVR.

P.S. исходная идея описанная в топике - тоже так себе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 18:50 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
Смысл в том, что вы выбрали тупиковый стек технологий. В nginx нельзя программировать - только конфигурировать. Memcache весьма ограниченная по функционалу (в сравнении с тем же Redis). Клиентское программирование нужно только для отображения данных, но бизнеслогику вы не перенесете на клиент, это и не правильно и не практично и не безопасно.
Писать на той же node.js намного удобнее для новичков, все тот же привычный JS, куча модулей под разные хотелки и пр.
Можно и ваш Inkscape прикрутить, то же самое. И не нужен никакой мемкеш и пр. Получаешь данные сразу в коде, обрабатываешь и отдаешь, если нужно - хранишь как хочешь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 18:51 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 715
alexsam писал(а):
Memcache весьма ограниченная по функционалу (в сравнении с тем же Redis).

Оба они то еще г. С остальным полностью согласен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 16 дек 2016, 22:22 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
evsi писал(а):
Приведенный кусок кода лучше никому никогда не показывать, что бы не смеялись и не тыкали пальцем.
evsi, и как же надо делать xmlhttprequest на голом яваскрипте, чтобы не смеялись и не тыкали пальцем? )
evsi писал(а):
Современная разработка для веб весьма нетривиальная штука и существенно сложнее, чем вызубрить наизусть RM на STM32 или AVR.
Расскажите это толпам хомячков с jquery и php в зубах на каком-нибудь хомячковом форуме - повысите им чсв )

alexsam писал(а):
Смысл в том, что вы выбрали тупиковый стек технологий. ...
alexsam, я же писал в первом посте - без серверного программирования
Это не универсальный стек веб-технологий, а просто веб-монитор источников данных.
А именно через nginx+memcached из-за уникальной фичи - поддержка memcached встроена в nginx core, и всё работает из коробки.

А вообще разговор у нас, конечно, странный получается - "ах белое вино, почему ты не красное?"
Ну белое потому что, а не красное, хотите - пейте, не хотите - не пейте )

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 17 дек 2016, 12:28 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 1615
Откуда: КЧР, поселок Нижний Архыз
Такой интерфейс элементарно делается на жабоскрипте. Сохранять результат можно в localstorage, а можно и на сервер при помощи POST/GET запросов или даже вебсокетов.
Требуется совсем немного: элементарное знание html, начальное знание жабоскрипта, знание С (писать серверную часть; для упрощения работы я себе делал библиотечку обработки веб-запросов) и элементарное знание CSS (таки как-то надо будет все эти блоки форматировать).
Можно, конечно, и SVG использовать, рисуя болванки в инкскейпе, но это более геморно получится.

_________________
Поттеринг, умри!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 17 дек 2016, 12:46 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 715
Цитата:
и как же надо делать xmlhttprequest на голом яваскрипте, чтобы не смеялись и не тыкали пальцем? )

fetch()
Цитата:
Расскажите это толпам хомячков с jquery и php в зубах на каком-нибудь хомячковом форуме - повысите им чсв )

Эти толпы хомячков не имеют отношения к современной разработе UI.
Цитата:
А вообще разговор у нас, конечно, странный получается - "ах белое вино, почему ты не красное?"
Ну белое потому что, а не красное, хотите - пейте, не хотите - не пейте )

Слегка окрашенная жидкость с некоторым процентом алкоголя это еще не белое вино.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 17 дек 2016, 13:52 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
evsi писал(а):
fetch()
В svg-файле в хз каком браузере?

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 17 дек 2016, 16:30 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 715
vt340 писал(а):
В svg-файле

Ну и зачем вы так извратились? Чисто из любопытства мне интересно.
Цитата:
в хз каком браузере?

О fallback вы, конечно, не в курсе. Ну такое...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 17 дек 2016, 18:37 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
evsi, весь фокус в том, чтобы не писать gui на js, а рисовать картинку в графическом редакторе.
Весь gui - просто набор нарисованных svg-файлов.
Но несколько строчек js написать всё же придётся (прямо в том же графическом редакторе).
Поэтому их должно быть мало, как можно меньше.

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 11:22 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 715
vt340 писал(а):
evsi, весь фокус в том, чтобы не писать gui на js, а рисовать картинку в графическом редакторе.

Вы действительно верите в то, что это проще и удобнее в написании и поддержке?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 13:40 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
А как вы собираетесь, ну например, получать данные для графиков? Вот мне нужно отобразить данные по температуре за сутки. У меня записи в БД накапливаются каждые 10 мин и записей там, ну скажем за пол года. В nginx мы ничего сделать не можем, мемкеш тоже не умеет хранить списки (разве что все в одном ключе). и дальше как быть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 15:02 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 715
alexsam писал(а):
В nginx мы ничего сделать не можем, мемкеш тоже не умеет хранить списки (разве что все в одном ключе). и дальше как быть?

За полгода это всего лишь ~26тыс записей. Практически ничего, по нынешним меркам. Но мемкеш и правда не годится. Тот же node.js + какая-нибудь база будут куда проще/быстрее/надежнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 15:43 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
evsi писал(а):
alexsam писал(а):
В nginx мы ничего сделать не можем, мемкеш тоже не умеет хранить списки (разве что все в одном ключе). и дальше как быть?

За полгода это всего лишь ~26тыс записей. Практически ничего, по нынешним меркам. Но мемкеш и правда не годится. Тот же node.js + какая-нибудь база будут куда проще/быстрее/надежнее.

Смысл вопроса был не в кол-ве записей и возможности их переварить, а в том, как отдать записи за период. Или предлагаете все записи на клиент отдавать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 15:53 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 715
alexsam писал(а):
Смысл вопроса был не в кол-ве записей и возможности их переварить, а в том, как отдать записи за период. Или предлагаете все записи на клиент отдавать?

Естественно это гораздо удобнее (и правильнее) делать на серверной стороне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 15:57 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
Хотелось бы услышать ответ ТСа


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 21:36 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 909
evsi писал(а):
Вы действительно верите в то, что это проще и удобнее в написании и поддержке?
Смотря для чего и для кого
alexsam писал(а):
А как вы собираетесь, ну например, получать данные для графиков?
В формате атрибута d тега path

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 21:55 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1109
Откуда: Харьков
vt340 писал(а):
alexsam писал(а):
А как вы собираетесь, ну например, получать данные для графиков?
В формате атрибута d тега path

И тут мы подходим к тому, что без скриптов на сервере нам не обойтись :D

У меня складывается впечатление, что вы не понимаете как работает nginx в связке с другими внешними программами. То, что его научили брать ключик из мемкеша это конечно хорошо, но принцип работы у него примерно одинаков и с другим софтом - это работа через порты или пайпы. В любом случае nginx открывает коннект "за пределы" nginx на IP:PORT или socket и дальше туда передаются данные и из него читаются. А что там стоит - мемкеш, рнр, nodejs (у которого есть свой httpd) это уже не важно. При этом появляется полноценный сервер, способный творить чудеса. Но вы, непонятно почему, уперлись именно в тупиковую связку без возможности самого главного - управлять.
Возьмем опять же графики, например мне нужно посмотреть статистику за месяц, день, неделю. Ок, по вашей логике можно сгенерить ключики для мемкеша типа entity:month или entity:day или entity:year. Но что если нужно выбрать период дат? Извращения?


Последний раз редактировалось alexsam 19 дек 2016, 22:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web GUI в стиле DIY
СообщениеДобавлено: 19 дек 2016, 22:06 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 1615
Откуда: КЧР, поселок Нижний Архыз
Кстати, в минимальном варианте достаточно башевских скриптов. Правда, это примерно как голым задом в заводь с акулами...
Но я именно с баша и начинал: элементарный скрипт обрабатывает POST/GET, sqlite имеет достаточно интерфейсов. Получается эдакий сервер для бедных.
Далее меняем баш на С и радуемся.

И да, если работать через вебсокеты, то вообще можно без внешнего веб-сервера обойтись (прощай, апач, нджинкс и лайтхытыпыды!).

_________________
Поттеринг, умри!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB