Thursday, 19 December 2013< ^ >
Arjan has set the subject to: Zotonic - The Erlang Web Framework & CMS
Room title: "Zotonic"
Allow users to change subject
Allow users to send private messages
Allow users to query other users
Allow users to send invites
Make room semianonymous
Default users as participants
Make room members-only
Make room moderated
Make room password protected
Make room persistent
Make room public searchable
Make participants list public
[00:33:13] Mawuli leaves the room
[00:51:58] cillian.deroiste leaves the room
[00:59:01] Mawuli joins the room
[01:11:42] Mawuli leaves the room
[01:14:04] Mawuli joins the room
[04:16:51] Mawuli leaves the room
[09:09:55] arjan joins the room
[09:11:49] Steffen Hanikel joins the room
[09:22:48] maas.maarten.zeeman joins the room
[10:05:46] Mawuli joins the room
[10:18:04] Mawuli leaves the room
[10:22:24] Mawuli joins the room
[10:26:59] Mawuli leaves the room
[10:40:02] Mawuli joins the room
[10:59:57] Mawuli leaves the room
[11:16:23] Mawuli joins the room
[11:23:45] Mawuli leaves the room
[12:17:55] Steffen Hanikel leaves the room
[12:41:09] Mawuli joins the room
[12:46:42] Steffen Hanikel joins the room
[13:39:55] Mawuli leaves the room
[13:43:19] Mawuli joins the room
[14:22:15] Mawuli leaves the room
[14:22:32] arjan leaves the room
[14:28:24] Mawuli joins the room
[15:22:55] Mawuli leaves the room
[15:30:30] Mawuli joins the room
[15:43:19] Marc Worrell joins the room
[15:44:57] Mawuli leaves the room
[16:14:33] Steffen Hanikel leaves the room
[16:18:38] <Marc Worrell> Putting together this year's work and preparations for the external file storage.
[16:18:39] mawuli.ypa leaves the room
[16:18:44] <Marc Worrell> Soon we can store data in S3
[16:19:01] <Marc Worrell> (or rather S3 alikes… prefer non-NSA countries for my data)
[16:26:09] Steffen Hanikel joins the room
[16:36:16] Mawuli joins the room
[16:38:47] <Mawuli> Marc Worrel: That is nice. I have a few questions though.
[16:39:17] <Marc Worrell> Always good: fire away :)
[16:40:12] <Marc Worrell> @Mawuli: sent you a copy of some design files
[16:40:42] <Mawuli> It is about the replacement of the current web server with Elli. What is your opinion on something like SimpleBridge or EWSGI ?
[16:42:03] <Mawuli> Link to SimpleBridge: https://github.com/nitrogen/simple_bridge
[16:42:26] <Mawuli> EWGI: https://github.com/skarab/ewgi
[16:42:56] <Mawuli> @Marc: Thanks. I will check it out soon.
[16:43:56] <Mawuli> I don't much about the tradeoffs involved in using either EWGI or SimpleBridge, but what if we decide to switch from Elli to something else in the future? Say, something homegrown?
[16:44:07] <Mawuli> * don't know much
[16:53:59] maas.maarten.zeeman leaves the room
[17:00:49] <Mawuli> @Marc: https://gist.github.com/mawuli-ypa/8041457
[19:11:39] Steffen Hanikel leaves the room
[19:37:00] Steffen Hanikel joins the room
[20:00:37] Maas joins the room
[20:18:26] Steffen Hanikel leaves the room
[20:20:55] Maas leaves the room
[20:45:10] Maas joins the room
[20:55:05] <Maas> Hi @mawuli. Zotonic is mostly build on top of webmachine which implements http semantics on top of a basic web server. This is the current interface between the webserver and zotonic.
[20:56:54] <Mawuli> @Maas: Thanks for the explanation!
[20:57:19] <Maas> The controllers are this interface.
[20:57:40] <Mawuli> I realized I misunderstood how Webzmachine is used in Zotonic
[20:57:57] <Mawuli> I thought it only handled the REST api
[20:58:21] <Maas> No, every http request is going through web machine
[20:58:40] <Mawuli> Ah, nice; good to know about the controllers too. Now, I where to look
[20:59:08] <Maas> Now, this is also a bit of a drawback as some requests are a quite a bit different and not rest like.
[20:59:30] <Mawuli> So, that explains the importance of the new Webzmachine(elli_machine)!
[20:59:53] <Maas> For example, opening web sockets is not really rest like. Doing long-polling isn’t.
[21:00:42] <Mawuli> Ah, I guess the original Webmachine did not have Websocket support?
[21:01:11] <Maas> Serving these kind of requests efficiently (and robust) means that sometimes you need to make different choices.
[21:01:30] <Maas> No original wm can’t do web sockets.
[21:03:36] <Mawuli> Okay
[21:04:06] <Maas> In practice I’ve run into a number of issues with mochiweb+webmachine. At one point it silently dropped connections and returned 400 to the client without a log-message whatsoever.
[21:04:58] <Mawuli> Oh >:o
[21:05:49] <Maas> I only noticed it when I could log into a client’s pc in the usa and look into the debug console.
[21:06:52] <Mawuli> I really appreciate this explanation :)
[21:06:53] <Maas> Because locally everything worked of course
[21:08:02] <Mawuli> Looking at elli_machine now
[21:08:41] <Maas> Work in progress warning... :-) Some things will change.
[21:10:31] <Mawuli> Okay. Since this will eventually replace the current one, I might as well start familiarizing myself with it
[21:11:15] <Maas> haha, yes. The plan is to remove the web socket from elli_machine.
[21:11:31] <Maas> and file-uploads will be done differently
[21:12:00] <Maas> The other stuff will sort of stay the same.
[21:12:34] <Mawuli> Okay
[21:13:55] <Maas> elli has a very simple architecture. Uses binaries throughout, and has architecture which allows easy extension.
[21:14:53] <Maas> The core doesn’t even include logging. This can be done easily by adding a so called middleware handler.
[21:17:24] <Mawuli> Nice
[21:19:20] <Mawuli> I was looking at it today; interesting how even cookies and date headers are left out of the core.
[21:20:18] <Mawuli> I guess that's the good thing about Elli; simple core, and extensible.
[21:21:11] <Maas> yes, this makes it really robust, and easier to debug.
[21:23:09] <Maas> The author is really cautious to accept additions. He is really in the mindset to keep things out of the core.
[21:23:37] <Mawuli> Oh Okay
[21:23:40] <Mawuli> Was speed also a factor in choosing Elli? Because, I imagine once we add extensions on top, it will not be as fast as the barebones core server.
[21:23:55] <Mawuli> I might be wrong here, but that's my guess for now.
[21:25:38] <Maas> There won’t be that much extensions we add and calling an extension is not expensive as it is just a function call in the same process.
[21:26:07] <Mawuli> Ok
[21:28:08] <Maas> elli uses binaries, which is faster, but actually all erlang web servers are really really fast.
[21:29:23] <Maas> this is because all of them use the same code to parse http headers as this is implemented as a bif in the erlang vm.
[21:31:35] <Maas> What sets elli apart from mochiweb/cowboy/yaws is that it doesn’t try to do everything.
[21:35:42] Maas35486 joins the room
[21:35:42] Maas35486 leaves the room
[21:35:42] Maas11512 joins the room
[21:35:42] Maas11512 leaves the room
[21:35:42] Maas78406 joins the room
[21:35:42] Maas78406 leaves the room
[21:35:42] Maas19707 joins the room
[21:35:42] Maas19707 leaves the room
[21:35:42] Maas85857 joins the room
[21:37:35] <Mawuli> I am sold! *elli*
[21:38:26] <Mawuli> Oh btw, looks like there are 3 people named Maas around here :)
[21:39:11] <Maas85857> wow, three? one of them must be my wife using my login i think.
[21:39:25] <Mawuli> Oh okay :)
[21:40:56] <Mawuli> Happened to me this week; the other "Mawuli" just disappeared this afternoon!
[21:46:14] Maas leaves the room
[23:48:58] <Maas85857> wow, playing a bit with new server and elli_machine. Request rate: 84184.3 req/s (0.0 ms/req)
[23:51:50] Maas85857 leaves the room
[23:58:51] Maas joins the room
[23:59:19] Maas leaves the room
[23:59:52] Maas joins the room