Zotonic
Zotonic
zotonic@conference.zotonic.com
Tuesday, 1 May 2012< ^ >
arjan has set the subject to: Zotonic - the Erlang CMS
Room Configuration

GMT+2
[00:04:07] maas.maarten.zeeman leaves the room
[07:14:52] maas.maarten.zeeman joins the room
[08:08:01] maas.maarten.zeeman leaves the room
[09:28:17] maas.maarten.zeeman joins the room
[09:29:40] arjan joins the room
[09:31:57] <maas.maarten.zeeman> Hey Arjan, just curious. What do you get when you request the homepage of the volkskrant with inets:httpc?
[09:31:58] arjan leaves the room
[09:32:18] <maas.maarten.zeeman> Here I get this: httpc:request("http://www.volkskrant.nl/").
{ok,{{"HTTP/1.1",500,"Internal Server Error"},
[{"connection","Keep-Alive"},
{"date","Tue, 01 May 2012 07:29:07 GMT"},
{"content-length","158"},
{"content-type","text/html; charset=UTF-8"},
{"keep-alive","timeout=3, max=999"}],
"<HTML><HEAD><TITLE>500 Internal Server Error</TITLE></HEAD><BODY><H1>500 Internal Server Error</H1><PRE>java.lang.NullPointerException<br></PRE></BODY></HTML>"}}
[09:35:21] Marc Worrell joins the room
[09:37:03] <maas.maarten.zeeman> Sigh, it errors because the user agent header is missing.
[09:39:56] <Marc Worrell> Yuck! Een 500 wanneer de User-Agent header er niet is?
[09:40:01] <Marc Worrell> Wat een amateurs.
[09:40:21] <maas.maarten.zeeman> java
[09:40:25] <maas.maarten.zeeman> ;-)
[09:41:05] <Marc Worrell> nice heh, NullPointerException.
[09:41:16] <Marc Worrell> no wonder they need code completion with Java
[09:41:28] <Marc Worrell> TooLongWordsToTypeForANormalHuman
[09:41:59] <maas.maarten.zeeman> LOL
[09:42:08] <maas.maarten.zeeman> o no
[09:42:14] <maas.maarten.zeeman> LaughingOutLoud
[09:42:37] <maas.maarten.zeeman> inets httpc is ook niet helemaal lekker trouwens.
[09:42:57] arjan joins the room
[09:43:01] <maas.maarten.zeeman> Bij error 500 krijg een asynchroon request geen feedback meer.
[09:43:14] <maas.maarten.zeeman> Fijn even debuggen :-)
[09:44:22] <Marc Worrell> That is a loooong wait
[09:45:22] arjan leaves the room
[09:46:27] <maas.maarten.zeeman> Idd
[09:47:43] arjan joins the room
[09:52:08] <maas.maarten.zeeman> Grr.. I'm getting in the mood of writing a new http client.
[09:54:36] <Marc Worrell> your 500 was worth a tweet :)
[09:54:45] <Marc Worrell> ibrowse not good enough?
[09:54:55] <Marc Worrell> http can be very funky
[09:55:21] <Marc Worrell> and next year or so we need to start talking SPDY
[09:59:10] <maas.maarten.zeeman> We need cookie handling too. And at some point caching
[10:00:15] <maas.maarten.zeeman> Something like webmachine for client side stuff would be cool.
[10:04:59] <Marc Worrell> Hmm, not too bad an idea, it is just a state machine isn't it? (as in: everything is a state machine :) )
[10:05:24] <Marc Worrell> connect state machine to a site, feed it URLs, let it keep the state (cookies etc)
[10:05:46] <Marc Worrell> and let it keep some cache.
[10:06:17] <maas.maarten.zeeman> Yes, and support upgrade for websockets, and....
[10:06:59] <maas.maarten.zeeman> client side http is a bit more complex though.
[10:07:07] <maas.maarten.zeeman> than server side.
[10:09:53] <Marc Worrell> Isn't this kind of writing better that the tinyMCE we have now? http://www.informationarchitects.jp/en/writer-for-ipad/
[10:15:22] <maas.maarten.zeeman> Just started movie (no sound)
[10:20:49] <maas.maarten.zeeman> Last week I started using this: http://bywordapp.com/ Seems similar. It supports markdown.
[10:36:09] <Marc Worrell> I need to build a webapp for a customer (Women on Web), which JS libraries shall I use?
[10:36:21] <Marc Worrell> (Apart from Bootstrap of course)
[10:37:46] <arjan> what kind of web app?
[10:37:49] <arjan> just a mobile site?
[10:55:56] <Marc Worrell> also desktop
[10:56:13] <Marc Worrell> e-mail handling and also the consultation stuff
[10:56:46] <Marc Worrell> I want to have a good basis, so that we can use parts in other projects/modules
[11:10:06] <arjan> maybe look into ender.js
[11:10:32] <arjan> which is more of a meta-library
[11:10:57] <Marc Worrell> Will check it!
[11:18:13] <maas.maarten.zeeman> No jquery & jquery mobile?
[11:18:30] <Marc Worrell> plumbing needs a bit more of "meta" stuff
[11:18:41] <Marc Worrell> jquery is good base work
[11:22:24] <Marc Worrell> also checking knockout.js
[11:25:46] <Marc Worrell> maybe take the good parts of meteor and hook it up to our stuff?
[11:26:01] <Marc Worrell> we want realtime, don't we? :p
[11:27:12] <Marc Worrell> Especially using mod_signal it shouldn't be too hard (famous last words...)
[11:27:26] <Marc Worrell> Maybe add some access control to mod_signal though.
[11:27:56] <maas.maarten.zeeman> Looks really cool. Would also work nicely with templates. Nice.
[11:34:06] <maas.maarten.zeeman> Other mvvm js libs: http://kmalakoff.github.com/knockback/
[11:36:50] <Marc Worrell> But… do we want templates in the browser???
[11:37:33] <Marc Worrell> (is the browser an intelligent terminal or is it the application?)
[11:37:40] <maas.maarten.zeeman> No, better done on server i think
[11:38:21] <maas.maarten.zeeman> looking at example page I saw pre-cooked html, Just like we do for dialogs.
[11:39:48] <maas.maarten.zeeman> http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/
[11:41:10] <Marc Worrell> then we can see the browser as an intelligent terminal, which makes sense.
[11:41:29] <Marc Worrell> And seeing it as a terminal means we can keep state on the server, and move sessions between devices.
[11:42:26] <maas.maarten.zeeman> web 3.0
[11:43:59] <Marc Worrell> :p
[11:45:11] <maas.maarten.zeeman> Everything combined. Mobile, desktop, and realtime interaction between them.
[11:45:26] <Marc Worrell> maybe we should gzip our communication over the websockets :)
[11:46:05] <Marc Worrell> when we keep templates on the server we can use our template/device selection mechanisms
[11:48:24] <Marc Worrell> means though that we need to communicate with the server for almost all actions, which introduces latency.
[11:48:56] <maas.maarten.zeeman> Aha, I see. Didn't know binary frames are supported now.
[11:49:12] <Marc Worrell> binary frames aren't supported
[11:49:29] <Marc Worrell> we can base64 (or so) encode it though
[11:49:46] <Marc Worrell> base 96 should do as well
[11:50:29] <maas.maarten.zeeman> Looks like they are. I see text and binary frames here in the spec.
[11:50:32] <Marc Worrell> (just keep away from the high bits of utf8)
[11:50:52] <maas.maarten.zeeman> maybe old/outdated/whatever though . http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07
[11:50:52] <Marc Worrell> yeah, they are in the spec, but not in the browsers
[11:50:59] <maas.maarten.zeeman> K
[11:51:56] <maas.maarten.zeeman> The spec still has the get issue. Funny
[11:52:58] <Marc Worrell> they should have use POST from the start on...
[11:54:12] <maas.maarten.zeeman> The websocket is a big side-effect.
[12:00:42] <maas.maarten.zeeman> Yeah, post. The current setup conflicts with the http caching spec.
[12:12:18] <maas.maarten.zeeman> hey het is al een echt rfc geworden.
[12:13:25] <Marc Worrell> yep, saw something like that. it is moving ahead quite fast (for this kind of tech)
[12:21:40] arjan leaves the room
[12:42:19] arjan joins the room
[13:03:02] <maas.maarten.zeeman> http://tools.ietf.org/html/rfc6455 Amazing fast indeed. Lot of bla bla in chapter 10.3 though. That is weird. Didn't someone suggest to use post instead of get. (If so I would feel bad)
[13:24:37] arjan leaves the room
[13:26:30] arjan joins the room
[13:51:33] arjan leaves the room
[14:13:58] arjan joins the room
[14:31:04] arjan leaves the room
[14:31:44] arjan joins the room
[16:26:06] <maas.maarten.zeeman> Hey marc, this is also a nice trick for still allowing template rendering on the server. http://speakerdeck.com/u/mikeyk/p/secrets-to-lightning-fast-mobile-design Fake it.
[17:32:43] maas.maarten.zeeman leaves the room
[18:12:38] arjan leaves the room
[18:51:54] maas.maarten.zeeman joins the room
[18:56:09] maas.maarten.zeeman leaves the room
[18:57:59] maas.maarten.zeeman joins the room
[19:15:27] arjan joins the room
[19:48:47] arjan leaves the room
[19:50:57] arjan joins the room
[20:23:55] <Marc Worrell> That is what meteor.js also does: fake the result, hope everything will be ok later.
[20:55:31] <arjan> hey marc
[20:55:39] <arjan> I also get the lager error here at home
[20:55:46] <arjan> when compiling from scratch
[20:57:02] <arjan> mm not always
[20:57:11] <arjan> weird
[20:59:16] <arjan> it only happens the first time
[20:59:23] <arjan> when there is no deps/lager directory yet
[20:59:55] <arjan> to reproduce it:
rm -rf deps/lager/; make clean; make
[21:00:57] <arjan> I know the problem
[21:02:25] <arjan> the makefile finds all ebin dirs and puts them in the path. however, the ebin dirs for the deps do not yet exist by then
[21:04:23] <Marc Worrell> aha, then we can add that one by hand
[21:04:31] <Marc Worrell> let me try
[21:05:02] <arjan> or calculate $EBIN_DIRS later
[21:05:15] <arjan> wait up
[21:05:18] <arjan> I'll push the fix
[21:05:24] <Marc Worrell> ok :-)
[21:06:05] <Marc Worrell> dan kunnen we later ook een "make test" toevoegen ter lering ende vermaak
[21:06:28] <arjan> pushed
[21:06:29] <arjan> lol
[21:06:29] <Marc Worrell> ben aan het kijken of we ErlyDTL template niet kunnen compileren naar Javascript
[21:06:41] <arjan> wow
[21:06:42] <Marc Worrell> travis is bezig :)
[21:07:02] <arjan> oeh vet, live output
[21:07:14] <arjan> gaat beter he :)
[21:07:17] <Marc Worrell> over tpls: dan kunnen we die tpls gebruiken ipv de handlebars dingen
[21:07:55] <Marc Worrell> cool! het compilidingest!
[21:08:02] <arjan> :D
[21:10:21] <Marc Worrell> en een mooie e-mail dat het allemaal goed is.
[21:11:46] <arjan> nu nog alle compilation warnings wegwerken ;)
[21:12:27] <arjan> compiled het vanzelf?
[21:12:43] <arjan> moeten zeker nog een build hook erin hangen in github?
[21:12:57] <arjan> oh dat heb je al gedaan
[21:13:03] <arjan> :)
[21:13:06] <arjan> nice
[21:15:01] <arjan> zijn maar een paar warnings
[21:15:24] <Marc Worrell> het compilet helemaal vanzelf, met elke commit
[21:15:31] <Marc Worrell> ik heb een hook toegevoegd
[21:15:58] <Marc Worrell> en in de .travis.yml file kan je alle opties zetten
[21:19:51] <Marc Worrell> weet jij waar die 'require' js functie vandaan komt?
[21:19:52] <Marc Worrell> var Handlebars = require("./base");
[21:26:12] <arjan> is dat niet iets van ender?
[21:28:39] <arjan> jep
[21:41:26] arjan leaves the room
[21:45:34] <Marc Worrell> aha :-)
[22:03:10] arjan joins the room
[22:47:13] maas.maarten.zeeman leaves the room
[23:07:09] arjan leaves the room
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!