These are chat archives for synrc/n2o

19th
Jan 2016
Ilya Gorskin
@Revent
Jan 19 2016 04:57
Ranch listener http terminated in n2o_stream:websocket_init/3 with reason: bad record cx in n2o_proto:init/4 line 17
че то после обновления форматера поломалось
Andy
@m-2k
Jan 19 2016 09:36
mad cle com rep
Поломалось у него :smile:
Ilya Gorskin
@Revent
Jan 19 2016 13:18
если бы все так просто было
Namdak Tonpa
@5HT
Jan 19 2016 13:19
все и есть очень просто
сложности только в наших мыслях и поступках
Ilya Gorskin
@Revent
Jan 19 2016 13:19
@5HT скажи что посмотрть то?
Namdak Tonpa
@5HT
Jan 19 2016 13:20
нужно посмотреть на ответ который тебе дал один из членов команды n2o )
сразу после твоего вопроса
Ilya Gorskin
@Revent
Jan 19 2016 13:20
я это делал :)
Namdak Tonpa
@5HT
Jan 19 2016 13:21
неправильно значит делал
тебе надо обновить nitro n2o и все приложения которые использовали nitro и n2o удалив их ebean потому что в этом месяце добавилось одно поле в #cx которое ломает бинарную совместимость.
фраза bad record cx означает что какой-то ebean в репозитории со старым кодом
либо ты используешь старый nitro и новый n2o или старый n2o и новый нитро
Ilya Gorskin
@Revent
Jan 19 2016 13:25
я вообше депы сносил
Namdak Tonpa
@5HT
Jan 19 2016 13:25
ну мне больше нечего сказать
разбирайся
говорю версии депсов у тебя не совпадают
где-то что-то перекрывается
heiheshang
@heiheshang
Jan 19 2016 13:26
каталог с мнезия то же снеси
Namdak Tonpa
@5HT
Jan 19 2016 13:27
./mad dep com pla rep работает?
для n2o/sample ?
если работает, то бери и исследуй методом бисекционирования
чем твой проект отличается от этого
Ilya Gorskin
@Revent
Jan 19 2016 13:29
да пробовал уже
Namdak Tonpa
@5HT
Jan 19 2016 13:30
было бы легче если бы ты мне дал адрес своего репозитория
чтобы я тут не пиздел зря
Ilya Gorskin
@Revent
Jan 19 2016 13:30
да локальный реп
Namdak Tonpa
@5HT
Jan 19 2016 13:31
тогда извини
ничем не могу помочь
может это поможет?
Namdak Tonpa
@5HT
Jan 19 2016 13:50
кому тебе или мне? :-)
Ilya Gorskin
@Revent
Jan 19 2016 13:50
тебе :)
Namdak Tonpa
@5HT
Jan 19 2016 13:50
у меня для тебя последняя фраза есть, раз ты не хочешь читать что я пишу
знаешь какая?
Ilya Gorskin
@Revent
Jan 19 2016 13:51
я читал что ты пишешь честно
Namdak Tonpa
@5HT
Jan 19 2016 13:51
тебе нужно сравнить два файла, даже две строки
Ilya Gorskin
@Revent
Jan 19 2016 13:52
каких?
Namdak Tonpa
@5HT
Jan 19 2016 13:53
  1. deps/n2o/include/wf.hrl#L5
  2. deps/nitro/src/render/wf_event.erl#L7
Ilya Gorskin
@Revent
Jan 19 2016 13:55
разные
Namdak Tonpa
@5HT
Jan 19 2016 13:56
перечитай то что я тебе написал
10 раз
сделаешь для меня?
@5HT
ну мне больше нечего сказать
разбирайся
говорю версии депсов у тебя не совпадают
где-то что-то перекрывается
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 14:01
kvs_acl вообще живая вещь сейчас? Попробовал ей пользоваться как в примере "cms", получаю ошибку:
34> kvs_acl:define_access({user, 2}, post, allow).
** exception exit: badarith
     in function  mnesia_tm:non_transaction/5 (mnesia_tm.erl, line 743)
     in call from kvs_acl:define_access/3
