These are chat archives for synrc/n2o

24th
Dec 2015
Ram Kumar
@ramka001
Dec 24 2015 05:05
How to disable the sample binary file from being auto generated when using the mad builder ?
Namdak Tonpa
@5HT
Dec 24 2015 06:12
mad rel script yourname
just don't perform pla command
Namdak Tonpa
@5HT
Dec 24 2015 06:19
well it should be fixed
you're right
mad pla should just produce .applist
addded resolve to mad api
Ram Kumar
@ramka001
Dec 24 2015 10:20
Thanks @5HT, that solved my problem. I'm using mad to build and run my app in the background using mad deps compile start , this is working. But I'm not sure how to kill it. I've tried using mad stop but its not working. In the long run i would need to put the command in a build script to start and stop the script
Roman
@AstRonin
Dec 24 2015 10:21
to_erl .
q().
Andy
@m-2k
Dec 24 2015 13:10
Use ./mad rep for develop
heiheshang
@heiheshang
Dec 24 2015 13:46
Подскажите как повесить на 80 порт сервер, меняю в настройках в 2-х файлах, при запуске приложение валится. sys.config и при старте ковбоя
Andy
@m-2k
Dec 24 2015 13:47
так и хочется написать телепаты в отпуске
в какой-то из jabber конф был прям такой прикольный фак как писать вопросы чтобы тебе смогли помочь
что за пример ты скопировал
с какой ошибкой падает
как ты пофиксал конфиги
Roman
@AstRonin
Dec 24 2015 13:50
скайп отключи :))
Andy
@m-2k
Dec 24 2015 13:50
лол
heiheshang
@heiheshang
Dec 24 2015 14:06
sys.config [
{n2o, [{port,80},
{app,review},
{upload,"./apps/review/priv/static/"},
{search,"/Users/5HT/depot/synrc/synrc.com/apps//doc/web/.htm"},
{db_driver,"mysql"},
{db_hostname, "localhost"},
{db_username, "brahik"},
{db_password, "brashik"},
{db_database, "brashik"},
{dbprefix, "oc"},
{route,routes},
{mq,n2o_mq},
{formatter,bert},
{log_modules,config},
{log_level,config},
{log_backend,n2o_log},
{session,n2o_session},
{origin,<<"*">>},
{bridge,n2o_cowboy},
{pickler,n2o_pickle},
{erroring,n2o_error},
{event,pickle}]},
{kvs, [{dba,store_mnesia},
{schema, [kvs_user, kvs_acl, kvs_feed, kvs_subscription ]} ]}
].

init([]) -> case cowboy:start_http(http,3,port(),env()) of
{ok, _} -> ok;
{error,_} -> halt(abort,[]) end,

users:init(),
users:populate(?USERS),
kvs:join(),

             {ok, {{one_for_one, 5, 10}, []}}.

env() -> [ { env, [ { dispatch, points() } ] } ].
static() -> { dir, "apps/review/priv/static", mime() }.
n2o() -> { dir, "deps/n2o/priv", mime() }.
mime() -> [ { mimetypes, cow_mimetypes, all } ].
port() -> [ { port, wf:config(n2o,port,80) } ].

