These are chat archives for synrc/n2o

1st
Feb 2015
Andy
@m-2k
Feb 01 2015 00:28
Макс, починил пикчи, я неуглядел и div выпилил :smile:
Жди завтра config:log_level -> warning. в виде PR :smile:
Namdak Tonpa
@5HT
Feb 01 2015 05:53
уже завтра ))
Andy
@m-2k
Feb 01 2015 06:30
да, кто ран встает, тот пулреквесты шлет...
чот скорость io_lib:format мне совсем не нравится а display/1 написано что только для девелопа :(
Namdak Tonpa
@5HT
Feb 01 2015 06:32
пора свои stdlib писать и kernel )
Andy
@m-2k
Feb 01 2015 06:33
я б просто бинарь выводил без конвертации
Namdak Tonpa
@5HT
Feb 01 2015 06:33
куда выводил?
ты же можешь логгинг модуль какой-то угодно подсунуть
соттветсвенно и форматтер
Andy
@m-2k
Feb 01 2015 06:34
да но говорю что ниче не нашел лучше dispay/1 а оно ток для дев режима
Namdak Tonpa
@5HT
Feb 01 2015 06:35
по дефаулту все работает?
Andy
@m-2k
Feb 01 2015 06:35
я ща пишу обычно wf:info(?MODULE, <<"Number: ",(wf:to_binary(Val))/binary>>,[]).
по какому дефаулту? если речь о PR, то да, я пихнул info вконфиг и wf
Namdak Tonpa
@5HT
Feb 01 2015 06:36
ладно я счас проверю
{[{reason,undef},{mfa,{n2o_dynalo,rest_init,2}},{stacktrace,[{deposits_allow,log_level,[],[]}
поломал ты наши приложения :-)
Andy
@m-2k
Feb 01 2015 06:39
имя функции совпало?
Namdak Tonpa
@5HT
Feb 01 2015 06:39
нет, нет такой функции в log_modules модуле
{reason,undef}
Andy
@m-2k
Feb 01 2015 06:40
{log_modules, config},
же
Namdak Tonpa
@5HT
Feb 01 2015 06:41
у нас он называется не config
а deposits_allow
и там нет функции log_level
ровно как и у всех n2o приложений
Andy
@m-2k
Feb 01 2015 06:41
конечно нет, она ж новая
Namdak Tonpa
@5HT
Feb 01 2015 06:42
review, sample
их тоже ты хочешь переписывать?
а еще десятки тех про которые не говорят?
поэтому надо сделать так, чтобы оно работало даже когда такой функции нет, чтобы логировалось ВСЕ
типа самый максимальный левел когда info показываются
добавишь еще комит?
Andy
@m-2k
Feb 01 2015 06:43
я сделал по аналогии
Namdak Tonpa
@5HT
Feb 01 2015 06:43
шо б я не ревертил )
Andy
@m-2k
Feb 01 2015 06:43
?ALLOWED:log_level()
нах еще проверять что есть функция? это зашквар
Namdak Tonpa
@5HT
Feb 01 2015 06:43
ты неправильно написал и не хочешь разбираться
я возвращаю комит )
Andy
@m-2k
Feb 01 2015 06:44
лол, да я понял что ты хочешь
Namdak Tonpa
@5HT
Feb 01 2015 06:44
там не надо ничего проверять
просто должна быть дефаултная функция
Andy
@m-2k
Feb 01 2015 06:44
она есть же
Namdak Tonpa
@5HT
Feb 01 2015 06:44
ну валится же
Andy
@m-2k
Feb 01 2015 06:44
wf:log_level() -> info.
Namdak Tonpa
@5HT
Feb 01 2015 06:44
я же тебе ошибку скинул
Andy
@m-2k
Feb 01 2015 06:44
ну конечно валится потому что ты определил кастовый log_modules без необходимого
если б у тебя там не было log_modules/0 то тоже undef был
Namdak Tonpa
@5HT
Feb 01 2015 06:45
я знаю почему оно не рабоает
Andy
@m-2k
Feb 01 2015 06:45
я тоже
Namdak Tonpa
@5HT
Feb 01 2015 06:45
я не приму комит пока оно не заработает
5HT/n2o#183
Andy
@m-2k
Feb 01 2015 06:46
а чо уже обратная совместимость даже на кастомные кофиги?
Namdak Tonpa
@5HT
Feb 01 2015 06:46
конечно
Andy
@m-2k
Feb 01 2015 06:47
ну тогда сделаю ugly code style ON, по твоей просьбе
Namdak Tonpa
@5HT
Feb 01 2015 06:47
ugly тоже не приму
:-)
относись отвественно
Andy
@m-2k
Feb 01 2015 06:48
а как я буду проверять если ли фан в модуле без проверки есть ли фан в модуле?
s / если / есть
erlang:function_exported/3
Andy
@m-2k
Feb 01 2015 06:49
я знаю. это изящно по-твоему? )
для логирования
Namdak Tonpa
@5HT
Feb 01 2015 06:50
тогда ставь отдельный параметр в конфиг
для логирования чтобы тоже модуль можно было указывать
Andy
@m-2k
Feb 01 2015 06:50
тоже вариант
Namdak Tonpa
@5HT
Feb 01 2015 06:50
чтобы ВООБЩЕ без проверок
log_modules, log_level
все ок смотрится
и делай все одним файлом
! :-)
одним комитом всмысле
Andy
@m-2k
Feb 01 2015 06:51
с другой стороны чек не такой уж долгий
timer:tc(erlang,function_exported,[wf,info2,3]).
{2,false}
Namdak Tonpa
@5HT
Feb 01 2015 06:52
2 милисекунды это вечность
Andy
@m-2k
Feb 01 2015 06:52
АХАХАХАХ
замерь сколько io:format
Namdak Tonpa
@5HT
Feb 01 2015 06:52
надо в rest это убрать
Andy
@m-2k
Feb 01 2015 06:52
там порядки 80
Namdak Tonpa
@5HT
Feb 01 2015 06:52
io надо переписать
это stdlib
Andy
@m-2k
Feb 01 2015 06:53
display/1 - up to 15ms
Namdak Tonpa
@5HT
Feb 01 2015 06:53
так юзай дисплей
Andy
@m-2k
Feb 01 2015 06:53
написал же
Namdak Tonpa
@5HT
Feb 01 2015 06:53
у себя в логере чо
так и шо шо оно для дебага )
Andy
@m-2k
Feb 01 2015 06:54
ну мой лики
или еще какое непредвиденное
СТРАХ, СОЖАЛЕНИЕ
Namdak Tonpa
@5HT
Feb 01 2015 06:54
ясно
так шо даешь комит с конфигом?
Andy
@m-2k
Feb 01 2015 06:54
да, ща
Namdak Tonpa
@5HT
Feb 01 2015 06:55
шо перетегать 2.1 с логлевелом? :-)
Andy
@m-2k
Feb 01 2015 06:55
переделать?
Namdak Tonpa
@5HT
Feb 01 2015 06:55
перетегать
Andy
@m-2k
Feb 01 2015 06:56
как на этом маке отключить автозамену текста
я не понял вопроса
Namdak Tonpa
@5HT
Feb 01 2015 06:57
вопрос не к тебе
это риторический
Andy
@m-2k
Feb 01 2015 06:57
-define(ALLOWED, (wf:config(n2o,log_modules,wf))).
будет
-define(LOG_ALLOWED, (wf:config(n2o,log_modules,wf))).
ok?
Namdak Tonpa
@5HT
Feb 01 2015 06:59
это же неправильно
-define(LOG_ALLOWED, (wf:config(n2o,log_level,wf))).
Andy
@m-2k
Feb 01 2015 06:59
ШТА
Namdak Tonpa
@5HT
Feb 01 2015 06:59
wf это what the fuck :-)
Andy
@m-2k
Feb 01 2015 06:59
-define(LOG_ALLOWED, (wf:config(n2o,log_modules,wf))).
-define(LOG_LEVEL, (wf:config(n2o,log_level,wf))).
Namdak Tonpa
@5HT
Feb 01 2015 07:00
-define(LOG_MODULES, (wf:config(n2o,log_modules,wf))).
-define(LOG_LEVEL, (wf:config(n2o,log_level,wf))).
тогда уже
Andy
@m-2k
Feb 01 2015 07:00
ок
сделаю еще поддержку log_modules() -> any.
Namdak Tonpa
@5HT
Feb 01 2015 07:01
ок
так шо это типа лучше IRC ? :-)
Andy
@m-2k
Feb 01 2015 07:03
хз
лучше, но флудить тут не оч
Namdak Tonpa
@5HT
Feb 01 2015 07:04
а в IRC нормально флудить ? :-)
Andy
@m-2k
Feb 01 2015 07:04
ага )
там не такие жирные по высоте сообщения
Namdak Tonpa
@5HT
Feb 01 2015 07:05
но тут интеграция с гитом шикарная
Alexander Bondarenko
@wiz
Feb 01 2015 07:15
а ещё тут можно грабить сообщения без s/// и разметочка есть.
Namdak Tonpa
@5HT
Feb 01 2015 07:15
We can’t automatically merge this pull request.
шо это за хуйня?
Andy
@m-2k
Feb 01 2015 07:15
я так понял что оно имеет зависимость с предыдущим
Namdak Tonpa
@5HT
Feb 01 2015 07:15
только шо ж было зеленое )
Andy
@m-2k
Feb 01 2015 07:16
ща форкну по новой и заново сделаю
Namdak Tonpa
@5HT
Feb 01 2015 07:17
тяжеловатый гиттер как джаваскрипт приложение
Alexandr
@alle-ox
Feb 01 2015 07:19
kato.im не пробовал?
Namdak Tonpa
@5HT
Feb 01 2015 07:19
пробовал
Alexandr
@alle-ox
Feb 01 2015 07:20
и как?
Namdak Tonpa
@5HT
Feb 01 2015 07:22
слишком похоже на флеш чаты из 2000-х
Alexander Bondarenko
@wiz
Feb 01 2015 07:22
в kato регаться надо, оно не для публики
Namdak Tonpa
@5HT
Feb 01 2015 07:24
Screen Shot 2015-02-01 at 9.22.45 AM.png
без дизайнера бизнес не получится :-)
Andy
@m-2k
Feb 01 2015 07:25
это ж жаббер клиент
psi или gajim например )
Namdak Tonpa
@5HT
Feb 01 2015 07:25
а xmpp клиент типа обязан быть гавняшкой?
Andy
@m-2k
Feb 01 2015 07:25
да
к сожалению
:smile:
Namdak Tonpa
@5HT
Feb 01 2015 07:26
о работает
Andy
@m-2k
Feb 01 2015 07:26
универсальный протокол не для хипстеров же
им telegram'ы подавай
так как выключить проверку орфографии в сафари?
Alexander Bondarenko
@wiz
Feb 01 2015 07:27
дело не в протоколе, а в user experience
если бы виберграмы работали по SOAP всё равно бы ими пользовались т.к. интерфейс хипстерский
Namdak Tonpa
@5HT
Feb 01 2015 07:28
если б работали медленно то не пользовались бы
Andy
@m-2k
Feb 01 2015 07:28
а это уже следствие
Namdak Tonpa
@5HT
Feb 01 2015 07:28
поэтому все популярные месанжеры на бинарных протоколах
Alexander Bondarenko
@wiz
Feb 01 2015 07:28
не, ну они бы сделали бинарный соап и посадили его за десять акселераторов (8
Namdak Tonpa
@5HT
Feb 01 2015 07:28
это мне напоминает совещание в бодишопе )
там тоже пацаны любят компресировать SOAP
говорят все будет быстро и ловко )
Alexander Bondarenko
@wiz
Feb 01 2015 07:29
ну дык. они ж опытные уже в этом деле
Andy
@m-2k
Feb 01 2015 07:30
они будут компрессировать в bpg и потом декодить в js
некий vnc in proof concept
Namdak Tonpa
@5HT
Feb 01 2015 07:34
заметьте что log_level в n2o появился только через 2 года :-)
о чем это говорит?
Andy
@m-2k
Feb 01 2015 07:41
о том что не было промышленной эксплуатации? :smile:
Namdak Tonpa
@5HT
Feb 01 2015 07:42
о том что люди не пользуються логингом n2o а lager
или напрямую своими библиотеками
Andy
@m-2k
Feb 01 2015 07:42
в чем фишка лагер
объясни по хардкору
Namdak Tonpa
@5HT
Feb 01 2015 07:43
мне он не нравится
им пользуется башо
поэтому в тех нодах где риак там лагер
и все через него направляется все равно
даже n2o_io или n2o_log
наш логинг мне нравится:
Andy
@m-2k
Feb 01 2015 07:44
он типа gen_server?
Namdak Tonpa
@5HT
Feb 01 2015 07:44
  1. шо можно изменить файл и сразу все подхватится
  2. шо можно каждый отдельный файл включать выключать
  3. шо можно разные модули логинга подключать
  4. шо нету парс трансформов
  5. шо нету ген серверов никаких
