These are chat archives for synrc/n2o

11th
Jan 2016
heiheshang
@heiheshang
Jan 11 2016 06:24
aloha
подскажите как в рекорд писать кирилицу ? описал в рекорде поле типа string(), кирилицу в него kvs:put отказывается писать, несовпадение типов типо
Namdak Tonpa
@5HT
Jan 11 2016 07:39
чего чего
какое несовпадение типов
ты что диалайзер используешь?
Andy
@m-2k
Jan 11 2016 07:40
<<"кирилица"/utf8>>
heiheshang
@heiheshang
Jan 11 2016 07:41
так не конает
не использую я диалайзер
Namdak Tonpa
@5HT
Jan 11 2016 07:41
что значит не канает ? :-)
ошибка есть какая-то?
heiheshang
@heiheshang
Jan 11 2016 07:42
я так делаю и получаю
exited: {{aborted,
                 {bad_type,
                     {config_site,"default",undefined,0,
                         {"/static/img/logo.png","auto-423427"},
                         {"Roga && Copyta","auto-423425"},
                         {"+7-924-746-04-44, +7-924-746-01-44","auto-423423"},
                         {<<208,161,208,176,208,185,209,130,32,208,146,208,184,
                            208,183,208,184,209,130,208,186,208,176>>,
                          "auto-423421"},
                         {<<208,156,208,184,208,189,208,184,208,188,208,176,
                            208,187,209,140,208,189,209,139,208,185,32,209,129,
                            208,176,208,185,209,130,32,208,184,208,183,32,49,
                            32,209,129,209,130,209,128,208,176,208,189,208,184,
                            209,134,209,139>>,
                          "auto-423419"},
                         {"+7-924-746-04-44","auto-423417"},
                         {"+7-924-746-01-44","auto-423415"},
                         {<<209,129,32,57,58,48,48,32,208,180,208,190,32,50,48,
                            58,48,48>>,
                          "auto-423413"}}}},
             {review,start,[normal,[]]}}
    type: temporary
 kvs:put(#config_site{id="default",logo={"/static/img/logo.png",wf:temp_id()},
               company_name={"Roga && Copyta",wf:temp_id()},
               phone_header={"+7-924-746-04-44, +7-924-746-01-44",wf:temp_id()},
               h1={<<"Сайт Визитка"/utf8>>,wf:temp_id()},
               p={<<"Минимальный сайт из 1 страницы"/utf8>>,wf:temp_id()},
               phone_row_1={"+7-924-746-04-44",wf:temp_id()},
               phone_row_2={"+7-924-746-01-44",wf:temp_id()},
               work_time={<<"с 9:00 до 20:00"/utf8>>,wf:temp_id()}
                                       })
