These are chat archives for synrc/n2o

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

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

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

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

syn for synrc

Красиво

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

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

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

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

Namdak Tonpa
@5HT
Mar 05 2016 06:02 UTC
да там вся книга такие примеры )
вбивай себе и экспериментируй
я когда курсы провожу просто книгу читаю и клацаю
кстати пример вполне так неплох для главной
Namdak Tonpa
@5HT
Mar 05 2016 06:03 UTC
надо наверно вообще для имбицилов
1, 2, 3, ...
мне из-за этого примера зертота и посоветовал нитроген
Erlang_in_WEB_dlya_imbecilov_-_O'Relly_2016.pdf
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 06:33 UTC
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.)
9) why php sucks?
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 06:42 UTC
ЖВ
:D
Semyon Novikov
@semka
Mar 05 2016 06:58 UTC

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

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

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

comp.lang.misc (ask your parents).

Позабавило

Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:34 UTC

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

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

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

да

это из нитрогена пришло
@kagami-ryuuji есть event(terminate)
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:39 UTC
То есть, в нем можно заставить персонажа сохраниться и убить его процесс перед выходом
это не для процесса, а для вьюхи
есть event(init) и event(terminate)
шобы отловить закрытие странички
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:40 UTC
event(terminate) ->
char:save()
типа того
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:42 UTC
Лупер там же закрыть можно?
лупер тебе зачем
можешь тут смотреть https://github.com/devaspot/games
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:43 UTC
wf:async(CharacterName, fun char:start/0)
я не совсем понимаю зачем тебе синхронно живущий со страницей процесс
прям в стейт писать не проще?
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:46 UTC
Только что подумал, и правда, зачем
А, хотел отделить сетевую часть от игровой
я не знаю какая там практика в играх, мож это и логично
типа юзер зашел, процесс юзера создался, юзер зашел второй раз со второй страны - процесс остался тот же
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:47 UTC
ЧТобы можно было сетевую часть поменять, допустим, на udp-сервер
нет рассинхронизации
ну асинк стартует так: ChildSpec = {{Class,Name},{?MODULE,start_link,[Async]},transient,5000,worker,[Module]},
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 11:48 UTC
И это тоже возможно
start_link мне кажется должна говорить что процесс подохнет
если родитель подох
а не, это ж MFA. ну да, вот start_link(Parameters) -> gen_server:start_link(?MODULE, Parameters, []).
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 UTC
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 UTC
Переделал трансформу с пайпом
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 12:58 UTC
Прокомментировал еще
класс и группа - это части составного иемни процесса
wf:cache({Class,{Name,SessionID}}) => Pid
@5HT кстати, хотел спросить, можно ли кукисы отключить в n2o?
но чтобы байнари трансфер работал
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 13:11 UTC
То есть, можно их самому задавать, это уже от логики зависит?
да
Namdak Tonpa
@5HT
Mar 05 2016 17:58 UTC
@semka если у рельс хороший мануал, тогда пусть у N2O будет плохой
надо включать в N2O
rusjava8
@rusjava8
Mar 05 2016 18:08 UTC
Договорился?
Namdak Tonpa
@5HT
Mar 05 2016 18:08 UTC
ну там уже есть пабсаб
надо просто хендлер n2o_syn.erl написать
никто не хочет?
такой же как n2o_mq.erl только вместо grpoc надо syn заюзать
и тогда выбросим gproc !
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 18:09 UTC
Я пока не готов внутрь лезть
Namdak Tonpa
@5HT
Mar 05 2016 18:10 UTC
так шо твой парс трансформ работает? покаж
Работает
rusjava8
@rusjava8
Mar 05 2016 18:11 UTC
Я вообще только от jquery только отвыкать начинаю, ломает... :-)
страница для тех кто хочет слезть с иглы
rusjava8
@rusjava8
Mar 05 2016 18:13 UTC
:+1:
@5HT а шо, syn научился в нетсплит?
и я тебе вопрос задал
Namdak Tonpa
@5HT
Mar 05 2016 18:25 UTC
умел с самого начала, а что за вопрос, повтори пожалуйста
можно ли кукисы отключить в n2o?
но чтобы байнари трансфер работал
хочу убрать ротацию сидов в эрлаче чтобы не так подозрительно было
идеология такова чтобы даже обезличенную информацию не хранить*
Namdak Tonpa
@5HT
Mar 05 2016 18:28 UTC
как кукисы связаны с бинари трансфером?
rusjava8
@rusjava8
Mar 05 2016 18:28 UTC
Извиняюсь за оффтоп. В чём принято делать(создавать) мануалы? Подскажите.
n2o_async:key/0
Namdak Tonpa
@5HT
Mar 05 2016 18:29 UTC
ты что опять под наркотиками?
так и шо с ним
я хз, спросил же для этого
как отключить
я хоть и делал свой erlach_session.erl но на эту тему тогда не размышлял )
@kagami-ryuuji зачем тебе пайп?
кмк это какое-то уродство
Namdak Tonpa
@5HT
Mar 05 2016 18:31 UTC
n2o_file не испльзует ни wf:session ни wf:cache
че не монады сразу
@5HT да как отключить раздачу сидов
@kagami-ryuuji видал? https://github.com/rabbitmq/erlando
Ryuuji Kagami
@kagami-ryuuji
Mar 05 2016 18:34 UTC
@m-2k пальцы зачесались ) Решил попробовать
@kagami-ryuuji вообще получился неплохой пример по парс-трансформу!
Namdak Tonpa
@5HT
Mar 05 2016 18:36 UTC
@m-2k чтобы отключить сессии
надо n2o флаг auto_session задисейблить
@5HT вместо стого чтобы шило на мыло менять (syn) надо бы нам ивенты переписать
Namdak Tonpa
@5HT
Mar 05 2016 18:37 UTC
но тогда руками придется ensure_sid вызывать
другой способ это подменить модуль n2o_session
из конфига
нам ничего не надо переписывать
первый вариант круче
если auto убрать то как и раньше надо в event(init) ensure пихнуть?
Namdak Tonpa
@5HT
Mar 05 2016 18:39 UTC
yes
ок ок
rusjava8
@rusjava8
Mar 05 2016 18:50 UTC
у N2O лого имеется?
Namdak Tonpa
@5HT
Mar 05 2016 18:53 UTC
есть прототип лого
Screen Shot 2016-03-05 at 8.53.03 PM.png
лого N2O — молекула N2O
rusjava8
@rusjava8
Mar 05 2016 18:55 UTC
а как третий вариант заиметь с прозрачным фоном?
тот что с белым сейчас
Веселящий газ (N2O) :-D
Namdak Tonpa
@5HT
Mar 05 2016 18:57 UTC
n2o-Blank.svg
rusjava8
@rusjava8
Mar 05 2016 18:57 UTC
Типо весело и быстро
Без букав норм тоже?
Namdak Tonpa
@5HT
Mar 05 2016 18:57 UTC
    <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 UTC
