These are chat archives for synrc/n2o

5th
Mar 2016
Namdak Tonpa
@5HT
Mar 05 2016 04:06
n2o/samples — это сампл и по n2o и по nitro
раньше вообще nitro и n2o были одним проектом
знаю еще два испльзования нитро
в качестве статических генераторов HTML контента, без N2O, в качестве консольных утилит
в сентябре прошлого года произошло это разделение
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 05:00

wf:async(Name, Fun) создает процесс с уникальным на всю ноду именем Name, весь рендер в этом процессе кэшируется, а wf:flush() передает этот кэш процессу-владельцу сокета?

И, кстати, имеет смысл создавать кластер на одной машине на разных портах или на разных машинах? Хочу научиться в кластеры и попробовать сделать автоматический перенос перегруженной игровой локации на другую ноду со всеми пользователями. Ну, или хотя бы через админку.

Namdak Tonpa
@5HT
Mar 05 2016 05:00
по первому вопросу да
я вот счас веду переговоры с остинелли чтобы он запили в его https://github.com/ostinelli/syn пабсаб, тогда n2o будет уметь в кластеры
впринципе gproc и так умеет, но там нужно еще одну библиотеку подключать для поддержки нетсплитов
так врядли разберешься с первого раза
это если мы хотим чтобы подписки в ETS таблицах мигрировали после нетсплитов
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 05:02
Заходил на gproc, так там сборка валилась, вроде, [build:failing] было написано
Namdak Tonpa
@5HT
Mar 05 2016 05:03
ну n2o использует gproc
если n2o чат работает то grpoc работает )
но я хочу на syn этот перейти
syn for synrc
Semyon Novikov
@semka
Mar 05 2016 05:03
Доброе утро, чат
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 05:04

syn for synrc

Красиво

Namdak Tonpa
@5HT
Mar 05 2016 05:04
и три буквы тоже, как увсе продуктов сайнерси
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 05:05
@semka привет
А, eunit падает у него просто
Semyon Novikov
@semka
Mar 05 2016 05:45
Короче, @5HT, @m-2k, такой вопрос: у вас текущая версия N2O стабильная в чаcти API?
Или там на подходе breaking changes?
Namdak Tonpa
@5HT
Mar 05 2016 05:46
у нас история непрерывной совместмости от 1.5
Semyon Novikov
@semka
Mar 05 2016 05:46
А, збс
Namdak Tonpa
@5HT
Mar 05 2016 05:46
счас 3.3
Semyon Novikov
@semka
Mar 05 2016 05:46
Если раскурю вашу магию, могу помочь с хипстерскими мануалами
потому что сейчас беда
Namdak Tonpa
@5HT
Mar 05 2016 05:46
я заплачу пиастрами
Semyon Novikov
@semka
Mar 05 2016 05:47
yarrr
Andy
@m-2k
Mar 05 2016 05:48
секта растет
Namdak Tonpa
@5HT
Mar 05 2016 05:48
это летучий голандец
Semyon Novikov
@semka
Mar 05 2016 05:48
Не исключено, да, что я растворюсь в утреннем тумане
Namdak Tonpa
@5HT
Mar 05 2016 05:48
падкий на мегахипстреские текналаджи )
Andy
@m-2k
Mar 05 2016 05:48
мне сегодня снился сон про наркотики и обнаженных баб
Namdak Tonpa
@5HT
Mar 05 2016 05:48
так а тебе synrc.com достаточно хипстерский или нет?
веб книжки
Semyon Novikov
@semka
Mar 05 2016 05:49
Выглядит всё достаточно смузивато
Я про содержание
У тебя, кстати, на сайнэрси копирайт 2015
Namdak Tonpa
@5HT
Mar 05 2016 05:50
ебать
fixed
Semyon Novikov
@semka
Mar 05 2016 05:51
Быстрый какой
Namdak Tonpa
@5HT
Mar 05 2016 05:51
:-)
еще чего изволите, барин?
шли предложения по секциям
присылай линк с анчором и говорю тут хуйня надо переписать
Andy
@m-2k
Mar 05 2016 05:53
misha, vse huynya, dauvay zanovo!
Namdak Tonpa
@5HT
Mar 05 2016 05:53
а то тут все говорят что нихуя нет а если потом разбор полетов проводить
то все быстро находится в книге
я даже написал поиск по докам
Semyon Novikov
@semka
Mar 05 2016 05:54
Оно там есть всё, просто если ты туповатый iOS разработчик очень трудно
Ну представь себе что ты хипстер с бородой, пишешь на руби-он-рейлз хайлоад приложения которые держат аж 100 коннекшонов в секунду
тебе говорят "о, а ты слышал про модный эрланг?"
ты такой вбиваешь в гугле Erlang Web Framework
и получаешь ПЕРВОЙ ссылкой в гугле N2O
Играешь на главной странице в буллшит-бинго по баззвордам, выигрываешь
такой "ништяк, пойду почитаю"
и нет никаких пошаговых мануалов с прикольными картинками!
Andy
@m-2k
Mar 05 2016 05:56
100 конекшенов в секунду - это норма для ruby highload, ты прав
Semyon Novikov
@semka
Mar 05 2016 05:56
ты такой "фу, эрланг говно" и идешь дальше прозябать
Namdak Tonpa
@5HT
Mar 05 2016 05:56
я не понял, ты счас про SEO только что сказал ? )
Semyon Novikov
@semka
Mar 05 2016 05:56
Нет, я про мануалы, белать :)
С SEO у тебя всё заебись. N2O реально первой ссылкой в гугле идет
Namdak Tonpa
@5HT
Mar 05 2016 05:57
у меня пятой
Semyon Novikov
@semka
Mar 05 2016 05:57
Ну, у меня там статья с хабры
про N2O
но тем не менее
Namdak Tonpa
@5HT
Mar 05 2016 05:58
ладно покаж ссылку что мимикрировать
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 05:58
У меня первым тостер с вопросом, а вторым хабр
Namdak Tonpa
@5HT
Mar 05 2016 05:58
это пойдет для формата 5ht.co ?
Andy
@m-2k
Mar 05 2016 06:01
о чем речь пацаны
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 06:01