Namdak Tonpa
@5HT
Jan 11 2016 07:43
блядь
Andy
@m-2k
Jan 11 2016 07:43
Лол
Namdak Tonpa
@5HT
Jan 11 2016 07:43
вчера ж только говорил что id должны быть integer
heiheshang
@heiheshang
Jan 11 2016 07:44
без кирилицы отлично строковый канает
Andy
@m-2k
Jan 11 2016 07:44
Temp id в базу сохраняет, лол
Ты в курсе что он повторяется?
Namdak Tonpa
@5HT
Jan 11 2016 07:44
да и название тут пиздец #config_site
heiheshang
@heiheshang
Jan 11 2016 07:45
а название то чем не нравится ?
id числовой тут не при чем, с числовым то же самое выдает
Namdak Tonpa
@5HT
Jan 11 2016 07:59
> kvs:put(#user{id= <<"12"/utf8>>}).
ok
в чем проблема?
проблема не в этом у тебя
а в другом месте где-то
heiheshang
@heiheshang
Jan 11 2016 08:04
так пойдет рекорд описывать ?
-record(config_site, {?CONTAINER,
                      logo ::{string(),string()} ,
                      company_name :: {string(),string()},
                      phone_header :: {string(),string()},
                      h1 :: {string(),string()},
                      p :: {string(),string()},
                      phone_row_1 :: {string(),string()},
                      phone_row_2 :: {string(),string()},
                      work_time :: {string(),string()}}).
Andy
@m-2k
Jan 11 2016 08:41
-record(config_site, {?CONTAINER,
                      logo,
                      company_name,
                      phone_header,
                      h1,
                      p,
                      phone_row_1,
                      phone_row_2,
                      work_time}).
пофиксал тебя
heiheshang
@heiheshang
Jan 11 2016 08:41
@m-2k а что это меняет в принципе ?
Andy
@m-2k
Jan 11 2016 08:42
а что меняет в приципе твой предыдущий вопрос?
heiheshang
@heiheshang
Jan 11 2016 08:43
я спрашивал так можно делать
Andy
@m-2k
Jan 11 2016 08:46
зачем тебе эти стринги?
Andy
@m-2k
Jan 11 2016 08:57
более того {<<"Сайт Визитка"/utf8>>,wf:temp_id()}, это :: {binary(),list()}
@5HT wf:temp_id/0 кстати в бинарь не хочешь переписать?
Namdak Tonpa
@5HT
Jan 11 2016 09:18
это ж контейнер ты описал
зачем тебе кастомный контейнер?
ты просто не понимаешь что ты делаешь :-)
ты читал README.md к KVS ?
Andy
@m-2k
Jan 11 2016 12:11
действительно
heiheshang
@heiheshang
Jan 11 2016 13:20
@5HT как я его прочитаю если там все по не русски
Namdak Tonpa
@5HT
Jan 11 2016 13:20
ох
вообщем смотри
есть понятие итератор, то что мы вставляем в цепочку
и какое-то место где записана некая метаинформация о цепочке
это у нас называется контейнер
дефаултный контейнер feed содержит count (количество элементов в цепочке, которое обновляется после каждой вставки через kvs:add), а также top — указатель на первый элелмент цепочки (который всегда #iterator)
ты не должен пользоватся функциями kvs:put kvs:get
ты должен использовать kvs:add
и указывать id как id=kvs:next_id("user",1) для вставки в таблицу user например
и feed_id как feed_id={container,name,you,want}
любой уникальный терм
например
heiheshang
@heiheshang
Jan 11 2016 13:26
а вместо kvs:get что я должен использовать ?
Namdak Tonpa
@5HT
Jan 11 2016 13:28
kvs:add(#user{email="maxim@synrc.com",id=kvs:next_id("user",1),feed_id={n2o,users}}).
kvs:add(#user{email="doxtop@synrc.com",id=kvs:next_id("user",1),feed_id={n2o,users}}).
kvs:add(#user{email="m2k@synrc.com",id=kvs:next_id("user",1),feed_id={n2o,users}}).
только user2 закоментируй или вытащи новый kvs
используй функцию kvs:fold для траверсала по цепочке
и kvs:remove для удаления из цепочки
kvs:put и kvs:get — это низкоуровневые функции патчинга рекорда в базе без перелинковки полей next и prev в цепочке
их можешь вызывать только тогда когда нужно пропатчить а связи оставить без изменений
heiheshang
@heiheshang
Jan 11 2016 13:34
да у меня запись одна, мне цепочки не нужны, я вместо того чтобы файл конфига читать, решил по быстрому kvs заюзать
Namdak Tonpa
@5HT
Jan 11 2016 13:34
тогда можешь удалить ?CONTAINER макрос
зачем тебе поля контейнера
важно чтобы ты понимал как с цепочками работать
heiheshang
@heiheshang
Jan 11 2016 13:35
тогда поле id надо добавить, правильно ?
Namdak Tonpa
@5HT
Jan 11 2016 13:35
да
второй элемент тапла в KVS использует как id
называться оно может как угодно
первый элемент тапла — это имя рекорда
heiheshang
@heiheshang
Jan 11 2016 13:36
ну поэтому я просто скопипастил, для меня наличие prev next для одной записи не нужны
Namdak Tonpa
@5HT
Jan 11 2016 13:37
например таблица #config имет только два поля {key,value}
тогда и ?CONTAINER не должно быть
но #config служебная используется для версионирования и конфигурации kvs
если ключи не имена таблиц то можно ее тоже использовать
для сохранения всякого
чтобы таблиц не плодить
#config это типа options для kvs