These are chat archives for synrc/n2o

28th
Dec 2015
Michael A. Mota
@mamsw
Dec 28 2015 02:58
With the n2o framework updates as of October 15, is KVS and mad required to be included for n2o web applications?
Namdak Tonpa
@5HT
Dec 28 2015 03:46
no they are not
Roman
@AstRonin
Dec 28 2015 06:13
@denys-potapov линк на следущую статью в первой поставь плиз, круто будет :)
Andy
@m-2k
Dec 28 2015 06:15
Для хранения связанных списков в kvs используется концепция контейнеров и итераторов. Итератор хранит указатели двусвязных списков, а контейнер хранит указатели на голову и хвост списка.
половина точно не поймут о чем тут речь вообще
ну и ты описал работу с kvs а не с mnesia
Andy
@m-2k
Dec 28 2015 06:25
я не хочу чтобы в интернете появилось еще одно постраничное уёбище
кек
сохранил пикчу, буду теперь всем ее тыкать чтобы пэйджинейшн для какого-то говна не делать где он нахуй не нужен :smile: кек
heiheshang
@heiheshang
Dec 28 2015 09:25
This message was deleted
This message was deleted
Namdak Tonpa
@5HT
Dec 28 2015 09:26
сообщения редактировать можно а не только удалять
heiheshang
@heiheshang
Dec 28 2015 09:26
@denys-potapov пытаюсь по хабру повторить, ошибку выдает на компиляции
`` {undefined_record,schema} ``
не пойму как код обернуть
Namdak Tonpa
@5HT
Dec 28 2015 09:27
там внизу есть кнопка M со стрелкой вниз
heiheshang
@heiheshang
Dec 28 2015 09:27
это я прочитал
делаю не получается
Namdak Tonpa
@5HT
Dec 28 2015 09:28
три обратных апострофа начало, три обратных апострофа конец
heiheshang
@heiheshang
Dec 28 2015 09:28
не канает
Denys
@denys-potapov
Dec 28 2015 09:29
` ```
три таких чертоки
heiheshang
@heiheshang
Dec 28 2015 09:29
где они на клавиатуре, я их найти не могу
Namdak Tonpa
@5HT
Dec 28 2015 09:29
Screen Shot 2015-12-28 at 11.29.23 AM.png
Denys
@denys-potapov
Dec 28 2015 09:30
@m-2k, я и собирался писать больше о квс, и я тоже не до конца понял контейнеры и итераторы
Namdak Tonpa
@5HT
Dec 28 2015 09:30
давай задавай вопросы
heiheshang
@heiheshang
Dec 28 2015 09:30
я хз как их набирать
скорее всего в заголовке не хватает
-include_lib("kvs/include/metainfo.hrl").
-include_lib("kvs/include/kvs.hrl").
heiheshang
@heiheshang
Dec 28 2015 09:34
не а, не помогло
Denys
@denys-potapov
Dec 28 2015 09:36
должно бы работать, а кинь в https://gist.github.com/ свой файл
Namdak Tonpa
@5HT
Dec 28 2015 09:39
show me
> ls("deps/kvs/include").
heiheshang
@heiheshang
Dec 28 2015 09:41
acl.hrl | api.hrl | comment.hrl | config.hrl | entry.hrl | feed.hrl | group.hrl | kvs.\
hrl | metainfo.hrl | product.hrl | sql.hrl | state.hrl | ...
Namdak Tonpa
@5HT
Dec 28 2015 09:42
ну все есть, должно работать, где-то проебал просто что-то :-)
heiheshang
@heiheshang
Dec 28 2015 09:43
ага должно
бляя
нашел
Denys
@denys-potapov
Dec 28 2015 09:45
@AstRonin добавил линк
Namdak Tonpa
@5HT
Dec 28 2015 10:58
жду когда на хабре кто-то напишет что WhatsApp работает на мнезии :-)
Denys
@denys-potapov
Dec 28 2015 11:08
а фейсбука бы вышло с мнезией?
Namdak Tonpa
@5HT
Dec 28 2015 11:08
а вотсап это разве не фейсбук ? :-)
Denys
@denys-potapov
Dec 28 2015 11:09
у WhatsApp ты же читаешь только свои сообщения, и они могут храниться на одной ноде
Namdak Tonpa
@5HT
Dec 28 2015 11:09
в любой информационной системе ты читаешь только "свои" сообщения :-)
Denys
@denys-potapov
Dec 28 2015 11:09
а на фейсбуке ты в ленте можешь (теоретически) увидеть в ленте пост любого пользоватля?
Namdak Tonpa
@5HT
Dec 28 2015 11:09
это все твои сообщения что ты видишь
Denys
@denys-potapov
Dec 28 2015 11:10
то есть, просто копировать в привазанную к тебе БД весть твой фид с лайками друзей?
Namdak Tonpa
@5HT
Dec 28 2015 11:10
да по фидам копии растекаются
месадж пассинг же
имютабл стейт
Denys
@denys-potapov
Dec 28 2015 11:11
мне надо подумать об этом
Namdak Tonpa
@5HT
Dec 28 2015 11:12
kvs так и родился, мы писали хуйню типа фейсбука
только подписками управлял кроль и мы постоянно синхронизировали подписки RabbitMQ и таблицы subscription
тогда это все для riak делалось
Denys
@denys-potapov
Dec 28 2015 11:14
я просто тоже собираюсь писать хуйню типа фейсбука
Namdak Tonpa
@5HT
Dec 28 2015 11:15
ну тогда тебе нужен pub-sub сервер
который скелится
Denys
@denys-potapov
Dec 28 2015 11:15
а оверхед? 1000 человек лайкнуло пост, тебе надо его закинуть всем друзьям то есть около 200 000 записей?
Namdak Tonpa
@5HT
Dec 28 2015 11:16
300 000 сообщений в Erlang VM рассылается за 1 сек
я заебался уже читать лекции по kvs )
просто посмотри как работает Spark
или BerkleyDb
как на BerkleyDb раньше гугл смогли написать
а SQL придумали не для того чтобы посты друзей показывать
а для того чтобы аналитику в OLAP масивах считать
вот где оверхед так это в SQL
ни один человек в здравом уме не будет писать фейсбук на SQL
поэтому нахуй эти Ecto и все эта пиздота я не понимаю
Лапшин просто мало того что ватник так еще и долбоеб.
Namdak Tonpa
@5HT
Dec 28 2015 11:25
вообщем тебя ждет много удивлений :-)
Denys
@denys-potapov
Dec 28 2015 11:27
я буду думать и ждать просветления
я на первом этапе собираюсь обойтись без фида, поделаю другие части
то есть фейсбук внутри себя работает как Diaspora?
Namdak Tonpa
@5HT
Dec 28 2015 11:29
мы в конце концов сделали одну функцию которая добавляет данные в базу и назвали ее kvs:add эта фукнция покрывает 90% use cases, фактически редко мы что-то еще используем кроме этой фкнции
фейсбук — это грубо говоря распределенная AP база + pub sub который работает поверх этой базы
в первом приближении нужно брать riak_pipe или вообще riak_core и строить на нем свой паб саб
но мы написали были свой riak_core, упрощенный без хендофов и госсипа
схема kvs
таблицы #user #group #subscription — это все схема социальной сети той что мы писали
avz, n2o и т.д.
в конце концов мы пришли к тому
что у нас был ОДИН контрол
который отображает фид
с разными стилями
любая прямоугольная область экрана где есть список отображалась этим контролом
Namdak Tonpa
@5HT
Dec 28 2015 11:34
чаты, стена, группы, пейменты, главная
фактически весь сайт состоял из одного таког контрола с разными сеттингами
и второй контрол был HTML редактор
для внесения информации с аплоадом встроенным и т.д.
мы сделали были open source версию (без риака) на мнезии
и назвали ее были cms
она есть на гитхабе но не рабочая
потом началась активная разработка n2o и мы бросили все проекты и сосредоточились на кристализации библиотек
Denys
@denys-potapov
Dec 28 2015 11:44
то есть ты рекомендуешь начать с квс поверх мнезии? а потом придумать как масштабировать?
Namdak Tonpa
@5HT
Dec 28 2015 11:45
именно для этого kvs и создавался
чтобы прототип на мнезии писать
Denys
@denys-potapov
Dec 28 2015 11:45
ок, спасибо
Namdak Tonpa
@5HT
Dec 28 2015 11:45
а потом переходить уже на riak или что там
но для большинства проектов даже распределенная база не нужна :-)
можно просто все шардировать и отдельно все шарды супервайзить
вообщем вариантов куча, но если в сети есть меш сабскрипшинов
то полюбому нада AP + PubSub
Andy
@m-2k
Dec 28 2015 12:18
как нехорошо про лапшина, а он тебя на хабр пригласил :smile:
так чо лучше? пабсаб распределенный или месадж пассинг
heiheshang
@heiheshang
Dec 28 2015 12:48
в примере есть код users:init(), откуда этот юзерс берется ?
Namdak Tonpa
@5HT
Dec 28 2015 12:55
из макроса USERS в review.erl
heiheshang
@heiheshang
Dec 28 2015 14:07
не понимаю, там есть define(USERS а тут users:init()
Andy
@m-2k
Dec 28 2015 14:17
ты про эрланг читал ваще?
что таакое -define знаешь?
блядь
это вообще создание таблицы в памяти
init() -> ets:new(users, [public, named_table, {keypos, #user.id}]).
в ETS создается таблица users с параметрами
#user.id - это порядковый номер поля id в тапле user
{keypos, integer()} указывает какую по счету колонку (поле в рекордах) считать за ключ
public - все процессы могут писать и читать
Andy
@m-2k
Dec 28 2015 14:25
users.erl - это вообще интерфейс
юзеры в ETS берутся при старте приложения конечно же
heiheshang
@heiheshang
Dec 28 2015 14:26
я еще не так силен чтобы сразу въезжать что и как
опыт дело наживное
Andy
@m-2k
Dec 28 2015 14:26
ну я те вроде все расписал
задавай свои ответы
heiheshang
@heiheshang
Dec 28 2015 14:46
postback на #link можно повесить ?
все вижу что можно
Andy
@m-2k
Dec 28 2015 16:22
но href будет приоритетнее