Совсем маленький пример состряпать-то можно. С одним только

event(hello) -> wf:update(msg, #'div'{}).

и больше ничем

Namdak Tonpa
@5HT
Mar 05 2016 06:02
да там вся книга такие примеры )
вбивай себе и экспериментируй
я когда курсы провожу просто книгу читаю и клацаю
Andy
@m-2k
Mar 05 2016 06:02
кстати пример вполне так неплох для главной
Namdak Tonpa
@5HT
Mar 05 2016 06:03
надо наверно вообще для имбицилов
1, 2, 3, ...
Andy
@m-2k
Mar 05 2016 06:03
мне из-за этого примера зертота и посоветовал нитроген
Erlang_in_WEB_dlya_imbecilov_-_O'Relly_2016.pdf
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 06:33
N2O_for_PHP_fans.pdf
  1. Forget PHP
  2. What is websockets
  3. What is Erlang (book list)
  4. What is N2O
  5. Tools (mad etc.)
  6. Simplest configuration
  7. Our first app "HelloWorld"
  8. Routing essentials
    ...
    n. Asyncronous tasks (wf:async etc.)
Andy
@m-2k
Mar 05 2016 06:39
9) why php sucks?
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 06:42
ЖВ
:D
Semyon Novikov
@semka
Mar 05 2016 06:58

ладно покаж ссылку что мимикрировать

Да в принципе под что угодно известное, рельсы, плей, эликсир, вся вот эта шушера

