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

GMT+2
[04:37:30] bronzeboyvn joins the room
[05:02:55] mawuli.ypa joins the room
[06:04:33] Jeff Bell leaves the room
[06:07:02] Jeff Bell joins the room
[08:44:23] Arjan joins the room
[08:48:21] Arjan leaves the room
[08:49:35] Maas joins the room
[08:50:39] <Maas> Good morning
[09:31:25] <Marc Worrell> Good morning :) Hope you get your mobiles all lined up and acting as they should be!
[09:31:42] <Maas> pff
[09:33:24] <Maas> The thing is that some mobile carriers don't support websockets, so you have to have the comet fallback
[09:34:02] <Maas> And the ios xmlhttprequest implementation is totally borked.
[09:35:05] <Maas> in subtle ways that is.
[09:36:23] <Maas> location.href = ... navigation does not function when there is an xmlhttprequest busy
[09:36:46] <Maas> Quite essential for what we are doing.
[09:51:16] <Marc Worrell> so it can really do only one request at a time?
[09:51:42] <Marc Worrell> and when we would change the comet timeout to something smaller and let it poll more frequently?
[09:51:52] <Marc Worrell> (only for iOS)
[09:53:12] <Maas> Can't get my finger on it. I now have set an large timeout before starting the next poll, to give navigates some time, but still no lock
[09:53:14] <Maas> luck
[09:53:33] <Maas> dom manipulation works fine
[09:55:01] <Maas> The thing is also that it executes the scripts and then starts the next poll
[09:55:34] <Maas> nothing concurrent
[09:56:31] <Maas> This is *just* on ios, all others browsers i tried work fine even ie8, android
[09:58:13] <Marc Worrell> also fun: http://www.einternals.com/blog/web-development/ios6-0-caching-ajax-post-requests
[09:59:12] <Maas> yup that issue is a won't fix in jquery too.
[10:00:23] <Marc Worrell> did you read this ? http://techcrunch.com/2012/09/21/ajax-web-apps-in-ios-6-are-sort-of-broken/
[10:01:30] <Maas> Yes, it stays on loading. If you want to do an ajax request you can only do that when everything is loaded. Otherwise the wheel keeps spinning.
[10:02:08] <Maas> The thing is that I got it working yesterday. With alert boxes. This morning I removed them and ... boom it stopped working.
[10:02:20] <Marc Worrell> what fun it is - we have now a complete new round of browser bugs with those mobile devices.
[10:03:12] <Maas> In the old day's you just had ie to worry about. These mobile browsers are unbelievably buggy.
[10:03:35] <Marc Worrell> yep - too many restrictions at unexpected places
[10:03:50] <Marc Worrell> browser - tcp/ip stack - providers
[10:04:20] <Maas> https://github.com/LearnBoost/socket.io/wiki/Socket.IO-and-firewall-software
[10:06:28] <Marc Worrell> interesting
[10:06:40] <Maas> People even make tests to see if ws is working. http://websocketstest.com/
[10:15:31] <Maas> The goofy thing is that there is nothing wrong with the data communication... I see fresh data coming, nothing cached, in which is executed too. Some parts of the js api just don't work....
[10:16:12] <Maas> Looks like everybody is switching ws to port 443 and then it works.
[10:16:27] <Maas> without encryption.
[10:24:12] <Marc Worrell> tricky, we have a SSL listener on that port (usually)
[10:24:26] <Marc Worrell> that page above said 843 - may also work?
[10:24:34] <Maas> :-) was just explaining that to justin
[10:25:31] <Maas> so socket io has fallback ports for ws... before they switch to comet
[10:26:05] <Maas> maybe it is possible to trick the ssl listener a bit so it understands ws upgrade requests
[10:26:14] <Marc Worrell> I think it is good to start thinking about changing our server/browser communication layer
[10:27:18] <Maas> xs4all does something like that. you can ssh into a terminal server via port 80
[10:27:28] <Maas> good when you are traveling
[10:28:00] <Maas> sigh... deadline is next week... :-)
[10:28:21] <Marc Worrell> :(
[10:34:12] <Maas> Ow cool if I wait 10 seconds before starting another pull it works
[10:34:34] <Maas> then location.href = .. navigates work
[10:35:12] <Marc Worrell> srange
[10:35:13] <Maas> looks like there is some kind of concurrent request bug in ios.
[10:36:13] <Maas> the weird thing is that sometimes I get a 404 page in the browsers which is pointed to the comet url...
[10:36:48] <Maas> looks like it overwrites the browser navigate request with the comet url
[10:49:26] <Maas> Sigh, this is going nowhere.
[11:02:43] Arjan joins the room
[11:03:14] <Maas> Investigating the port 443 option...
[11:04:12] <Arjan> Hi guys!
[11:04:15] <Arjan> live from the EUC
[11:04:25] <Arjan> nice change Marc, that save button on top :)
[11:04:40] <Marc Worrell> yeah, a lot better
[11:06:05] Arjan leaves the room
[11:08:53] Arjan joins the room
[11:16:04] <Marc Worrell> how is the EUC going?
[11:26:59] Arjan leaves the room
[11:27:53] Arjan joins the room
[11:28:22] Arjan leaves the room
[11:29:37] Arjan joins the room
[11:32:08] <Arjan> Its nice
[11:32:18] <Arjan> Andreas and me had beers with Evan Miller yesterday
[11:32:30] <Arjan> the Erlydtl guy
[11:33:13] <Arjan> he really wants our projects to merge again! So Andreas is going to look at how hard it is to rebase Erlydtl off of his master again
[11:38:34] Arjan leaves the room
[11:40:13] <bronzeboyvn> the chicagoboss guy :)
[11:41:43] Arjan joins the room
[11:43:56] <Arjan> yep
[11:46:20] Arjan leaves the room
[11:46:59] <Marc Worrell> Will be good to make a merged version of the two - quite some work though.
[11:51:02] mawuli.ypa leaves the room
[11:53:00] Arjan joins the room
[11:58:04] mawuli.ypa joins the room
[12:11:46] <Maas> Looks like it works... the site in question doesn't have mod_ssl running, so I just redirected port 443 to 8000 instead of 8443.
[12:12:39] <Maas> Having this running on a site with ssl is a whole other issue though.
[12:13:02] Arjan leaves the room
[12:13:28] <Maas> Everything mochiweb just pipes it through the ssl module, which will of course fail to setup a connection.
[12:14:45] mawuli.ypa leaves the room
[12:20:12] <Maas> Now the only thing todo is to transform this hackery reliably into code.
[12:23:01] mawuli.ypa joins the room
[12:23:48] Maas leaves the room
[12:27:24] Arjan joins the room
[12:27:57] mawuli.ypa leaves the room
[12:36:48] Arjan leaves the room
[12:46:20] Maas joins the room
[13:15:24] <Maas> @marc maybe we should indeed reexamine the connectivity options for zotonic.use one of the available
[13:15:32] <Maas> js libs?
[13:23:10] <Maas> I hate mucking around with things which should work.
[13:29:47] Arjan joins the room
[13:37:35] Arjan leaves the room
[13:40:17] Arjan joins the room
[13:40:39] Arjan leaves the room
[13:44:24] Arjan joins the room
[13:48:28] Arjan leaves the room
[13:50:29] Arjan joins the room
[13:50:31] <Arjan> Maas: you mean the JS / websockets stuff?
[13:50:42] <Maas> yes.
[13:50:52] Arjan leaves the room
[13:50:54] bronzeboyvn leaves the room
[13:51:17] <Maas> We have quite a bit of problems with them. Some mobile providers don't support ws over port 80.
[13:51:44] <Maas> usually fallback to comet works reliable, but... not on ios.
[13:53:15] <Maas> All that requires quite a bit of js nonsensical fiddling. (Like the samsung issue earlier this week)
[13:53:50] <Maas> there are js libraries which can deal with that I guess.
[13:55:19] <Maas> Like socket.io and friends. Then our job is to make a zotonic backend to get the fallback mechanisms working.
[13:58:20] Arjan joins the room
[13:59:38] Arjan leaves the room
[14:01:09] Arjan joins the room
[14:01:20] arcusfelis joins the room
[14:01:35] Arjan leaves the room
[14:34:12] <Maas> -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8000
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
-A OUTPUT -d 50.116.58.138/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8000
-A OUTPUT -d 50.116.58.138/32 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
[14:44:00] <Maas> ow sorry
[15:14:13] <Maas> Would be really nice to create a socket.io backend for zotonic.
[16:03:47] Arjan joins the room
[16:09:54] <Arjan> or port this, https://github.com/sockjs/sockjs-node
[16:10:06] <Arjan> oh ,wait: https://github.com/sockjs/sockjs-erlang
[16:10:57] <Arjan> for cowboy
[16:12:01] <Maas> nice to have some options. checking if it contains fixes for the issues I recently found.
[16:15:36] <Maas> What looks nice about socket.io is that it is possible to multiplex different topics. For building apps in zotonic that is desired as you want to have the standard postback as well as possible application specific messages.
[16:16:01] <Maas> Otherwise you have to open multiple connections
[16:16:54] <Maas> Which i do right now btw. One for standard zotonic stream things and one for the application.
[16:18:24] <Maas> Looks like sockjs will fall into the samsung websocket trap.
[16:39:26] <Arjan> merged the lager / logging update
[16:39:33] <Arjan> andreas and me reviewed it thoroughly
[16:39:50] <Maas> Nice one. :-) Looks like socket io steps into that one too btw.
[16:41:33] <Arjan> ?
[16:46:40] <Maas> Well, samsung devices have a websocket implementation. From api perspective it looks like it is working, but it will never get you anywhere. Both libraries will not detect that i think.
[16:58:00] <Maas> aha, but socket.io will because it has a generic connection setup timeout.
[17:04:25] Jeff Bell leaves the room
[17:04:46] Jeff Bell joins the room
[17:27:57] <Maas> There is also engine.io
[17:30:15] Maas leaves the room
[17:55:22] mawuli.ypa joins the room
[18:05:49] Arjan leaves the room
[18:11:53] Arjan joins the room
[18:18:26] Arjan leaves the room
[18:18:40] jeff.5nines joins the room
[18:29:20] Maas joins the room
[18:30:08] Arjan joins the room
[18:34:11] <Maas> Btw I fixed the iOS connectivity problem by using port 443 with unencrypted websockets by mapping port 443 to 8000 and a js hack. The mobile provider in question didn't support websockets over port 80, but they leave traffic over port 443 alone. iOS + comet was a no-go for me.
[18:51:13] mawuli.ypa leaves the room
[18:54:38] Maas leaves the room
[18:56:47] mawuli.ypa joins the room
[19:14:24] mawuli.ypa leaves the room
[19:29:35] Arjan leaves the room
[19:44:04] Maas joins the room
[19:46:11] Maas leaves the room
[19:55:19] Maas joins the room
[20:00:46] Maas leaves the room
[20:08:15] Maas joins the room
[20:15:13] mawuli.ypa joins the room
[20:19:13] Arjan joins the room
[21:10:55] mawuli.ypa leaves the room
[21:11:52] <Marc Worrell> Maas: congrats - and crazy work around that was needed
[21:12:29] <Maas> Kind of leaves me wondering what will be next.
[21:16:02] <Maas> Still don't have a clue why ios did not work as expected. Highly annoying.
[21:20:43] mawuli.ypa joins the room
[21:35:15] arcusfelis leaves the room
[22:32:06] mawuli.ypa leaves the room
[22:46:36] Arjan leaves the room
[23:00:16] Maas leaves the room
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!