Во как
:+1:
Namdak Tonpa
@5HT
Mar 05 2016 21:26 UTC
synrc/n2o@3d1520e
закомитил поддержку syn как дефолтный PubSub бекенд в n2o/samples
rusjava8
@rusjava8
Mar 05 2016 21:39 UTC
Ништяк
Andrii Sergiienko
@fycth
Mar 05 2016 22:14 UTC
@5HT а ты его протестил? мне пришлось Pool обернуть в term_to_binary - иначе Syn падает если Pool равен чему-то типа {topic,"../page.html"}
тестировал на твоем родном Review только что
Namdak Tonpa
@5HT
Mar 05 2016 22:14 UTC
дай PR
я тестировал на review тоже на чате
у меня просто там таких ключей нет {topic,"../page.html"}
давай pull request
Andrii Sergiienko
@fycth
Mar 05 2016 22:16 UTC
{topic,"../privacy.htm"}
вот такое
щас дам
момент
дал. я хз что это за ключи такие - я не выяснял. но проверял на чистом н2о только слитом (до твоего последнего коммита). И там у меня вот такие ключи - и Syn на них давится, несомтря на то что по их доке Name может быть any()
обернул ключи в term_to_binary - и тогда все заработало
Namdak Tonpa
@5HT
Mar 05 2016 22:19 UTC
смержил, спасибо :-)
Andrii Sergiienko
@fycth
Mar 05 2016 22:20 UTC
=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 UTC
аче первый? )
там же avz на тебе полностью )
Andrii Sergiienko
@fycth
Mar 05 2016 22:22 UTC
ну авз да. а в н2о коре так сказать - первый
Namdak Tonpa
@5HT
Mar 05 2016 22:23 UTC
кароче такая же тема как и с grpoc
что нужно в {pool,_} оборачивать
класно шо ты с n2o_mq закопипастил :+1:
Andrii Sergiienko
@fycth
Mar 05 2016 22:24 UTC
только по-моему в ребар конфиг син забыли добавить
я там еще одним ПР насрал по этому поводу
Namdak Tonpa
@5HT
Mar 05 2016 22:25 UTC
я добавил же
только в sample
Andrii Sergiienko
@fycth
Mar 05 2016 22:25 UTC
а. ок
был напуган
Namdak Tonpa
@5HT
Mar 05 2016 22:25 UTC
в n2o пока не нужно
только в пример
Andrii Sergiienko
@fycth
Mar 05 2016 22:25 UTC
оке