у них достаточно вменяемые мануалы
И обязательно нужна глава "Where is my controllers?!"
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 07:00
Это да
Я про контроллеры
Semyon Novikov
@semka
Mar 05 2016 07:00
Зная Макса, глава будет очень короткой: "They are not required"
@kagami-ryuuji а ты не хочешь с похапе рабочие дела на эрланг переписать? Будешь ниибаца незаменимым сотрудником!
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 07:35
Не, хостинг на пхп, а зп довольно низкая
Вообще хочу отсюда уйти, просто помогать с сайтом в выходные, допустим. Контент для сайта тоже я готовлю
Хотел им запилить обработку заказов на эрланге, чтобы знать, сколько комплектующих нужно, и чтобы склад с удобством мог готовые изделия по заказам распределять
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 07:57
mad app DirName создает DirName/apps/sample Можно создать сразу DirName/apps/AppName?
Чтобы было сразу AppName.app.src и AppName.erl
Ну, и названия модулей тоже чтоб менялись и rebar.config
rusjava8
@rusjava8
Mar 05 2016 08:16
Our first app "HelloWorld" -> не подходит, лучше сразу шаблон сайта нарисовать(шапка, пару блоков и футер), можно с текстом.
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 08:23
Это я накосячил?: {reason,undef},{mfa,{n2o_cowboy,handle,2}}
Я просто имена менял с sample на hello
rusjava8
@rusjava8
Mar 05 2016 08:25
я вчера тоже создавал, папка sample там лишняя
Semyon Novikov
@semka
Mar 05 2016 08:50
@5HT кстати, что значит модуль wf? Типа Web Framework?
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 08:52
@5HT а что будет с хендлером и процессами, которые он создал с помощью wf:async/2, если произойдет дисконнект (из-за проблем с сетью или если пользователь вышел из приложения)?
Мне нужно держать отдельно процесс для персонажа с таблицей скилов, инвентарём и прочим, который сохранял бы себя в БД при выходе из игры
Semyon Novikov
@semka
Mar 05 2016 09:20
Смотрите, что нашёл. Армстронг про Эликсир: https://joearms.github.io/2013/05/31/a-week-with-elixir.html
почти не ругает
писает кипятком от |> =)
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 09:22

comp.lang.misc (ask your parents).

Позабавило

Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:34
Andy
@m-2k
Mar 05 2016 11:35

@kagami-ryuuji а ты не хочешь с похапе рабочие дела на эрланг переписать? Будешь ниибаца незаменимым сотрудником!

именно! vps хостинг 300р епта

кстати, что значит модуль wf? Типа Web Framework?

да