This message was deleted
Andy
@m-2k
Feb 01 2015 07:46
мож gen_server запилить? тогда можно будет забыть про beyond infinity delay на io:format'е
и вообще сторить это всё в ETS
Namdak Tonpa
@5HT
Feb 01 2015 07:46
напиши n2o_ets
и сторь )
rb ж показывает сасловские логи
Andy
@m-2k
Feb 01 2015 07:47
ну я об этом и говорю
Namdak Tonpa
@5HT
Feb 01 2015 07:47
там тоже все в ets
n2o_log это бинарный лог
Andy
@m-2k
Feb 01 2015 07:47
rb?
Namdak Tonpa
@5HT
Feb 01 2015 07:47
report browser
error_logger туда пишет
Andy
@m-2k
Feb 01 2015 07:50
так чо, можно ща редиректы уже делать без WS?
Namdak Tonpa
@5HT
Feb 01 2015 07:50
нет а как без ws у нас в приложения больше ничего кроме ws нет?
статус код 3xx можно вернуть конечно
Andy
@m-2k
Feb 01 2015 07:51
из body код 301 отсылать
Namdak Tonpa
@5HT
Feb 01 2015 07:51
но редирект врядли
так а куда?
куда перенаправлять?
Andy
@m-2k
Feb 01 2015 07:51
ну указать заголовок
хз, я в этом не оч
Namdak Tonpa
@5HT
Feb 01 2015 07:52
там http энпойнт дохлый
вроде как напрямую ?REQ нужно использовать
только так
чтобы хедеры выставить
или хендлер написать свой
Andy
@m-2k
Feb 01 2015 07:53
а этот потискать?
^-^
мило получилось
Namdak Tonpa
@5HT
Feb 01 2015 07:55
wf:context((?CTX)#cx{req=wf:header('header-name',"string",?REQ)}).
шото типа такого
Andy
@m-2k
Feb 01 2015 07:57
мож это в n2o_document пихнуть и навернуть Action который это делает?
Namdak Tonpa
@5HT
Feb 01 2015 07:57
ты пока так попробуй
с тем шо я написал
Andy
@m-2k
Feb 01 2015 07:57
wf:http_code(301, <<"/redirect">>)
прям в боди писать?
Namdak Tonpa
@5HT
Feb 01 2015 07:58
ну то что я написал оно в любом месте прочитает контекст и обратно его запишет
Andy
@m-2k
Feb 01 2015 07:58
ага
Namdak Tonpa
@5HT
Feb 01 2015 07:59
можешь подрять хоть 10 заголовков выставить
до
wf:state(status,301)
Andy
@m-2k
Feb 01 2015 08:03
а, то есть статус всё таки добавили
Namdak Tonpa
@5HT
Feb 01 2015 08:03
этих двух функций достаточно для HTTP редиректов
у нас до этого только с cookie была работа
на уровне хедеров мы не опускались так как все шлется в BERT по WebSocket
зачем нам это легаси :-)
Andy
@m-2k
Feb 01 2015 08:08
я в бади запихал wf:state(status,301). но всё равно 200 приезжает
Namdak Tonpa
@5HT
Feb 01 2015 08:09
проверь в n2o_document:24
Andy
@m-2k
Feb 01 2015 08:12
заголовок не выставляется
Namdak Tonpa
@5HT
Feb 01 2015 08:12
а статус?
может ты в вебсокете?
ты точно в HTTP endpoint?
Andy
@m-2k
Feb 01 2015 08:13
точно
Namdak Tonpa
@5HT
Feb 01 2015 08:13
n2o_websocket:32
Andy
@m-2k
Feb 01 2015 08:13
обновил n2o_document из гита - заработал статус )
Namdak Tonpa
@5HT
Feb 01 2015 08:15
в n2o_document:21 попробуй вместo Ctx1 вставить ?CTX
This message was deleted
Andy
@m-2k
Feb 01 2015 08:17
да, так работает
Namdak Tonpa
@5HT
Feb 01 2015 08:17
блин
ну ладно в след версий войдет
если работает то закомить
Andy
@m-2k
Feb 01 2015 08:18
Ctx2 = wf_context:fold(finish,Ctx#cx.handlers,?CTX), - так и оставлять?
Namdak Tonpa
@5HT
Feb 01 2015 08:18
да
эффекты эффекты :-)
Andy
@m-2k
Feb 01 2015 08:19
мож Action лучше?
Namdak Tonpa
@5HT
Feb 01 2015 08:19
при чем тут Action?
Andy
@m-2k
Feb 01 2015 08:19
я б упростил wf:context((?CTX)#cx{req=wf:header(<<"Location">>,<<"/sasay">>,?REQ)}), до одной функции
Namdak Tonpa
@5HT
Feb 01 2015 08:20
у нас коллизия с нитрогеном по wf:header/2
в n2o считается что это функции бриджа
Andy
@m-2k
Feb 01 2015 08:20
wf:http_redirect/1 например
котрое ставит заголовок и status
Namdak Tonpa
@5HT
Feb 01 2015 08:21
та можно
wf:header(K,V) -> wf:context((?CTX)#cx{req=wf:header(K,V,?REQ)}).
wf:redirect({http,Url}) -> 
     wf:header(?REDIRECT,Url),
     wf:state(status,301);
вот так
и совместимость и непересаемость с функциями бриджа )
Andy
@m-2k
Feb 01 2015 08:25
а не ?CTX и ?REQ не мега костыли случаем?
Namdak Tonpa
@5HT
Feb 01 2015 08:25
это сердце n2o
главная монадка
Andy
@m-2k
Feb 01 2015 08:26
а чо они в define определены хотя по сути fun
Namdak Tonpa
@5HT
Feb 01 2015 08:27
чтобы вот такие штуки выглядели короче
Alexandr
@alle-ox
Feb 01 2015 08:27
@m-2k автокоррекцию, можно только на уровне всей системы выключить.
Andy
@m-2k
Feb 01 2015 08:27
я уже нашел
в сафари грят свое ядро, отключается по right-click
Alexandr
@alle-ox
Feb 01 2015 08:29
о точно.
Andy
@m-2k
Feb 01 2015 08:36
@5HT сделать тебе PR?
Namdak Tonpa
@5HT
Feb 01 2015 08:36
давай
только аккуратненько все
там один файл
три строки
Andy
@m-2k
Feb 01 2015 08:37
я уже потестил
Namdak Tonpa
@5HT
Feb 01 2015 08:42
-% redirect
+% Redirect
:-)
мелкими диверсиями занимаешься?
в нитрогене есть функция wf:q_pl
Namdak Tonpa
@5HT
Feb 01 2015 08:47
Query Plurals into a Proplist
Andy
@m-2k
Feb 01 2015 09:04
да я увидел что поломал орфографию и сделал быстрофикс :smile:
wf это аббр от чего?
os:timestamp/0 кстати предпочтительнее чем erlang:now/0
ибо она блядь в 2 раза быстрее, но не катит если нужны уникальные значения при каждом вызове
Namdak Tonpa
@5HT
Feb 01 2015 09:32
wf stands for Web Framework
erlang:now/0 тоже не гарантирует
os функции вообще использовать нельзя :-)
This message was deleted
Andy
@m-2k
Feb 01 2015 09:37

