Denis
27.04.2016
15:57:02
))
Kanat
27.04.2016
16:00:08
マイク
27.04.2016
18:10:43
/**
* METHOD: sendPhoto
* PARAMS:
* chat_id Unique identifier for the message recepient — User or GroupChat id
* photo Photo to send. You can either pass a file_id as String to resend
* a photo that is already on the Telegram servers, or upload
* a new photo using multipart/form-data.
* caption Photo caption (may also be used when resending photos by file_id)
* reply_to_message_id If the message is a reply, ID of the original message
* reply_markup Additional interface options. A JSON-serialized object for a custom
* reply keyboard, instructions to hide keyboard or to force a reply from the user.
*/
this.sendPhoto = function (params, cb)
{
return new Promise(function(resolve, reject)
{
// Act different depending on value params.photo
fs.exists(params.photo, function (exists)
{
var photo = null;
if (exists)
{
// params.photo is path to file
photo = fs.createReadStream(params.photo);
}
else
{
// params.photo is not a file, simply pass it to POST
photo = params.photo;
}
var args = {
chat_id: params.chat_id,
photo: photo
};
if (params.caption !== undefined)
{
args.caption = params.caption;
}
if (params.reply_to_message_id !== undefined)
{
args.reply_to_message_id = params.reply_to_message_id;
}
if (params.reply_markup !== undefined)
{
args.reply_markup = params.reply_markup;
}
_rest({
method: 'POST',
json: true,
formData: args,
uri: _baseurl + 'sendPhoto'
})
.then(function(body)
{
return commonResponseHandler(body);
})
.then(function(data)
{
resolve(data);
})
.catch(function(err)
{
reject(err);
});
});
}).nodeify(cb);
};
Дёргать фс на каждой отправке фото не очень разумно
Kanat
27.04.2016
18:11:06
Google
マイク
27.04.2016
18:12:57
Не дёргать фс, если не надо читать файл. Явно передавать файл/буффер.
Denis
28.04.2016
11:48:11
и контрпропозал https://twitter.com/littlecalculist/status/725228101400072193
MoscowJS будет здесь
Node 5 работала
Так и эта тоже
Kanat
28.04.2016
16:38:35
Искусственный интеллект. Алгоритмы которые играют в игры.
Лекторы: Степулёнок Денис, Кольцов Максим
#data_analysis #novice
Ссылка на пост
https://vk.com/wall-54530371_67930
KrivdaTheTriewe
29.04.2016
10:53:27
Друзья, добрый день, не холивара ради, поясните за ноду пожалуйста, какие преимущества даёт нода при разработке крупных проектов, скажите пожалуйста. Интересуют только плюсы
Denis
29.04.2016
10:54:06
C++? :)
KrivdaTheTriewe
29.04.2016
10:54:23
ANSI C
Konstantin
29.04.2016
10:54:25
Что такое «крупный проект»? )
KrivdaTheTriewe
29.04.2016
10:54:55
Denis
29.04.2016
10:54:59
Главный плюс - портабельность кода и переносимость членов команды, когда команда работает в одном языке и экосистеме. Главный минус - memory leak и однопоточность. :)
KrivdaTheTriewe
29.04.2016
10:55:25
Google
Denis
29.04.2016
10:55:48
~10K запросов в секунду? Будет hell
Andrey
29.04.2016
10:55:50
однопоточной это о другом )
Denis
29.04.2016
10:55:59
Да
Node.js - это про Front-end сервер, для рендеринга, авторизации, вот этого верхнего слоя.
KrivdaTheTriewe
29.04.2016
10:56:22
мне предлагали писать на ноде хайлоад просто, я отказался ( ну так как на ней не пишу)
Andrey
29.04.2016
10:56:48
Denis
29.04.2016
10:56:54
Правда это будет как слоны в посудной лавке :)
Konstantin
29.04.2016
10:56:56
Названные минусы являются минусами разработчиков, имхо
KrivdaTheTriewe
29.04.2016
10:57:19
я просто думал, что есть какие то скажем преимущества именно в этом типе проектов
Denis
29.04.2016
10:57:43
От типа проекта зависит
KrivdaTheTriewe
29.04.2016
10:57:47
я сейчас скаллу с ее аккой ковыряю, хотелось бы посмотреть что ц других платформ
Denis
29.04.2016
10:57:58
Это может быть и плюсом и минусом
Konstantin
29.04.2016
10:58:43
Нода хороша для отдачи из базы с минимумом бизнес-логики
Антон
29.04.2016
10:59:40
Нода прекрасна на все 100.0000000001%
Denis
29.04.2016
10:59:44
https://www.youtube.com/watch?v=PbK5xLmS0MU
Konstantin
29.04.2016
10:59:54
При правильном подходе легко масштабируется горизонтально: при увеличении нагрузки можно запустить дополнительные процессы и балансить между ними
Denis
29.04.2016
11:00:20
Горизонтальное масштабирование да
Просто за счёт того, что ты в здравом уме там монолит не будешь делать :)
1. ACL (аутентификация, авторизация)
2. Получение данных
3. Агрегация и простая обработка
4. Server-side Rendering (видео доклада выше)
5. Быстро сервис набросать
Konstantin
29.04.2016
11:02:34
??
Google
Denis
29.04.2016
11:03:09
Когда растёт нагрузка, то уже лучше смотреть на что-нибудь в стиле Golang
Ходят слухи, что они впилили многопоточный GC, у них отсутствует memory leak и производительность C++
KrivdaTheTriewe
29.04.2016
11:05:04
Скажите лучше где прочитать про горизонтальную масштабируемость на ноже пожалуйста
Vladimir
29.04.2016
11:09:04
50kreq/minute = 833rps = 71.9Mreq/day
что вы там пишете для 72 хитов в день?
https://vimeo.com/123929780
/cc @krivda228
Vladimir
29.04.2016
11:19:15
Очевидно что stateless сервисы можно масштабировать независимо от платформы
Denis
29.04.2016
11:25:54
Pure functions ибо
А не ООП, где экземпляр хранит и логику, и state
Vladimir
29.04.2016
11:27:26
Скорее из-за отсутствия коммуникации между инстансами, локальные кэши можно делать, например
Вообще бэкэнд такая штука, особой разницы между платформами нет, нужно выбирать экосистему
KrivdaTheTriewe
29.04.2016
11:30:39
Спасибо за ответы!
Denis
29.04.2016
12:49:37
https://github.com/StylishThemes/GitHub-Dark
Kanat
29.04.2016
13:07:29
с нодой можно ж работать без интернета?
?
Vladimir
29.04.2016
13:08:44
Каждый день так делаю
Kanat
29.04.2016
13:09:40
Ок
Vladimir
29.04.2016
13:29:02
@mental1st более того https://jsunderhood.ru/ был сделан в трамваях и парках без интернета
Denis
29.04.2016
13:31:52
?
Google
Alex
29.04.2016
13:32:47
Парни, а кто-нибудь писал телеграмм бота?
тут странная вещь. Ответ от клавиатуры приходит без reply_to_message
Kanat
29.04.2016
13:33:37
Я пишу пока без успешно
Denis
29.04.2016
13:33:45
Кто-то тут писал
Alex
29.04.2016
13:33:56
использую node-telegram-bot-api
но дело похоже не в нём
Denis
29.04.2016
13:34:19
Мы для чатика как-нибудь допишем https://github.com/StartupMakers/telegram-reactjs-bot
Alex
29.04.2016
13:35:46
Мне кажется проблема в privacy mode бота. Т.к. с ключоным privacy должно работать:
By default, your bot runs in privacy mode and only sees the following messages from groups:
- Replies to the bot's own messages (messages sent via a custom keyboard are always a reply to the bot)
Денис, а ты все 3 либы используете? :)
Denis
29.04.2016
13:37:15
фак
Alex
29.04.2016
13:37:15
"Bot Libraries"
Denis
29.04.2016
13:37:18
а
не, это просто чтобы держать в фокусе их
Alex
29.04.2016
13:38:41
вы как раз ту же юзаете node-telegram-bot-api. В package.json
Denis
29.04.2016
13:38:43
Мог бы сделать и оформить PR для этих 2 пунктов?
Welcome message and brief for new users
Silent-mode to avoid "flood"
Kanat
29.04.2016
13:38:43
Ты его получаешь через хук.
Или через getUpdates.
Тебе нужно дёргать getUpdates и там будут все новые сообщения.
Alex
29.04.2016
13:39:10
на продакшне будет через хук
Kanat
29.04.2016
13:39:15
Отловить событие, когда присоединился новый пользователь через хук надо
Google
Alex
29.04.2016
13:39:23
на разработке чепез getUpdates
https://github.com/yagop/node-telegram-bot-api/issues/26