
Alex
20.08.2016
18:56:05
но хотелось бы не сохранять лишние переменные =)

Serhii
20.08.2016
18:57:50
не подскажу, сорри

Alex
20.08.2016
18:58:18
типа
var sum = 0;
var count = 0;
stream.on('data', n => {
sum += doc;
count += 1;
});
stram.on('end', () => console.log("Среднее: " + (sum / count).toFixed(2)));

Serhii
20.08.2016
18:58:33
если ты уже считаешь сумму в редьюсе, почему бы там не инкрементить и счетчик?

Google

Alex
20.08.2016
18:58:44
редьюсь просто для примера =)
был

Serhii
20.08.2016
18:58:47
не устраивает в плане производительности или в плане чистоты кода?

Alex
20.08.2016
18:59:04
чистоты кода
в плане производительности тут как раз все ок =)

hamper ?
20.08.2016
19:07:34
среднее арифметическое можно посчитать только зная сумму и количество элементов, больше никак, его невозможно вычислить по сокращенным данным типа среднего от части элементов

Alex
20.08.2016
19:09:21
спасибо, теперь я это точно знаю :)

Ilya
21.08.2016
06:03:48

yadro
21.08.2016
08:59:25
Привет всем. Рябят, не подскажете где можно познакомится с oauth, чтоб на русском и понятно) Хочу интеграцию с dropbox сделать и не совсем понятно как сделать авторизацию.

Vladimir
21.08.2016
09:42:01
паспорт и его плагин для дропбокса
и ещё одна https://github.com/florianheinemann/passport-dropbox-oauth2

KlonD90
21.08.2016
09:51:04
Зачем?

Google

yadro
21.08.2016
09:51:49
Спасибо за ответ, но я пишу одностраничное приложение на js, так что извиняюсь что не в тот чат. Мне хотелось бы сделать авторизацию без редиректа в браузер, не найдется ни у кого ссылки, как это реализуется?

឵Roma
21.08.2016
09:59:50
Данные можешь занести в файл

yadro
21.08.2016
10:08:25
Кажется это не true way)
запусти виртуальный сервак.
причем dropbox требует редирект на https

KlonD90
21.08.2016
10:54:03
Чем проводите ui тестирование на ноде? Я раньше на селениде писал, но на моем компе кажется IDEA с трудом запустится :(

Vadim
21.08.2016
11:57:12
А зачем тестить ui через node?
есть селениум, вебдрайвер
phantomjs

KlonD90
21.08.2016
11:57:47
из очевидного вопрос в языке который шлет команды селениуму

Vadim
21.08.2016
11:58:24
http://webdriver.io
http://nightwatchjs.org

KlonD90
21.08.2016
11:58:38
ну вообщем да уже взял webdriver.io

Юрий
21.08.2016
11:58:42
Только хотел скинуть^

KlonD90
21.08.2016
11:58:52
неплохо работает
но жаль нету цукерку как в селениде

Vadim
21.08.2016
12:00:03
цукерку?

KlonD90
21.08.2016
12:00:28
Ну там что фактически любая команда с wait for отрабатывает

Vadim
21.08.2016
12:00:54
вебдрайвер можно запускать в синхронном режиме

Google

Vadim
21.08.2016
12:00:58
ты про это?

KlonD90
21.08.2016
12:01:12
не надо писать всякой фигни для очевидно асинхроного мира
Про появление элемента на странице
Типа ты вызываешь клик и говоришь что дальше должен появиться элемент с таким стилем и текстом. А не делаешь типа ждать секунду и проверить а потом типа а у нас сервер может тупить поставлю сразу 10
а сразу всему фактически ставишь типа раз в секунду чекать это условие пока не найдется

Alex
21.08.2016
12:37:19
#whois
▫️Яндекс
▫️> БЭМ
▫️< React, es6, node.js
▫️Москва
▫️Нашёл вас тут: A-gambit/awesome-telegram-chats

Anton
21.08.2016
12:40:15
У тесты на mocha-phantomjs нормально работают. Они же руками и в браузере запускаются. Вроде при тестировании UI особо нигде не жмет.

Paul
21.08.2016
12:56:36
> от таких больше вреда чем пользы
Ты делаешь что-то не так

Dmitry
21.08.2016
13:29:49

Никита
21.08.2016
14:30:11
(я не имею отношение к нпмс, я про свой поиск)
> /poem/${req.params.id}
Ты же параметры санитизируешь, да?

Oleg
21.08.2016
14:34:50

Никита
21.08.2016
14:35:47
В смысле я не могу сделать id=..%2Fjohnny-drop-the-table%3Fconfirm-yes, да?
s/-y/%3Dy/

Alex
21.08.2016
15:12:22
нашёл решение: не писать такой говёный код ^
Что-то у меня телеграмм глючит. Сейчас увидел ответы.
Не санитизирую.
За нодой настоящий бэкенд он санитизирует

Vladimir
21.08.2016
15:42:58
Так параметры и не нужно на входе санитизировать

Никита
21.08.2016
16:14:00

Google

Admin
ERROR: S client not available

Никита
21.08.2016
16:14:20
Без проверок и санитизации

Кисик
21.08.2016
16:37:48
Котаны, какие бойлерплейты вы используете для старта API-проекта?

Tsenzuk
21.08.2016
16:41:17
чисто поидее, можно:
var count = 0;
var average = 0;
stream.on('data', n => {
//тут n - одно новое число в потоке
average = (average * count + n) / (count + 1);
count++;
});

Aleksei
21.08.2016
16:51:31

Tsenzuk
21.08.2016
16:51:55
хранение только 3 чисел дновременно вместо массива

Aleksei
21.08.2016
16:52:15
Зато просчет на каждой итерации

Никита
21.08.2016
16:52:31
в смысле у тебя в коде sum вообще не используется

Tsenzuk
21.08.2016
16:52:53
но сразу же проигрываешь, если тебе кроме средневзвешенного ещё и нуждаешься в любом другом значении, например среднем квадрате невязок

Никита
21.08.2016
16:54:30
а чем это лучше подсчёта sum и count и отображения sum / count?
Ошибка накапливаться будет.

Aleksei
21.08.2016
16:56:38
Тут вечная дилемма, что важнее: память или проц. Хотя на таких просчетах и таком количестве данных это звучит смешно, но я рассматриваю вообще похожие ситуации, а не только эту

Tsenzuk
21.08.2016
16:56:43
только случаем когда sum > Number.MAX_VALUE

Никита
21.08.2016
16:57:52
точность в твоём случае больше пострадает
даже при сумме большей макс_валуе

Tsenzuk
21.08.2016
16:59:14

Google

Aleksei
21.08.2016
16:59:24
С точностью да, тоже вопрос... мы же имеем дело с js...

Tsenzuk
21.08.2016
16:59:39
но да, про точность согласен

Никита
21.08.2016
16:59:42
твой код множит авереге на каунт
это и есть сумма
и числа в жс почти всегда — даблы.

Tsenzuk
21.08.2016
17:00:37
хм

Никита
21.08.2016
17:00:50
там суммой вылезти за порог весьма и весьма проблематично