It is also guaranteed that subsequent calls to this BIF returns continuously increasing values. Hence, the return value from now() can be used to generate unique time-stamps, and if it is called in a tight loop on a fast machine the time of the node can become skewed.

If you do not need the return value to be unique and monotonically increasing, use os:timestamp/0 instead to avoid some overhead.

Namdak Tonpa
@5HT
Feb 01 2015 09:38
бред какой-то написан
есть же make_ref
и вообще генерация id на now кому это в голову могло бы прийти? )
Andy
@m-2k
Feb 01 2015 09:40
make_ref:
Returns an ALMOST unique reference.
The returned reference will re-occur after approximately 2^82 calls;
а now уникальная получается, ток если ее часто вызывать сдвиг по часам будет )
часто это наверное чаще чем миллион раз в секунду
now() - это очень быстро
вполне себе ничо так решение
Namdak Tonpa
@5HT
Feb 01 2015 09:42
остановись а то потом будут писать что в эрланге есть ограничения
2^82 переполнение и не больше чем 10^6 раз в секунду вызывать now/0 )
Andy
@m-2k
Feb 01 2015 09:43
АХАХАХАХАХАХАХ
:smile: :smile: :smile:
Andy
@m-2k
Feb 01 2015 09:52
make_ref оно наверн для кластера
bronzeboyvn
@cuongth
Feb 01 2015 10:58
Будете ли Вы поддерживать n2o работать на cowboy2 ?
Namdak Tonpa
@5HT
Feb 01 2015 11:01
да, надо просто бридж написать
Andy
@m-2k
Feb 01 2015 11:04
чо в новом ковбое нового?
еще больше ненужного кода?
:smile:
Namdak Tonpa
@5HT
Feb 01 2015 11:05
я вообще хочу откатиться на 0.8
но для master ветки надо конечно сделать поддержку 2.0
но там же только рефакторинг начался
cowlib новая будет туда весь http и websocket парсеры переедут
для gun
чтобы gun и cowboy шарили максимально кода
поэтому да, кода увеличится
но в самом ковбое уменьшится
Andy
@m-2k
Feb 01 2015 11:08
@cuongth клёвая ава :smile:
Namdak Tonpa
@5HT
Feb 01 2015 11:09
@cuongth we will, just need a new bridge for cowboy
also as we expecting new cowboy after refactoring cowlib to maximize sharing the code between gun and cowboy, we don't hurry to update the cowboy
moreover in our projects we prefer to use 0.8
Namdak Tonpa
@5HT
Feb 01 2015 11:22
@cuongth btw you have nice projects like ets_cache and erlmarkdown
Andy
@m-2k
Feb 01 2015 11:23
+1
bronzeboyvn
@cuongth
Feb 01 2015 11:23
да мне понятно, у них "preview" статус
Namdak Tonpa
@5HT
Feb 01 2015 11:24
ты используешь n2o или планируешь?
bronzeboyvn
@cuongth
Feb 01 2015 11:25
спасибо, мой ets_cache просто игруска.
erlmarkdown is still buggy when I want to parse source code as Gitgub markdown style
yes, I plan t use n2o
я хочу попробовать новую новинку, n2o
Andy
@m-2k
Feb 01 2015 11:29
новые возможности
bronzeboyvn
@cuongth
Feb 01 2015 11:30
я недавно познал n2o
Andy
@m-2k
Feb 01 2015 11:30
like it?
bronzeboyvn
@cuongth
Feb 01 2015 11:38
конечно да
Andy
@m-2k
Feb 01 2015 11:38
:smile:
bronzeboyvn
@cuongth
Feb 01 2015 11:39
я прочитал первую страницу
и понравился этот framework
Andy
@m-2k
Feb 01 2015 11:43
section of the protocol is also interesting