Namdak Tonpa
@5HT
Jan 19 2016 14:02
предлагаю удалить его
Ilya Gorskin
@Revent
Jan 19 2016 14:02
т.е нитро в ребар конфиге всегда должен быть выше n2o?
Namdak Tonpa
@5HT
Jan 19 2016 14:02
не всегда а только в 3.1 релизе
я ж не знаю какие у тебя релизы
вы ж блядь нихуя не показываете
и хотите что бы я вам во всем помог
я ж не знаю блядь ни какяа версия n2o
нихуя
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 14:07
Так чего, не поддерживается kvs_acl? Нет так нет, там, в общем, никакого сверхъестественного функционала не содержится, можно своё такое написать; просто не хотелось велосипедизма.
Namdak Tonpa
@5HT
Jan 19 2016 14:08
ну kvs_acl вообще должен быть в samples
просто я не хотел структуру каталогов kvs усложнять
т.е. это просто сниппеты примеры, что вы можете ложить часть API вместе с модулями которые относятся к определенной группе рекордов
например #access и #acl
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 14:12
Т.е. написать свою версию kvs_acl не будет велосипедизмом? O'k.
Namdak Tonpa
@5HT
Jan 19 2016 14:12
нет
если получится хорошая, заменим ее в kvs
главное не больше 40 строчек
Ilya Gorskin
@Revent
Jan 19 2016 14:19
@5HT спасибо тебе о мастер
Namdak Tonpa
@5HT
Jan 19 2016 14:28
> rr(kvs_acl).
[access,acl,column,container,id_seq,interval,iterator,kvs,
 log,operation,query,schema,table,user,user2]
(mac@127.0.0.1)5> kvs:add(#access{id=120,accessor="maxim"}).
{ok,#access{id = 120,version = undefined,container = acl,
            feed_id = access,prev = undefined,next = undefined,
            feeds = [],guard = false,etc = undefined,
            entry_id = undefined,acl_id = undefined,accessor = "maxim",
            action = undefined}}
(mac@127.0.0.1)8> kvs:all(acl).
[#acl{id = access,top = 120,count = 1}]
(mac@127.0.0.1)9> kvs:add(#access{id=121,accessor="maxim",action=read}).
{ok,#access{id = 121,version = undefined,container = acl,
            feed_id = access,prev = 120,next = undefined,feeds = [],
            guard = false,etc = undefined,entry_id = undefined,
            acl_id = undefined,accessor = "maxim",action = read}}
> kvs:entries(kvs:get(acl,access),access,-1).
[#access{id = 120,version = undefined,container = acl,
         feed_id = access,prev = undefined,next = 121,feeds = [],
         guard = false,etc = undefined,entry_id = undefined,
         acl_id = undefined,accessor = "maxim",action = undefined},
 #access{id = 121,version = undefined,container = acl,
         feed_id = access,prev = 120,next = undefined,feeds = [],
         guard = false,etc = undefined,entry_id = undefined,
         acl_id = undefined,accessor = "maxim",action = read}]