это из нитрогена пришло
@kagami-ryuuji есть event(terminate)
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:39
То есть, в нем можно заставить персонажа сохраниться и убить его процесс перед выходом
Andy
@m-2k
Mar 05 2016 11:39
это не для процесса, а для вьюхи
есть event(init) и event(terminate)
шобы отловить закрытие странички
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:40
event(terminate) ->
char:save()
Andy
@m-2k
Mar 05 2016 11:41
типа того
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:42
Лупер там же закрыть можно?
Andy
@m-2k
Mar 05 2016 11:42
лупер тебе зачем
можешь тут смотреть https://github.com/devaspot/games
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:43
wf:async(CharacterName, fun char:start/0)
Andy
@m-2k
Mar 05 2016 11:45
я не совсем понимаю зачем тебе синхронно живущий со страницей процесс
прям в стейт писать не проще?
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:46
Только что подумал, и правда, зачем
А, хотел отделить сетевую часть от игровой
Andy
@m-2k
Mar 05 2016 11:47
я не знаю какая там практика в играх, мож это и логично
типа юзер зашел, процесс юзера создался, юзер зашел второй раз со второй страны - процесс остался тот же
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:47
ЧТобы можно было сетевую часть поменять, допустим, на udp-сервер
Andy
@m-2k
Mar 05 2016 11:47
нет рассинхронизации
ну асинк стартует так: ChildSpec = {{Class,Name},{?MODULE,start_link,[Async]},transient,5000,worker,[Module]},
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:48
И это тоже возможно
start_link мне кажется должна говорить что процесс подохнет
если родитель подох
а не, это ж MFA. ну да, вот start_link(Parameters) -> gen_server:start_link(?MODULE, Parameters, []).
Andy
@m-2k
Mar 05 2016 11:58
It will, among other things, ensure that the gen_server is linked to the supervisor.
а генсервер n2o_async. поэтому пока не наебнется генсервер все процессы будут жить
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 12:07
n2o_async:start(#handler{module=?MODULE,class=file,group=n2o,state=FTP2,name=Name})
#handler.state передается в init генсервера, который реализован в #handler.module?
А class и group - это что?
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 12:45
Переделал трансформу с пайпом
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 12:58
Прокомментировал еще
Andy
@m-2k
Mar 05 2016 13:03
класс и группа - это части составного иемни процесса
wf:cache({Class,{Name,SessionID}}) => Pid
Andy
@m-2k
Mar 05 2016 13:08
@5HT кстати, хотел спросить, можно ли кукисы отключить в n2o?
но чтобы байнари трансфер работал
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 13:11
То есть, можно их самому задавать, это уже от логики зависит?
Andy
@m-2k
Mar 05 2016 13:12
да
Namdak Tonpa
@5HT
Mar 05 2016 17:58
@semka если у рельс хороший мануал, тогда пусть у N2O будет плохой
надо включать в N2O
rusjava8
@rusjava8
Mar 05 2016 18:08
Договорился?
Namdak Tonpa
@5HT
Mar 05 2016 18:08
ну там уже есть пабсаб
надо просто хендлер n2o_syn.erl написать
никто не хочет?
такой же как n2o_mq.erl только вместо grpoc надо syn заюзать
и тогда выбросим gproc !
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 18:09
Я пока не готов внутрь лезть
Namdak Tonpa
@5HT
Mar 05 2016 18:10
так шо твой парс трансформ работает? покаж
Работает
rusjava8
@rusjava8
Mar 05 2016 18:11
Я вообще только от jquery только отвыкать начинаю, ломает... :-)
страница для тех кто хочет слезть с иглы
rusjava8
@rusjava8
Mar 05 2016 18:13
:+1:
Andy
@m-2k
Mar 05 2016 18:20
@5HT а шо, syn научился в нетсплит?
и я тебе вопрос задал
Namdak Tonpa
@5HT
Mar 05 2016 18:25
умел с самого начала, а что за вопрос, повтори пожалуйста
Andy
@m-2k
Mar 05 2016 18:26
можно ли кукисы отключить в n2o?
но чтобы байнари трансфер работал
хочу убрать ротацию сидов в эрлаче чтобы не так подозрительно было
идеология такова чтобы даже обезличенную информацию не хранить*
Namdak Tonpa
@5HT
Mar 05 2016 18:28
как кукисы связаны с бинари трансфером?
rusjava8
@rusjava8
Mar 05 2016 18:28
Извиняюсь за оффтоп. В чём принято делать(создавать) мануалы? Подскажите.
Andy
@m-2k
Mar 05 2016 18:28
n2o_async:key/0
Namdak Tonpa
@5HT
Mar 05 2016 18:29
ты что опять под наркотиками?
так и шо с ним
Andy
@m-2k
Mar 05 2016 18:29
я хз, спросил же для этого
как отключить
я хоть и делал свой erlach_session.erl но на эту тему тогда не размышлял )
@kagami-ryuuji зачем тебе пайп?
кмк это какое-то уродство
Namdak Tonpa
@5HT
Mar 05 2016 18:31
n2o_file не испльзует ни wf:session ни wf:cache
Andy
@m-2k
Mar 05 2016 18:31
че не монады сразу
@5HT да как отключить раздачу сидов
@kagami-ryuuji видал? https://github.com/rabbitmq/erlando
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 18:34
@m-2k пальцы зачесались ) Решил попробовать
Andy
@m-2k
Mar 05 2016 18:34
@kagami-ryuuji вообще получился неплохой пример по парс-трансформу!
Namdak Tonpa
@5HT
Mar 05 2016 18:36
@m-2k чтобы отключить сессии
надо n2o флаг auto_session задисейблить
Andy
@m-2k
Mar 05 2016 18:37
@5HT вместо стого чтобы шило на мыло менять (syn) надо бы нам ивенты переписать
Namdak Tonpa
@5HT
Mar 05 2016 18:37
но тогда руками придется ensure_sid вызывать
другой способ это подменить модуль n2o_session
из конфига
нам ничего не надо переписывать
Andy
@m-2k
Mar 05 2016 18:38
первый вариант круче
если auto убрать то как и раньше надо в event(init) ensure пихнуть?
Namdak Tonpa
@5HT
Mar 05 2016 18:39
yes
Andy
@m-2k
Mar 05 2016 18:39
ок ок
rusjava8
@rusjava8
Mar 05 2016 18:50
у N2O лого имеется?
Namdak Tonpa
@5HT
Mar 05 2016 18:53
есть прототип лого
Screen Shot 2016-03-05 at 8.53.03 PM.png
лого N2O — молекула N2O
rusjava8
@rusjava8
Mar 05 2016 18:55
а как третий вариант заиметь с прозрачным фоном?
тот что с белым сейчас
Веселящий газ (N2O) :-D
Namdak Tonpa
@5HT
Mar 05 2016 18:57
n2o-Blank.svg
rusjava8
@rusjava8
Mar 05 2016 18:57
Типо весело и быстро
Без букав норм тоже?
Namdak Tonpa
@5HT
Mar 05 2016 18:57
    <g id="N2O" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
        <g id="Blank" sketch:type="MSLayerGroup" transform="translate(3.000000, -10.000000)">
            <g id="nitroxyde" transform="translate(0.000000, 12.500000)" stroke="#FFFFFF" stroke-width="5" sketch:type="MSShapeGroup">
                <ellipse id="O" fill="#D0011B" cx="145.5" cy="50.2617801" rx="50" ry="50.2617801"></ellipse>
                <ellipse id="N2" fill="#163D6B" cx="97.75" cy="50.2617801" rx="50" ry="50.2617801"></ellipse>
                <ellipse id="N1" fill="#163D6B" cx="50" cy="50.2617801" rx="50" ry="50.2617801"></ellipse>
            </g>
            <text id="N2O" sketch:type="MSTextLayer" font-family="Geometria" font-size="100" font-weight="260" letter-spacing="6" fill="#4A4A4A">
                <tspan x="245.5" y="95">N2</tspan>
                <tspan x="392.2" y="95">O</tspan>
            </text>
        </g>
    </g>
