These are chat archives for synrc/n2o

30th
Aug 2015
Namdak Tonpa
@5HT
Aug 30 2015 00:00
Вот как теперь N2O выглядит:
├── endpoints
│   ├── cowboy
│   │   ├── bullet_handler.erl
│   │   ├── n2o_bullet.erl
│   │   ├── n2o_cowboy.erl
│   │   └── n2o_dynalo.erl
│   ├── n2o_document.erl
│   └── n2o_websocket.erl
├── formatters
│   ├── wf_convert.erl
│   └── wf_utils.erl
├── handlers
│   ├── n2o_auth.erl
│   ├── n2o_dynroute.erl
│   ├── n2o_error.erl
│   ├── n2o_io.erl
│   ├── n2o_log.erl
│   ├── n2o_mq.erl
│   ├── n2o_pickle.erl
│   ├── n2o_query.erl
│   ├── n2o_secret.erl
│   └── n2o_session.erl
├── n2o.app.src
├── n2o_app.erl
├── n2o_sup.erl
├── protocols
│   ├── n2o_binary.erl
│   ├── n2o_client.erl
│   ├── n2o_heart.erl
│   ├── n2o_nitrogen.erl
│   ├── n2o_rails.erl
│   └── n2o_text.erl
├── static_file.erl
├── wf.erl
└── wf_context.erl
Andy
@m-2k
Aug 30 2015 00:01
сделать что ли вызов apple и сделать их сайт на n2o с такими няшами как SPA / WS и BPG animations заместо видео...
да, напиши в мануале как логи конфигурировать. и какие решения под какие задачи лучше. ну там в файл, базу, сторонний сервис
Namdak Tonpa
@5HT
Aug 30 2015 00:03
ага про crashdump.io надо написать
Andy
@m-2k
Aug 30 2015 00:03
оно уже стабильно? )
Namdak Tonpa
@5HT
Aug 30 2015 00:04
надо спросить у @d1ffuz0r
Andy
@m-2k
Aug 30 2015 00:04
у них сертификат проёбан
а дизайн сайта просто космос
кто дизайн делал?
Namdak Tonpa
@5HT
Aug 30 2015 00:04
Рома сам делал
Andy
@m-2k
Aug 30 2015 00:04
бля так не говорите что это бутстрап )
аааааааа
Namdak Tonpa
@5HT
Aug 30 2015 00:05
ну у меня skyline тоже на бустрапе и jquery (свят свят свят)
Andy
@m-2k
Aug 30 2015 00:05
он старый как динозавр, ему можна )
Namdak Tonpa
@5HT
Aug 30 2015 00:06
одногодка crashdump.io
хоть бери бабки в калифорнию шли чтоб рома сервис доделал :-)
я еще убрал зависимость от inets и удалил нахуй httpd_util:rfc1123_date
Это должно пофиксать проблемы на некоторых 32-битных эрлангах synrc/n2o#213
Andy
@m-2k
Aug 30 2015 00:09
ты лучше удали httpc из avz
Namdak Tonpa
@5HT
Aug 30 2015 00:09
а как?
Andy
@m-2k
Aug 30 2015 00:09
добавь gun )
ты ж сам советовал
я про oauth который как я догадываюсь был спизжен с простор гитхаба с выпиливанием автора в хидере )
да я вообще бы хотел нахуй выбросить HTTP авторизацию из AVZ
но пусть там для коллекции будет
да oauth вообще надо выбросить оттуда
он не нужен полностью для авториазции
Andy
@m-2k
Aug 30 2015 00:12
а как же твитор
говорят oauth оч легко ломануть
Namdak Tonpa
@5HT
Aug 30 2015 00:14
OAUTH — это HTTP а значит легаси говно :-)
я ж вынес нахуй REST эндпойнт из N2O уже давно
еще бы n2o_document.erl прибить :-)
Andy
@m-2k
Aug 30 2015 00:15
ни-е-ет
по ссылкам же надо как-то ходить
генерация динамического контента..
Namdak Tonpa
@5HT
Aug 30 2015 00:15
ну нагенери себе статических страниц и ходи по ним
а контент в них дизамически загружай
Andy
@m-2k
Aug 30 2015 00:16
мне их чо, из эрланга генерить?
Namdak Tonpa
@5HT
Aug 30 2015 00:16
да
как cup или pub
это два статик сайт генератора
один на n2o, а pub уже на nitro написаны
Andy
@m-2k
Aug 30 2015 00:18
это надо опять сесть и медитировать
типа для неавторизованных и ботов отдавать статику, а остальным обновлять статику до динамики с учетом их прав?
Namdak Tonpa
@5HT
Aug 30 2015 00:19
ага
и гугл тебя искать будет
добавил камент перегенерирвал статику
если он публичный
Andy
@m-2k
Aug 30 2015 00:21
чот мне показалось проще document заюзать чем сторить базу в статику
Namdak Tonpa
@5HT
Aug 30 2015 00:21
хостится прямо на гитхабе можно :-)
гг :-)
если сервак выключат за неуплату весь контент останется :-)
мазафака текналаджи
Andy
@m-2k
Aug 30 2015 00:22
сервис для нищих
мне такая хуйня не понравилась потому что иконки логина будут обновляться прямо на глазах юзера
а как ща у меня - они уже пофикшеные с его именем приезжают по http
вообще бесит когда что-то мерцает, например как в винде до directx без двойной буферизации
Andy
@m-2k
Aug 30 2015 00:36
с другой стороны можно ж вообще кнопки логина не подгружать по http а после коннекта по ws выводить плавно через transitions - вот это ваще тема
Namdak Tonpa
@5HT
Aug 30 2015 00:36
так и надо делать
Andy
@m-2k
Aug 30 2015 00:37
почему я полгода назад про css эффекты не подумал...
так же хотел бд в статику сливать
Namdak Tonpa
@5HT
Aug 30 2015 01:11
работает
вместо
wf:json([{eval,iolist_to_binary(render_actions(Actions))}])
шлется теперь {io,_,_}
term_to_binary({io,iolist_to_binary(render_actions(Actions)),<<>>})
Namdak Tonpa
@5HT
Aug 30 2015 01:16
только надо на стороне клиента теперь вызывать utf8_decode
:-\
ну как в games впринципе
function isIO(x) { return (typeof x == 'object' && x.type == 'Tuple' &&
                   x.value[0].length == 3 && x.value[0][0] == 'io'); }