у меня ACL работает
ACL это пример использования кастомных контейнеров
поэтому его не хотелось бы удалять
defined_access/3 не работает конечно, подтверждаю
но это хелпер ее можно просто удалить
для чека прав надо использовать kvs:fold
вместо моей kvs:entries в этом примере
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 14:43
А посмотреть пример kvs:fold/7 где-нибудь можно?
И почему она будет быстрее kvs:index, если мы хотим выбрать все пермишены пользователя, она ж вроде по всей таблице пойдёт?
Andy
@m-2k
Jan 19 2016 14:45
acl это ваще ебень
Namdak Tonpa
@5HT
Jan 19 2016 15:02
kvs:index не будет универсально для всех бекендов
и не покажет как пользоваться кастомными контейнерами
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 15:13
Так. Я могу пройтись по access вот таким вот образом:
L = kvs:entries(kvs:get(acl,access),access,undefined),
lists:foldl(fun (X, Acc) when X#access.accessor =:= 2 -> [X|Acc]; (X, Acc) -> Acc end, [], L).
Но подозреваю, что kvs:fold/7 позволяет сделать то же изящнее
Однако самостоятельное курение кода kvs:fold/7 не помогло мне понять, что к чему
Namdak Tonpa
@5HT
Jan 19 2016 15:14
kvs:fold просто память не жрет
а kvs:entries жрет
на длианных цепочках
с помощью kvs:fold можно грубо говоря перепахать всю базу
Andy
@m-2k
Jan 19 2016 15:18
@yashrk фолд это тот же траверс
изящнее врятли. эффективнее - да
то есть тебе надо фид дернуть и подставить его параметры в фолд
Namdak Tonpa
@5HT
Jan 19 2016 15:29
kvs:traveral это хуйня, это такое же как kvs:entries
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 15:31
Так пример fold-то можно? А то у меня что-то не получается нифига
Вот я сделал как в примере от @5HT. Сочетание kvs:entries и lists:foldl позволяет мне забрать все права для пользователя с id равным 2.
Как теперь то же сделать через kvs:fold?
Namdak Tonpa
@5HT
Jan 19 2016 15:38
ну если ты действительно сделал через траверсал
то тебе надо 1 параметр поменять на функцию и все
traversal(Table, Start, Count, Direction, Driver)->
    fold(fun(A,Acc) -> [A|Acc] end,[],Table,Start,Count,Direction,Driver).
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 15:39
Я через traversal ничего пока не делал
О, копипаста помогла
kvs:fold(fun (X, Acc) when X#access.accessor =:= 2 -> [X|Acc]; (X, Acc) -> Acc end,[],access,1,-1,#iterator.next,#kvs{mod=store_mnesia}).
Вот так вроде работает.
Yuriy Al. Shirokov
@yashrk
Jan 19 2016 15:48
Короче, буду делать так.
{ok, Container} = kvs:get(acl, access),
kvs:fold(
               fun (X, Acc) when X#access.accessor =:= 2 -> [X|Acc]; (X, Acc) -> Acc end, 
               [],
               access,
               Container#acl.top,
               undefined,
               #iterator.prev,
               #kvs{mod=store_mnesia}
).
Daniel Goertzen
@goertzenator
Jan 19 2016 16:45
I got a simple "hello world" running (http://blog.crashdump.io/hello-n2o.html#.Vp5oeGcl8WM), but as I try to extend this to use dtl I get this error: (https://gist.github.com/goertzenator/b521a3a7a06fd14a7e07) Any ideas on how to get past this?
Daniel Goertzen
@goertzenator
Jan 19 2016 17:51
It looks like I'm missing some of the config that the review app has. I will dig into that and see where it gets me. Thanks for the lead.
Andy
@m-2k
Jan 19 2016 22:38
@5HT paperjs клевая штука :fire:
Namdak Tonpa
@5HT
Jan 19 2016 22:38
я ж грил
Andy
@m-2k
Jan 19 2016 22:39
как бы еще web gl шейдеры накладывать
типа дождь там или мрак на сцену навести
Namdak Tonpa
@5HT
Jan 19 2016 22:39
та есть для web gl фейсбук что-то недавно рекламировал
Andy
@m-2k
Jan 19 2016 22:39
там?
я ток у threejs видел
но я так понимаю тот для хардкора и 3d
Namdak Tonpa
@5HT
Jan 19 2016 22:53
ну для звездного пространства трехмерного на бекграунде, да
Andy
@m-2k
Jan 19 2016 22:57
да мне вот такое делать http://tympanus.net/Development/RainEffect/
Namdak Tonpa
@5HT
Jan 19 2016 22:58
это шейдеры нада
Andy
@m-2k
Jan 19 2016 23:00
о том и речь. я вообще смутно понимаю что это, не то что как их заюзать. мануалы чот не гуглятся
слоупочу третий день
:smile:
лол. .getContext('webgl') от канваса paperjs возвращает null. чтобы это значило
про шейдеры с paperjs можно забыть?