можно без букв, да
rusjava8
@rusjava8
Mar 05 2016 18:58
Во как
:+1:
Namdak Tonpa
@5HT
Mar 05 2016 21:26
synrc/n2o@3d1520e
закомитил поддержку syn как дефолтный PubSub бекенд в n2o/samples
rusjava8
@rusjava8
Mar 05 2016 21:39
Ништяк
Andrii Sergiienko
@fycth
Mar 05 2016 22:14
@5HT а ты его протестил? мне пришлось Pool обернуть в term_to_binary - иначе Syn падает если Pool равен чему-то типа {topic,"../page.html"}
тестировал на твоем родном Review только что
Namdak Tonpa
@5HT
Mar 05 2016 22:14
дай PR
я тестировал на review тоже на чате
у меня просто там таких ключей нет {topic,"../page.html"}
давай pull request
Andrii Sergiienko
@fycth
Mar 05 2016 22:16
{topic,"../privacy.htm"}
вот такое
щас дам
момент
дал. я хз что это за ключи такие - я не выяснял. но проверял на чистом н2о только слитом (до твоего последнего коммита). И там у меня вот такие ключи - и Syn на них давится, несомтря на то что по их доке Name может быть any()
обернул ключи в term_to_binary - и тогда все заработало
Namdak Tonpa
@5HT
Mar 05 2016 22:19
смержил, спасибо :-)
Andrii Sergiienko
@fycth
Mar 05 2016 22:20
=ERROR REPORT==== 6-Mar-2016::00:06:43 === Ranch listener http had connection process started with cowboy_protocol:start_link/4 at <0.864.0> exit with reason: {aborted,{badarg,[syn_pg_table,[{{syn_pg_table,'$1','$2','_'},[{'=:=','$1',{topic,"../privacy.htm"}},{'=:=','$2',<0.864.0>}],['$2']}]]}}
отака фигня была
я его так чтобы совсем полностью не тестил - но ревью вроде ОК работает
...мой первый комит в n2o. Аж сльозонькі...
Namdak Tonpa
@5HT
Mar 05 2016 22:22
аче первый? )
там же avz на тебе полностью )
Andrii Sergiienko
@fycth
Mar 05 2016 22:22
ну авз да. а в н2о коре так сказать - первый
Namdak Tonpa
@5HT
Mar 05 2016 22:23
кароче такая же тема как и с grpoc
что нужно в {pool,_} оборачивать
класно шо ты с n2o_mq закопипастил :+1:
Andrii Sergiienko
@fycth
Mar 05 2016 22:24
только по-моему в ребар конфиг син забыли добавить
я там еще одним ПР насрал по этому поводу
Namdak Tonpa
@5HT
Mar 05 2016 22:25
я добавил же
только в sample
Andrii Sergiienko
@fycth
Mar 05 2016 22:25
а. ок
был напуган
Namdak Tonpa
@5HT
Mar 05 2016 22:25
в n2o пока не нужно
только в пример
Andrii Sergiienko
@fycth
Mar 05 2016 22:25
оке