$bert.do = function (x) {
    if (isIO(x)) {
        console.log("IO Message");
        console.log(x.value[0][1].value);
        try { eval(utf8_decode(x.value[0][1].value)); }
        catch (e) { return { status: "error", desc: e }; }
        return { status: "ok", desc: e };
    } else console.log("unknown Bert: " + x);
}
теперь сюда можно писать isSERVER, isBINARY, isFILE и тому подобное
isBPE, isKVOP, isROSTER и другое
опять будет цикл
цикл вернего уровня в n2o.js выбирает форматтер json.js или bert.js или messagepack.js
и дальше уже протоколы
на цикле второго уровня будут перебиратся
Namdak Tonpa
@5HT
Aug 30 2015 01:21
теперь надо придумтаь контейнер для сообщений на строне джаваскрипта
чтобы и json.js после JSON.parse и bert.js после dec выдавали одно и тоже
Andy
@m-2k
Aug 30 2015 01:25
Што? Нахуя?
Namdak Tonpa
@5HT
Aug 30 2015 01:26
ну а если люли захотят JSON передавать
Andy
@m-2k
Aug 30 2015 01:27
Ивенты через json?
Нитрогеновские?
Namdak Tonpa
@5HT
Aug 30 2015 01:27
ну весь протокольный стек
Andy
@m-2k
Aug 30 2015 01:27
Но нахуя
Протокол в протоколе, лол. Зашквар
Namdak Tonpa
@5HT
Aug 30 2015 01:28
это не протокол в протоколе
а разные форматтеры
1. XML  : <io><eval>console.log</eval></io>
2. BERT : {io,"console.log",[]} 
3. JSON : {name:io,eval:"console.log"}
4. TEXT : IO console.log \n
5. WAMP : [io,"console.log",""]
Это все одно и тоже сообщение но по разному отформатированое
Michael A. Mota
@mamsw
Aug 30 2015 03:10
is the nitro library required to run n2o? i get this error related to the templates: record dtl undefined
Namdak Tonpa
@5HT
Aug 30 2015 03:11
if you want to use #dtl or any other records, then yes, from now on you should specify additional nitro dependency
I just moved all of them to nitro
Michael A. Mota
@mamsw
Aug 30 2015 03:12
understood
Namdak Tonpa
@5HT
Aug 30 2015 03:12
I did that because static site generators don't need WebSocket channels but could use Nitrogen DSL
and some N2O applications, like games doesn't need Nitrogen DSL
so they now can be used separately
no one depends each other
Michael A. Mota
@mamsw
Aug 30 2015 03:13
Thumbs up
Is the n2o documentation updated to reference these changes or are they in the process of being updated?
Namdak Tonpa
@5HT
Aug 30 2015 03:16
nothing changed except additional dependency
samples already changed
Michael A. Mota
@mamsw
Aug 30 2015 03:17
ok
Namdak Tonpa
@5HT
Aug 30 2015 03:17
no need to change documentation as it introduce no compatibility breakage
Namdak Tonpa
@5HT
Aug 30 2015 03:23
cool
now I can change formatters on the fly
Michael A. Mota
@mamsw
Aug 30 2015 03:24
What is that? I am a little rusty since working a day job.
Namdak Tonpa
@5HT
Aug 30 2015 03:24
formatters.png
now we can switch BERT/JSON formatting for N2O protocol on the fly
in the same WebSocket session
as you can same BERT message is 2K while JSON message is 2.5K
Michael A. Mota
@mamsw
Aug 30 2015 03:26
Cool even though i don't completely understand it yet.
Namdak Tonpa
@5HT
Aug 30 2015 03:26
doesn't matter because it doesn't affect your applications :-)
everything is still compatible
Michael A. Mota
@mamsw
Aug 30 2015 03:27
You are using Kjell to display that info?
Namdak Tonpa
@5HT
Aug 30 2015 03:27
this is Google Chrome Developer Tools -> Network -> WebSockets
Michael A. Mota
@mamsw
Aug 30 2015 03:30
i see. jsone allows n2o to use JSON as a data interchange?
Namdak Tonpa
@5HT
Aug 30 2015 03:30
I replaced mochiweb json with jsone
this is another one dependency you should put to N2O
or if you set BERT formatter in sys.config
like {formatter,bert} in n2o section
Michael A. Mota
@mamsw
Aug 30 2015 03:31
It looks like already included in the n2o dep
Namdak Tonpa
@5HT
Aug 30 2015 03:31
then you don't need jsone at all
ah then ok
maybe I will remove it later, because JSON formatter should be optional
Michael A. Mota
@mamsw
Aug 30 2015 03:33
ok. I did not know about the formatter option in sys.config.
Namdak Tonpa
@5HT
Aug 30 2015 03:33
me too, it was just added :-)
Michael A. Mota
@mamsw
Aug 30 2015 03:34
thanks
it was added just now?
5 min ago
What languages other than Erlang have you been learning about this year?
Namdak Tonpa
@5HT
Aug 30 2015 03:37
we are trying to put N2O in Haskell (n2o.hs) on the way
Michael A. Mota
@mamsw
Aug 30 2015 03:38
Do you like Haskell more or as much as Erlang?
Namdak Tonpa
@5HT
Aug 30 2015 03:39
not as much
Michael A. Mota
@mamsw
Aug 30 2015 03:40
has there been a lot of requests for a haskell variant of n2o?
Namdak Tonpa
@5HT
Aug 30 2015 03:40
yep
Michael A. Mota
@mamsw
Aug 30 2015 03:44
Much thanks to you and the other contributors who have made n2o the great web framework that it is. Catch ya later.
Andrii Sergiienko
@fycth
Aug 30 2015 08:14
@5HT потестил я сегодня AVZ. Все хорошо, только там сломан ФБ-логин и апдейт юзеров. Я отправил PR. Спасибо.
Andy
@m-2k
Aug 30 2015 08:38
Yay
Andy
@m-2k
Aug 30 2015 09:53
Amazing. n2o.app – 716 bytes
Andy
@m-2k
Aug 30 2015 10:07
давно надо было dynroute по дефолту ставить - порог вхождения снижается
вот сделал новый модуль и тут же открывается – класс
но когда чел захочет свой роутинг – тут вопросов будет в два раза больше
Andrii Sergiienko
@fycth
Aug 30 2015 10:11
а в чем кратко суть dynaroute? для тех кто не в теме. щас есть routes.erl - где мапятся урлы. А с dynaroute каков механизм?
Andy
@m-2k
Aug 30 2015 10:11
если существует модуль - редирект к нему
Andrii Sergiienko
@fycth
Aug 30 2015 10:12
то есть если у нас есть dashboard.erl - то http://website/dashboard пойдет сразу на него?
Andy
@m-2k
Aug 30 2015 10:12
да
Andrii Sergiienko
@fycth
Aug 30 2015 10:12
понял. удобно
Andy
@m-2k
Aug 30 2015 10:13
но domain/module/other – уже не получится
Andrii Sergiienko
@fycth
Aug 30 2015 10:13
dynroute и route.erl можно совместно комбинировать/использовать - или только одно или другое?
Andy
@m-2k
Aug 30 2015 10:13
ну и вообще не кошерно с точки безопасности. поэтому только для ололошей в девелоп-mode
Andrii Sergiienko
@fycth
Aug 30 2015 10:14
ну вот это да
Andy
@m-2k
Aug 30 2015 10:14
только одно
Configuration: [{n2o,[{port,8000},{route,routes}]},
Andrii Sergiienko
@fycth
Aug 30 2015 10:17
ага увидел
Andy
@m-2k
Aug 30 2015 10:24
по сути routes.erl такая же шляпа как и динамический, поэтому надо писать свой под приложение
Andy
@m-2k
Aug 30 2015 10:35
а где в хроме это Developer Tools -> Network -> WebSockets
Снимок экрана 2015-08-30 в 13.36.05.png
Namdak Tonpa
@5HT
Aug 30 2015 15:18
@fycth я смержил PR но там вроде ошибка
Andrii Sergiienko
@fycth
Aug 30 2015 15:24
где? я потестил - заработало вроде
Namdak Tonpa
@5HT
Aug 30 2015 15:26

твой coalesce не имеет смысла вообще

coalesce(_,Y) -> Y.

надо хотя бы так

coalesce(X,undefined) -> X;
coalesce(_,Y) -> Y.
Andrii Sergiienko
@fycth
Aug 30 2015 15:26
м. да. про этот вариант я не подумал. тут ты прав
Namdak Tonpa
@5HT
Aug 30 2015 15:26
подумай зачем тогда вообще coalesce вызывать? :-)
Andrii Sergiienko
@fycth
Aug 30 2015 15:27
щас насру еще одним ПР...
Namdak Tonpa
@5HT
Aug 30 2015 15:27
@m-2k нажми на этой картке на строчку /ws сразу еще одно окно появится
как ты вообще на N2O пишешь если ты не знаешь где дамп протокола смотреть :-)
Namdak Tonpa
@5HT
Aug 30 2015 15:33
три чувака вчера сняли звезду с N2O, видно не одобряют :-)
Andrii Sergiienko
@fycth
Aug 30 2015 15:33
и не поленились
активная гражданская позиция
Namdak Tonpa
@5HT
Aug 30 2015 15:47
надо куда-то опять вбросить
незнаю только куда
Andy
@m-2k
Aug 30 2015 16:29
я его в консоли смотрю, лол
через wf:info/3
хм, ну это еще надо было вкладку frames открыть и верхнее окно растянуть
квест на 3 монетки
Andy
@m-2k
Aug 30 2015 16:34
а в сафари такого нет?
Namdak Tonpa
@5HT
Aug 30 2015 16:49
нет