Zotonic
Zotonic
zotonic@conference.zotonic.com
Thursday, 30 May 2013< ^ >
Arjan has set the subject to: Zotonic - The Erlang Web Framework & CMS
Room Configuration

GMT+2
[06:52:31] Andreas Stenius joins the room
[08:15:09] Arjan joins the room
[08:16:44] Arjan leaves the room
[08:46:59] Arjan joins the room
[08:47:17] Maas joins the room
[09:27:33] <Marc Worrell> Interesting: http://facebook.github.io/react/
[09:28:25] <Andreas Stenius> cool.. will have to take a closer look at that.. :)
[09:28:52] <Marc Worrell> maybe a nice match with a browser/server pubsub system
[09:33:54] <Andreas Stenius> that looks quite awesome!
[09:34:15] <Andreas Stenius> will have to try it too.. (just not right now.. :/ )
[09:34:38] <Marc Worrell> yeah - too busy
[09:34:57] <Marc Worrell> but this thing might be a direction to getting dynamic UIs working
[09:35:48] <Marc Worrell> maybe together with the diff/match/patch engine of mobwrite
[09:37:54] <Maas> new language text/jsx? hmm
[09:38:35] <Andreas Stenius> jsx is syntactic sugar so you can write html directly in the js file, from what I understood of it
[09:38:54] <Andreas Stenius> you can either pre compile it on the server or let the client do it with some additional js
[09:39:29] <Andreas Stenius> like this:
render: function() {
return <div>{'Hello ' + this.props.name}</div>;
}
[09:39:39] <Maas> oops, call
[09:39:43] <Andreas Stenius> ok
[09:40:14] <Maas> know that from python quixote, qp. Really nice concept, but only for programmers
[09:40:59] <Marc Worrell> the main problem I see is keeping the data on the client in sync with the data on the server
[09:42:03] <Marc Worrell> so, when we can use diff-match-patch for that sync (keeping all clients in sync with the server) then you can use react/knockout/whatnot to sync the UI
[09:42:17] <Andreas Stenius> Server RequestsMany event handlers will issue a server request to read or write some data in response to an event. The response handler for the request will often call this.setState().
[09:42:44] <Andreas Stenius> and as the state is changed, the component will re-render itself...
[09:45:13] <Maas> For channel I use a data bus and at the js side a lightweight pub/sub system which works across embedded iframes.
[09:45:44] <Maas> When somebody clicks the event is send over the bus and picked up by other clients
[09:46:12] <Maas> subscription via pub/sub component.
[09:47:11] <Maas> This makes it possible to program these things in different active components in zotonic.
[09:48:27] <Maas> It uses a normal template to render the html part of the component and it can load the js which attaches itself to the pub/sub component on the page.
[09:50:23] <Marc Worrell> we need to find something nice for template builders and nice for the backend programmers.
[09:50:36] <Marc Worrell> programming JS all the time takes too much effort.
[09:50:47] <Maas> Indeed, that is very important.
[09:56:56] <Maas> Templates with js is code-in-content. Sometimes it is nice to have it the other way around. content-in-code (like jsx does) But this switches the responsibility for the content to the programming team. I wonder if there is another way.
[10:00:50] <Marc Worrell> Andreas - Zach Kessin asks what for power outlets you guys have in Sweden
[10:04:57] <Maas> Maybe we can use a scomp, similar to wire to connect the two worlds. But in this case the information flows bi-directional.
[10:05:39] <Marc Worrell> yes - that is why I was thinking of a kind of generic diff-match-patch bus
[10:06:01] <Andreas Stenius> uhm, round with two holes
[10:06:13] <Marc Worrell> because the truth is at the server and you must be sure that it matches the version on the client
[10:06:33] <Andreas Stenius> do you want a picture of that?
[10:06:39] <Marc Worrell> two holes? then you can put an axis in there :p
[10:06:48] <Marc Worrell> oh - the socket
[10:06:51] <Marc Worrell> :p
[10:07:03] <Andreas Stenius> heh, yeah, I was talking about the power outlet :p
[10:07:18] <Marc Worrell> when you have a pic - then I send it to Zach
[10:07:41] <Marc Worrell> Michiel is asking you about the podcast :p
[10:08:25] <Andreas Stenius> yeah, I'm about to call my wife and check that she's ok with me skipping over putting the kids to bed..
[10:08:48] <Andreas Stenius> I thought you could take the pic... invited you to a hangout...
[10:11:06] <Maas> indeed synchronising is a challenge, especially with mobile devices which regularly drop their connections when they go to sleep.
[10:41:23] <Marc Worrell> I think the patch-match-diff is a great way to get the syncing done
[10:42:02] <Marc Worrell> in memory model on the server (which we can store on disk when not used for a while) - and then sync the clients with that version.
[10:42:25] <Marc Worrell> when made generic then we can use it for editing and views
[11:04:10] <Andreas Stenius> sounds cool
[11:08:52] <Marc Worrell> yeah :p solves a lot of problems
[11:09:18] <Marc Worrell> you could then just say "i want a synced copy of that datastructure here"
[11:09:55] <Marc Worrell> and then we only need to keep the one on the server in sync - as the rest will follow
[11:38:20] Maas leaves the room
[11:59:37] Arjan leaves the room
[12:09:48] Arjan joins the room
[12:18:41] <Arjan> I thought that I increased the pivot batch size a while ago
[12:18:46] <Arjan> it is 100 now
[12:18:49] <Arjan> which is prettttty low
[12:19:09] <Arjan> anyone object to making it 1000?
[12:19:12] <Arjan> seems to work well
[12:37:18] <Andreas Stenius> fine by me ;)
[13:00:28] Arjan leaves the room
[13:09:01] Maas joins the room
[13:20:29] <Andreas Stenius> it's been a fun exercise, reimplementing a json lib for bash to support my use case... ;)
https://github.com/kristopolous/TickTick/pull/28
[15:08:06] Maas leaves the room
[15:38:30] Andreas Stenius leaves the room
[15:38:30] Andreas Stenius joins the room
[15:38:30] Andreas Stenius leaves the room
[15:38:58] Andreas Stenius joins the room
[16:15:09] Jeff Bell leaves the room
[16:16:02] Jeff Bell joins the room
[17:08:09] Jeff Bell leaves the room
[17:09:28] Jeff Bell joins the room
[18:35:36] bronzeboyvn joins the room
[18:37:09] <bronzeboyvn> I have problem which installing. when I run start.sh, there is error
....
23:32:30.931 [info] gen_smtp_server listening on {0,0,0,0}:2525 via tcp
Terminating due to shutdown
{"init terminating in do_boot",{{badmatch,{error,{shutdown,{zotonic_app,start,[normal,[]]}}}},[{zotonic,start,1,[{file,"src/zotonic.erl"},{line,52}]},{init,start_it,1,[]},{init,start_em,1,[]}]}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
[18:37:15] <bronzeboyvn> anyone can help ?
[18:37:49] <Marc Worrell> in a conference call right now - will have a look later
[18:38:03] <Marc Worrell> often the above is some timeout during the startup of one of the modules
[18:38:14] <Marc Worrell> what kind of server do you use?
[18:38:35] <bronzeboyvn> I use local desktop
[18:39:16] <bronzeboyvn> I though all modules are ok
[18:39:34] <bronzeboyvn> 23:32:30.530 [info] Application lager started on node zotonic001@localhost
** Found 0 name clashes in code paths
23:32:30.606 [info] Application crypto started on node zotonic001@localhost
** Found 0 name clashes in code paths
23:32:30.671 [info] Application webzmachine started on node zotonic001@localhost
23:32:30.737 [info] Application mnesia started on node zotonic001@localhost
23:32:30.737 [info] Application eiconv started on node zotonic001@localhost
23:32:30.742 [info] Application public_key started on node zotonic001@localhost
23:32:30.750 [info] Application ssl started on node zotonic001@localhost
23:32:30.771 [info] Application inets started on node zotonic001@localhost
** Found 0 name clashes in code paths
23:32:30.841 [info] Application mimetypes started on node zotonic001@localhost
23:32:30.931 [info] gen_smtp_server starting at zotonic001@localhost
23:32:30.931 [info] gen_smtp_server listening on {0,0,0,0}:2525 via tcp
Terminating due to shutdown
[19:26:37] mawuli.ypa joins the room
[19:42:14] mawuli.ypa leaves the room
[19:42:48] mawuli.ypa joins the room
[20:05:09] Arjan joins the room
[20:35:25] Arjan leaves the room
[21:05:06] Arjan joins the room
[21:07:40] Arjan leaves the room
[21:12:41] Arjan joins the room
[21:23:29] Arjan leaves the room
[21:37:06] Arjan joins the room
[21:43:00] mawuli.ypa leaves the room
[21:56:51] Arjan leaves the room
[21:57:34] Arjan joins the room
[22:04:24] Arjan leaves the room
[22:05:56] Arjan joins the room
[22:06:55] Arjan leaves the room
[22:08:03] Arjan joins the room
[23:00:55] Andreas Stenius leaves the room
[23:56:49] Arjan leaves the room
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!