oper@linux-9y35:~/Programs/brashik> ./mad deps compile plan repl
==> dependency: "git://github.com/evanmiller/erlydtl"; tag: {tag,"0.8.0"}
==> dependency: "git://github.com/synrc/nitro"; tag: {tag,"0.9"}
==> dependency: "git://github.com/synrc/mad"; tag: {tag,"1.9"}
==> dependency: "git://github.com/synrc/sh"; tag: {tag,"1.9"}
==> dependency: "git://github.com/synrc/fs"; tag: {tag,"1.9"}
==> dependency: "git://github.com/synrc/active"; tag: {tag,"1.9"}
==> dependency: "git://github.com/synrc/rest"; tag: {tag,"2.9"}
==> dependency: "git://github.com/synrc/n2o"; tag: {tag,"master"}
==> dependency: "git://github.com/sile/jsone.git"; tag: {tag,"v0.3.3"}
==> dependency: "git://github.com/extend/cowboy"; tag: {tag,"1.0.1"}
==> dependency: "git://github.com/ninenines/cowlib.git"; tag: "1.0.0"
==> dependency: "git://github.com/ninenines/ranch.git"; tag: "1.0.0"
==> dependency: "git://github.com/uwiger/gproc.git"; tag: {tag,"0.3"}
==> dependency: "git://github.com/synrc/kvs"; tag: {tag,"2.9"}
==> "erlydtl"
==> "nitro"
==> "mad"
==> "sh"
==> "fs"
==> "active"
==> "rest"
==> "n2o"
==> "jsone"
==> "cowboy"
==> "cowlib"
==> "ranch"
==> "gproc"
==> "kvs"
==> "/home/oper/Programs/brashik"
==> "/home/oper/Programs/brashik/apps"
==> "/home/oper/Programs/brashik/apps/review"
OK
Ordered: [kernel,stdlib,fs,ranch,crypto,compiler,syntax_tools,mnesia,inets,
gproc,kvs,cowlib,cowboy,n2o,review,active,erlydtl,jsone,mad,nitro,
rest,sh]
OK
Configuration: [{n2o,[{port,80},
{app,review},
{upload,"./apps/review/priv/static/"},
{search,"/Users/5HT/depot/synrc/synrc.com/apps//doc/web/.htm"},
{db_driver,"mysql"},
{db_hostname,"localhost"},
{db_username,"brahik"},
{db_password,"brashik"},
{db_database,"brashik"},
{dbprefix,"oc"},
{route,routes},
{mq,n2o_mq},
{formatter,bert},
{log_modules,config},
{log_level,config},
{log_backend,n2o_log},
{session,n2o_session},
{origin,<<"*">>},
{bridge,n2o_cowboy},
{pickler,n2o_pickle},
{erroring,n2o_error},
{event,pickle}]},
{kvs,[{dba,store_mnesia},
{schema,[kvs_user,kvs_acl,kvs_feed,kvs_subscription]}]}]
Applications: [kernel,stdlib,fs,ranch,crypto,compiler,syntax_tools,mnesia,
inets,gproc,kvs,cowlib,cowboy,n2o,review,active,erlydtl,jsone,
mad,nitro,rest,sh]
Erlang/OTP 18 [erts-7.0.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
Eshell V7.0.3 (abort with ^G)
1> Аварийный останов

как-то так
Andy
@m-2k
Dec 24 2015 14:11
Дмитрий, перелогиньтесь :smile:
у меня норм
192:samples m$ sudo ./mad rep
Repl Params: []
Applications: ****
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.0  (abort with ^G)
1> application:start(cowboy).
{error,{already_started,cowboy}}
2> wf:config(n2o,port,undefined).
80
Andy
@m-2k
Dec 24 2015 14:16
не из-под рута так:
Eshell V7.0  (abort with ^G)
1> Can't start Web Server: {badmatch,{error,eacces}}
Abort trap: 6
но вообще нормальная практика держать nginx поверх ковбоя
{ port, wf:config(n2o,port,8000) } ]. можно не менять, тут просто значение по умолчанию если в sys.config не найдется
Denys
@denys-potapov
Dec 24 2015 14:21
а почему может не работать wf:user()?
у меня локально все работает, а переношу на другой сервер выдает undefined
при том, что сразу после установки значения функция возвращает его
    wf:user(User),
    wf:wire(#alert{text="wf:user" ++ wf:user()}),
heiheshang
@heiheshang
Dec 24 2015 14:30
а почему нормальная практика nginx поверх ковбоя, он что плохо статику отдает ? а как virtual host сделать с n2o ?
Andy
@m-2k
Dec 24 2015 14:31
@denys-potapov мож у тебя куки не выставляются
@heiheshang потому что nginx няшка
@heiheshang что за Vhost и на чем сделать
Andy
@m-2k
Dec 24 2015 14:36
@heiheshang смотри на n2o-sid в куках и в ETS таблицу cookies c ключом {<<"sid">>,<<"user">>}
Denys
@denys-potapov
Dec 24 2015 14:37
кука есть - site-sid
Andy
@m-2k
Dec 24 2015 14:38
клас. но выяснить причину придется тебе
Denys
@denys-potapov
Dec 24 2015 14:42
ets:lookup(cookies,{<<"7b5f42ab45e48b6832dcf0dc1fb742fb">>,<<"user">>}).
[{{<<"7b5f42ab45e48b6832dcf0dc1fb742fb">>,<<"user">>},
  <<"/">>,
  {1450,967175,798678},
  {{2015,12,24},{9,41,15}},
  "Denys Potapov"}]
странно, но заработало, хотя я ничего не менял
Roman
@AstRonin
Dec 24 2015 14:47
@heiheshang не host, а proxy нужен, примерно так http://beebole.com/blog/erlang/web-application-on-erlang-configure-nginx-with-mochiweb/
heiheshang
@heiheshang
Dec 24 2015 14:51
@m-2k на одном порте сделать повесить несколько доменов
Andy
@m-2k
Dec 24 2015 15:03
@denys-potapov дело мастера боится
@heiheshang стартуешь например свою сотню приложений на портах 8000-8100 и делаешь proxy_pass в server {} секции nginx
heiheshang
@heiheshang
Dec 24 2015 16:06
не пойму как jquery объект активировать. При нажатии на кнопку у меня возвращается форма через wf:insert_bottom, форма должна открыться через fancybox , как мне передать вызов javascript вместе с формой, вижу что форма вставляется в DOM осталось $.fancybox вызвать в обработчике события
Andy
@m-2k
Dec 24 2015 16:17
wf:wire("alert('test js');"),
wf:wire(#bind{...}),
wf:wire(#bind{target=Editable,type=focusout,postback="e.target.innerText=trim(e.target.innerText);"}),
heiheshang
@heiheshang
Dec 24 2015 16:26
уря!!! я просто fancybox неправильно вызывал
Denys
@denys-potapov
Dec 24 2015 17:39
я закончил первую статью о н2о - http://habrahabr.ru/post/273979/
Roman
@AstRonin
Dec 24 2015 17:54
круть, а давай для полноты ощущений будем хранить данные не в mnesia, а где-то еще, mysql или mongo...
Denys
@denys-potapov
Dec 24 2015 18:11
мнезия удобна для туториала потому, что ее не надо устанавливать и настраивать
но ок, попробую потом про монгу дописать
Roman
@AstRonin
Dec 24 2015 18:25
ну да, но там и не о чем рассказывать нового, про мнезию можно почитать во многих туториалах, а вот как работает n2o с другими базами это интересней
да и переход с других платформ будет легче, т.к. не надо будет замарачиваться с изучением мнезии, которая не так уж и нужна...
Denys
@denys-potapov
Dec 24 2015 18:38
я все равно использую kvs, так что замена БД теоретически должна быть безболезненной
Andy
@m-2k
Dec 24 2015 18:44
Kvs это лучшее начало
Denys
@denys-potapov
Dec 24 2015 18:56
а postgres в kvs уже можно использовать?
Andy
@m-2k
Dec 24 2015 19:04
Ну глянь в гитхаб, чо
Denys
@denys-potapov
Dec 24 2015 21:04
снова не логинится, @m-2k сесионная кука не устанавливается
и я не могу понять, в какой момент она должна появится?
Andy
@m-2k
Dec 24 2015 21:11
Ща нет времени, сорян, глянь n2o_session, она (<<auth>>) через js настолько я помню ставилась. А <<user>> после того как wf:user установишь
Разные браузеры потести, кеш три, расковыряй сам, там ничего сложного
Denys
@denys-potapov
Dec 24 2015 21:14
ок, спасибо, буду читать
Denys
@denys-potapov
Dec 24 2015 22:06
добавил в функции логина - n2o_session:ensure_sid([],?CTX,[]),
не понял, почему функция не вызывается автоматически - но так работает
Andy
@m-2k
Dec 24 2015 22:07
Не всем нужны куки
А вообще да, это устанавливает куки
Теперь понятно почему у тебя не всегда работало
Denys
@denys-potapov
Dec 24 2015 22:34
а флаг {auto_session,enabled} в sys.config не должен автоматически вызывать ensure_sid?
Andy
@m-2k
Dec 24 2015 22:41
Да хз, макс чот там пофиксать хотел
@5HT