В чём графики рисовать в браузере?
Гугл чарт сначала шлет данные в гугл, вообще оборзели.
И да, непонятно, почему D3 тебе кажется монструозным, но разбираться с аngular ты готов.
чё-нибудь простенькое и со вкусом.http://plugins.jquery.com/flot/
просто и со вкусом.
и ещё много библиотек. советую не связываться с платными, так как бесплатных свободных хватает на все случаи жизни.
не вздумай всякое говно типа гугл чартса, это устаревшая фигня. все современные либы строят графики прямо в браузере и все они ещё интерактивные, можно тыкать, метки ставить и всё очень няшно.
Лучше это сделать отдельным набором данных с сервера или на клиентской части вычислять?Я бы сделал на клиенте, потому что ты раз передал массив данных и дальше что хочешь считаешь, а так ты получается на сервер запрос гнать будешь чтобы (a+b)/2 посчитать.
когда то давно юзал amcharts
Делай всё сам без либ.
Аналитику к графику прикручивать имеет смысл на серверной части или на клиенте?Зависит от задачи. Если нужно много интерактива, то имеет смысл разделить задачи между сервером и клиентом. Если много клиентов смотрят одно и тоже, то отдать серверу. Много нюансов, короче. Подсказывает КО.
Хочу приложить всякие сколзящие средние, дисперсию и т.п.
Лучше это сделать отдельным набором данных с сервера или на клиентской части вычислять?
http://www.highcharts.com/платные, смысла нет выбирать именно их, весь функционал есть в бесплатных же.
Насколько я знаю, у highcharts функционал не зависит от наличия лицензии. И его вполне хватает.
я пару лет не интересовался это темой, но тогда самым лучшим вариантом из бесплатных был jqplot
jqplotИ таскать за собой jQuery, даже если он не нужен
И таскать за собой jQuery, даже если он не нужен
ой, да по нынешним временам отказ от jquery это такое байтоёбство
Используй бесплатно, только не убирай с плотов ссылку на их сайт.
Нарисуй сам на SVG. Там делов-то.
Если нужна поддержка IE8, то вместо swg можно использовать библиотеку Raphael - она в зависимости от браузера делает или svg, или shapes
ой, да по нынешним временам отказ от jquery это такое байтоёбствоА еще можно поставить ссылку на гугловый сторадж jquery, и тогда оверхед от нее будет ровно 0 всегда.
ой, да по нынешним временам отказ от jquery это такое байтоёбствоПо нынешним временам jquery устаревшая технология.
А пацаны то не знают!
Да, в моде реакт фреймворки + новые фичи типа компонент в DOMе.
ну так я и пишу что "пару лет назад". Что там сейчас с рисованием графиков под реакт/ангуляр/кнокаут я хз.
Да, в моде реакт фреймворки + новые фичи типа компонент в DOMе.Если каждые два года меняются технологии, на них кроме туториалов успевают что-нибудь написать?
Если каждые два года меняются технологии, на них кроме туториалов успевают что-нибудь написать?jquery появилась в 2006 году, а React в 2013 - разница 7 лет, а не два года. К тому же это не технологии, а библиотеки размеров в 100Кб. Ничто не мешает тебе использовать в приложении сразу обе.
jQuery да библиотека, а React это фреймворк, который выворачивает всё по другому.
О прогрессе веб технологий можно почитать прямо у нас в Каранте
А пацаны то не знают!В jquery половина кода реализует самодельный движок селекторов, который сейчас во всех браузерах доступен нативно. Кроме того, этот движок селекторов решает несуществующую сейчас проблему парсинга DOM. Раньше, когда не было server-side js, приходилось генерить на сервер html а в браузере его парсить. Сейчас, благодаря ноде, можно не решать обратную задачу выделения данных из html, а решать только прямую задачу - из данных генерить html
на самом деле, основной фичей jquery была кросбраузерность. Сейчас это, да, уже не столь актуально.
а React это фреймворк, который выворачивает всё по другомуЯ думаю, ты из-за близкого знакомства с продуктами компании Microsoft потерял веру в программирование и считаешь теперь, что если кто-то написал какой-то код, то значит он злокозненный архитектор, который портит жизнь простым программистам.
Но на самом деле это не так - жизнь идет своим чередом, люди пишут полезные библиотеки, которые реально облегчают жизнь.
Раньше, когда не было server-side js, приходилось генерить на сервер html а в браузере его парсить. Сейчас, благодаря ноде, можно не решать обратную задачу выделения данных из html, а решать только прямую задачу - из данных генерить htmlЩито? При чем тут нода?
Мышиная возня, да, идет своим чередом. Выше я дал ссылку, как на яндекс картах сначала убрали фичу, а потом преподнесли как новую.
Да ща вообще происходит сдвиг парадигмы в области программирования сравнимый с массовым переходом на менедж языки. Например, опен сорс движение набирает такой момент, что скоро коммерческие приложения тупо будет невозможно писать без него.
Я думаю, ты из-за близкого знакомства с продуктами компании Microsoft потерял веру в программирование и считаешь теперь, что если кто-то написал какой-то код, то значит он злокозненный архитектор, который портит жизнь простым программистам.Всё ровно наоборот. Я почувствовал вкус настоящего программирования, благодаря C#. И то, что происходит на js для меня это мышиная возня. К сожалению, Майкрософт сливает Windows, поэтому на C# не на чем писать пользовательский интерфейс.
Но на самом деле это не так - жизнь идет своим чередом, люди пишут полезные библиотеки, которые реально облегчают жизнь.
И то, что происходит на js для меня это мышиная возня.В области программирования UI сейчас происходит революция. Например, год назад о таких штуках можно было только читать в каком-нибудь Out of the Tar Pit.
В области программирования UI сейчас происходит революция. Например, год назад о таких штуках можно было только читать в каком-нибудь Out of the Tar Pit.Этот как с лекарством от рака, каждые n лет происходит революция.
Out of the Tar Pit.Пролистал заголовки в статье.
"5 Classical approaches to managing complexity"
Почему в списке нет аля ReSharper? Это же отличное средство для управления сложностью.
Пролистал заголовки в статье.Статья написана в 2006 году, тогда уже был эклипс для джавы. Такие инструменты не уменьшают сложность, наоборот - становится очень просто гнать бессмысленный тавтологический код тысячами строк в день, ты сам недавно приводил пример
"5 Classical approaches to managing complexity"
Почему в списке нет аля ReSharper?
Такие инструменты не уменьшают сложность, наоборот - становится очень просто гнать бессмысленныйНе смешивай организационные проблемы с техническими. Проблема в людях и в неумении их организовать, а не в инструменте.
Пролистал заголовки в статьеТам в каком-то месте предлагается хранить в программе только ввод пользователя, а все остальное вычислять.
Так работает фреймворк redux, на который я кидал ссылку. Там надо каждое событие в приложении представить в виде структуры данных, например в TODO MVC удаление todo было бы представлено как {type: 'REMOVE', todoId: 5}. Программа состоит из двух чистых функций:
- render: State -> Virtual DOM
- applyAction: State -> Event -> State
В developer tools можно просматривать список событий, кликать на событие и откатываться на момент времени, когда оно произошло. Это открывает ряд возможностей, типа выбрать пару моментов в программе и сравнить состояния, просмотрев diff, ну и так далее
Не смешивай организационные проблемы с техническими. Проблема в людях и в неумении их организовать, а не в инструменте.Не очень понимаю, о чем ты. Представь, ты нанимаешь человека и даешь ему задачу, в рамках которой надо объявить структуру данных из пяти полей. Этот человек пишет геттеры, сеттеры, билдер паттерн, юнит тесты на геттеры и сеттеры, и юнит тесты на билдер паттерн. Кроме того, он подключает какие-то плагины к юнит тест фреймворку которые позволяют более удобно тестировать геттеры и сеттеры.
Тут нельзя человека организовать, потому что его надо переучивать программированию.
В developer tools можно просматривать список событий, кликать на событие и откатываться на момент времени, когда оно произошло. Это открывает ряд возможностей, типа выбрать пару моментов в программе и сравнить состояния, просмотрев diff, ну и так далееЯ правильно понимаю, что это мега инструмент для тех, кто рассматривает программирование как процесс внимания ошибок?
всех, кто советует делать вручную, слать лесом
Представь, ты нанимаешь человека и даешь ему задачу, в рамках которой надо объявить структуру данных из пяти полей. Этот человек пишет геттеры, сеттеры, билдер паттерн, юнит тесты на геттеры и сеттеры, и юнит тесты на билдер паттерн. Кроме того, он подключает какие-то плагины к юнит тест фреймворку которые позволяют более удобно тестировать геттеры и сеттеры.Если речь о пяти полях в базе, то мы нанимаем либо новичка, либо человека, который пишет:
ALTER TABLE SomeTable ADD A, B, C, D, E
В C# слова A, B, C, D, E появляются (полу)автоматически.
Представь, ты нанимаешь человека и даешь ему задачу, в рамках которой надо объявить структуру данных из пяти полей. Этот человек пишет геттеры, сеттеры, билдер паттерн, юнит тесты на геттеры и сеттеры, и юнит тесты на билдер паттерн. Кроме того, он подключает какие-то плагины к юнит тест фреймворку которые позволяют более удобно тестировать геттеры и сеттеры.Мусор на входе (неполная постановка задачи) - мусор на выходе.
Почему ты считаешь, что исполнитель - телепат? Почему ты исходишь из того, что пожелания заказчика совпадут с видением исполнителя на первой итерации?
Тут нельзя человека организовать, потому что его надо переучивать программированию.Обучение - это часть организованности. Сюда же мотивирование, разъяснение целей, донесение принятой культуры и т.д.
Щито? При чем тут нода?Раньше единственным способом написать приложение, которое индексируется браузером, но при этом содержит js-код, была генерация html на сервере и написание js кода который потом этим html манипулировал.
Благодаря ноде можно генерить html на клиенте и сервере одним кодом. Если более-менее правильно организовать, то можно сделать сайт который работает с выключенным js без дублирования кода.
google charts тормозят уже на нескольких тысячах точек
вот эта либа реально решила задачу: http://dygraphs.com/
Скорее всего на них и остановлюсь
Да, смотрел на dygraphs.Делал проект на них, очень быстрая и неглючная библиотечка, функционал бедный.
Out of the Tar Pit
А как можно понять систему, в которой стопицот полей?
http://www.greenone.ru/meteo/
данные с датчика DHT22/AM2302 собирает raspberry pi каждые 2 сек и отсылает в базу данных на vps-ке в Нидерландах
запрос /meteo/data возвращает 10-минутный averaging
'SELECT '+
' avg("T") as "T" ,'+
' avg("RH") as "RH",'+
' to_timestamp(600*FLOOR((extract(epoch from ts))/600)-3*3600) as "ts" '+
'FROM temperature '+
'GROUP BY 3 ORDER BY 3 DESC LIMIT 1500;' ,
на графике для сглаживания ещё есть 10-отсчётное скользящее среднее, можно поиграться с величиной окна осреднения внизу слева в окошке.
бэкенд на ноде
Кому интересно, что происходило 26.08.2015 примерно в 01:40 - это я датчик для тестов засунул в морозилку (поставить сглаживание=1 для пущего эффекта)
Out of the Tar Pit.Статья хорошая. Но есть важные замечания.
В статье два типа данных Input и Derived. Автор статьи хочет достигать такого же результат как если бы re-deriving the data as required.
Тип данных derived надо разбить еще на два. Первый подтип — derived данные только для отображения, но не используются в вычислениях в качестве аргументов. Второй подтип — derived данные, которые используются в вычислениях в качестве аргументов.
Для первого подтипа момент "as required" означает момент отображения на экран. В реальных приложениях данные первого подтипа можно переотображать всегда все целиком или крупными подмножествами. Поэтому accidental сложность, связанную с этим подтипом, достаточно просто обойти.
Со вторым подтипом сложнее. Вычисления образуют граф, и надо соблюдать топологическую сортировку. Удобно пользоваться языком, в котором нельзя использовать переменную до ее инициализации и нельзя перезаписывать переменные, помеченные как readonly. Если для derived данных использовать неизменяемые переменные, то топологическую сортировку проконтролирует сам язык. Поэтому и здесь accidental сложность уходит (человеку не надо напрягать ей голову).
Поэтому и здесь accidental сложность уходит (человеку не надо напрягать ей голову).Обычные языки программирования не решают проблему реактивности - когда меняются основные данные перевычислять зависимые.
Обычные языки программирования не решают проблему реактивности - когда меняются основные данные перевычислять зависимые.Да ну. Значение C зависит от A и B. Всегда получаем пересчитанное C.
class Foo
{
int A {get; set;}
int B {get; set;}
int C { get { return A + B; } }
}
Ты, надеюсь, хотя бы в процессе понял, что node.js и angular.js несколько совсем разные вещи?
Меня всегда умиляет, когда люди их мешают.
По делу
Ты express.js для вывода одной странички юзаешь? Силён. От jade не офигел по первости?
В образовательных целях рекомедную сделать без експресса — будешь лучше разбираться о том как работает нода и где какие данные окружения хранятся
Или, учитывая что ангуляра на паге твоей нету, ты на него забил?
А я хотел порекомендовать http://chinmaymk.github.io/angular-charts/
года полтора назад юзал, понравилось. Но, думаю, что-то более интересное могло появится.
Ваще когда что-то делаешь в ангуляре — сначала гуглишь "angular нужная_тебе_фича". С вероятностью 90% оно уже написано.
Ровно тоже самое с нодой. Сначала гугль, и с огромной вероятностью no problem man (npm) тебе поможет.
Но не путайт node.js и express.js, тем более angular.js.
node.js — платформа, сервис, компилятор по сути
express.js — серверный фремворк
angular.js — вообще фронт фреймворк
у последних 2 общее — только язык программирования. Всё остальное - совсем разные вещи.
ангуляр и нода — примерно как qt и gcc
jQuery да библиотека, а React это фреймворк, который выворачивает всё по другому.Цитата из документа написанного создателем jquery:
Minimize use of jQuery.
Never use jQuery for DOM manipulation.
Try to avoid using jQuery plugins. When necessary, wrap the jQuery plugin with a React component so you only have to touch the jQuery once.
Как я уже писал, сейчас jQuery уже не очень нужен, кросбраузерность уже и на ванильном js
Оставить комментарий
yolki
Источник данных - ну пусть будет json, берутся из базы данных.Данные - временные ряды. Ну например - стоимость барреля в килограммах гречки, ежесекундные котировки
чё-нибудь простенькое и со вкусом.
ща вот решил расширить кругозор и поиграться в Node.js & AngularJS .
D3 - чё-то слишком монструозно кажется
гугль советует Google.Charts
chartjs норм?
n3-charts симпатично выглядят
Аналитику к графику прикручивать имеет смысл на серверной части или на клиенте?
Хочу приложить всякие сколзящие средние, дисперсию и т.п.
Лучше это сделать отдельным набором данных с сервера или на клиентской части вычислять?