00:07:13  <paulbjensen>had the most awesome idea 2 days ago
00:07:22  <paulbjensen>not necessarily SS related
00:07:41  <paulbjensen>but REST/HATEOAS/front-end related
00:08:14  <ArxPoetica>yeah?
00:08:17  <ArxPoetica>do tell
00:08:24  <ArxPoetica>I'm into awesome.
00:08:25  <ArxPoetica>:P
00:08:34  <paulbjensen>So, HATEOAS is like providing a site map for the API routes to your app
00:08:37  <ArxPoetica>(I've had a few crazy ideas myself)
00:08:39  <ArxPoetica>Yeah.
00:08:48  <ArxPoetica>rel='whatever', right?
00:09:01  <ArxPoetica>I mean, I sort of get it, yes.
00:09:06  <paulbjensen>Say you have a client-side library, it fetches the API root url, gets back a list of available routes.
00:09:24  <ArxPoetica>ahhh
00:09:30  <paulbjensen>It checks what the routes do, based on HTTP verb semantics
00:09:41  <ArxPoetica>yeah
00:10:07  <paulbjensen>You then get the API routes to suppy a custom API route, called say "_schema" for example
00:10:54  <ArxPoetica>hmm
00:11:01  <ArxPoetica>not quite following
00:11:03  <ArxPoetica>keep going
00:11:17  <paulbjensen>this "_schema" route lists what data attributes a resource has, the attribute types (string, boolean), validations (length, presence).
00:11:58  <ArxPoetica>cool
00:12:00  <ArxPoetica>right
00:12:20  <paulbjensen>you then get the client-side library (say using Backbone models for example) to start generating models for these resources, based on it's parsing of the API routes
00:12:56  <ArxPoetica>woah
00:13:09  <ArxPoetica>I'm dizzy :P
00:13:11  <paulbjensen>It then spiders the API routes to fetch data, populate Backbone collections, generate links to existing resources, create buttons for new resources
00:13:28  <paulbjensen>Auto-generating CRUD
00:13:35  <paulbjensen>on the client
00:13:37  <ArxPoetica>that awesome.
00:14:12  <paulbjensen>I'm glad it's not crazy :)
00:14:13  * hipertrackerjoined
00:14:32  <ArxPoetica>well. it might be crazy.
00:14:42  <ArxPoetica>but sometimes crazy is highly innovative :)
00:14:45  <ArxPoetica>http://explodingdog.com/drawing/awesome.jpg
00:14:53  <ArxPoetica>I had a crazy idea once.
00:15:06  <ArxPoetica>I wanted to create the Rube Goldberg machine of JS.
00:15:12  <ArxPoetica>Or
00:15:18  <ArxPoetica>Visual JavaScript.
00:15:28  <ArxPoetica>(In other words.)
00:15:56  <ArxPoetica>Sort of make JS accessible for the common man. But anyway...
00:16:11  <ArxPoetica>I'm intrigued by that idea.
00:19:37  <paulbjensen>Curious, how would that Visual JS work? Are we talking blocks, Yahoo pipes UI? or something else?
00:30:04  <paulbjensen>Or am I lost, like a goldfish in a submarine?
00:36:36  <paulbjensen>yeah.
00:37:01  <paulbjensen>anyway, I want to build, but time is my infinite enemy
00:37:53  <paulbjensen>but thanks for hearing it and giving feedback
00:41:45  <paulbjensen>I'm going to collect some zzzz, have a good evening
00:49:40  * paulbjensenquit (Quit: paulbjensen)
01:36:00  * evangenieurquit (Remote host closed the connection)
01:36:11  * lluad_joined
01:36:35  * evangenieurjoined
01:38:53  * lluadquit (Ping timeout: 255 seconds)
01:38:53  * lluad_changed nick to lluad
01:40:49  * evangenieurquit (Ping timeout: 248 seconds)
02:08:51  * ins0mniaquit (Ping timeout: 276 seconds)
02:11:25  * ins0mniajoined
02:19:09  * mdedetrichquit (Quit: Computer has gone to sleep.)
02:19:56  * mdedetrichjoined
02:21:17  * mdedetrichquit (Client Quit)
02:21:43  * mdedetrichjoined
02:23:25  * mdedetrichquit (Client Quit)
02:24:11  * mdedetrichjoined
02:25:32  * mdedetrichquit (Client Quit)
02:26:01  * mdedetrichjoined
02:27:40  * mdedetrichquit (Client Quit)
02:28:09  * mdedetrichjoined
02:29:47  * mdedetrichquit (Client Quit)
02:30:15  * mdedetrichjoined
02:31:56  * mdedetrichquit (Client Quit)
02:32:45  * mdedetrichjoined
02:34:03  * mdedetrichquit (Client Quit)
02:34:30  * mdedetrichjoined
02:35:09  * colinsullivanjoined
02:36:11  * mdedetrichquit (Client Quit)
02:36:40  * mdedetrichjoined
02:38:18  * mdedetrichquit (Client Quit)
02:38:47  * mdedetrichjoined
02:40:26  * mdedetrichquit (Client Quit)
02:41:14  * mdedetrichjoined
02:42:34  * mdedetrichquit (Client Quit)
02:43:02  * mdedetrichjoined
02:44:30  * ins0mniaquit (Ping timeout: 264 seconds)
02:44:41  * mdedetrichquit (Client Quit)
02:45:09  * mdedetrichjoined
02:46:49  * mdedetrichquit (Client Quit)
02:47:16  * mdedetrichjoined
02:48:57  * mdedetrichquit (Client Quit)
02:49:23  * mdedetrichjoined
02:51:04  * mdedetrichquit (Client Quit)
02:51:29  * mdedetrichjoined
02:53:12  * mdedetrichquit (Client Quit)
02:53:38  * mdedetrichjoined
02:55:19  * mdedetrichquit (Client Quit)
02:55:47  * mdedetrichjoined
02:57:27  * mdedetrichquit (Client Quit)
02:57:53  * mdedetrichjoined
02:59:35  * mdedetrichquit (Client Quit)
03:00:24  * mdedetrichjoined
03:01:42  * mdedetrichquit (Client Quit)
03:02:28  * mdedetrichjoined
03:03:50  * mdedetrichquit (Client Quit)
03:04:37  * mdedetrichjoined
03:05:58  * mdedetrichquit (Client Quit)
03:06:43  * mdedetrichjoined
03:08:06  * mdedetrichquit (Client Quit)
03:08:51  * mdedetrichjoined
03:10:13  * mdedetrichquit (Client Quit)
03:10:44  * mdedetrichjoined
03:12:21  * mdedetrichquit (Client Quit)
03:12:49  * mdedetrichjoined
03:14:29  * mdedetrichquit (Client Quit)
03:14:54  * mdedetrichjoined
03:26:15  * hipertracker-offjoined
03:28:44  * hipertrackerquit (Ping timeout: 260 seconds)
03:28:44  * hipertracker-offchanged nick to hipertracker
03:36:36  * ArxPoeticaquit (Quit: Leaving.)
04:37:20  * strikeoutquit (Quit: strikeout)
04:52:04  * lluadquit (Quit: lluad)
06:06:43  * mdedetrichquit (Quit: Computer has gone to sleep.)
06:07:03  * colinsullivanquit (Quit: Leaving.)
06:10:01  * mdedetrichjoined
06:15:57  * colinsullivanjoined
06:17:20  * colinsullivanquit (Client Quit)
06:30:35  * mdedetrichquit (Quit: Computer has gone to sleep.)
06:48:42  * colinsullivanjoined
07:05:31  * dennismartenssonquit (Remote host closed the connection)
07:47:29  * dennismartenssonjoined
07:48:48  * hipertrackerquit (Quit: hipertracker)
07:50:06  * colinsullivanquit (Ping timeout: 276 seconds)
08:22:23  * vguerrajoined
08:24:26  * vguerraquit (Remote host closed the connection)
08:29:18  * evangenieurjoined
08:31:32  * evangenieurquit (Remote host closed the connection)
08:32:08  * evangenieurjoined
08:36:17  * evangenieurquit (Ping timeout: 248 seconds)
08:47:43  * evangenieurjoined
08:54:20  * vguerrajoined
09:00:06  * evangenieurquit (Remote host closed the connection)
09:00:41  * evangenieurjoined
09:05:05  * evangenieurquit (Ping timeout: 248 seconds)
09:20:29  * strikeoutjoined
09:27:11  * strikeoutquit (Quit: strikeout)
09:47:30  * dennismartenssonquit (Remote host closed the connection)
10:34:38  * evangenieurjoined
11:49:43  * evangenieurquit (Remote host closed the connection)
11:50:17  * evangenieurjoined
11:54:41  * evangenieurquit (Ping timeout: 248 seconds)
12:22:32  * vguerraquit (Remote host closed the connection)
13:22:04  * ins0mniajoined
13:26:33  * evangenieurjoined
13:33:00  * vguerrajoined
13:51:51  * ins0mniaquit (Ping timeout: 276 seconds)
14:42:04  * zenoconjoined
16:06:15  * ArxPoeticajoined
16:09:49  * vguerraquit (Remote host closed the connection)
16:10:40  <ArxPoetica>lo peeps
16:15:48  * vguerrajoined
16:34:51  * colinsullivanjoined
16:49:20  * Golesjoined
17:14:58  <zenocon>hey
17:23:45  * lluadjoined
17:44:28  * vguerraquit (Remote host closed the connection)
17:52:43  * dennismartenssonjoined
18:01:39  * paulbjensenjoined
18:02:25  <paulbjensen>hi
18:03:20  * evangenieurquit (Remote host closed the connection)
18:03:55  * evangenieurjoined
18:04:25  * hipertrackerjoined
18:08:01  * evangenieurquit (Ping timeout: 248 seconds)
18:15:11  * paulbjensenquit (Quit: paulbjensen)
18:23:46  * ins0mniajoined
19:20:26  * paulbjensenjoined
19:30:35  * hipertrackerquit (Quit: hipertracker)
19:56:25  <ArxPoetica>hey guys
19:56:50  <ArxPoetica>is there a way to access the session (userId, etc.) *before* views are rendered?
19:59:22  <paulbjensen>When you say views being rendered, you mean like inside of the ss.http.route("/", function(req,res){}) block?
20:01:34  <paulbjensen>I imagine that you could inspect the req object before res.serveClient is called
20:02:21  <paulbjensen>What I tend to do is make the client code call the server to check whether the session is authenticated or not, and then render page states based on that.
20:02:24  <ArxPoetica>nah
20:02:33  <ArxPoetica>I might be doing something that isn't meant to be done. :(
20:02:56  <ArxPoetica>actually
20:02:58  <ArxPoetica>I know it's not
20:03:00  <ArxPoetica>ha
20:03:02  <ArxPoetica>so nevermind
20:03:04  <ArxPoetica>:P
20:03:51  <ArxPoetica>I sort of forgot that the whole point of SS is to push up a cached stack from the server fastly so.
20:04:00  <ArxPoetica>And then just do RPC calls or whatnot for variable.
20:04:16  <paulbjensen>cool beans
20:04:21  <ArxPoetica>Pretty rudimentary, but there's a part that would like to grab session variables at initialization.
20:04:31  <ArxPoetica>Which I think is an official feature request somewhere.
20:06:23  <paulbjensen>Be good to find that link.
20:06:46  <paulbjensen>Reminds me, need to look at jcw's issue. Will do that after I grab a quick bite. brb in 10m
20:26:30  * Golesquit (Quit: Computer has gone to sleep.)
20:38:13  <paulbjensen>back
20:38:42  * mtsrjoined
20:40:53  * colinsullivanquit (Ping timeout: 255 seconds)
20:57:32  * hipertrackerjoined
20:58:24  * zenoconquit (Remote host closed the connection)
21:18:40  * Golesjoined
21:24:17  * mtsrquit (Ping timeout: 248 seconds)
21:29:06  * paulbjensenquit (Quit: paulbjensen)
21:40:59  * ins0mniaquit (Ping timeout: 246 seconds)
21:52:38  * paulbjensenjoined
21:55:15  <ArxPoetica>hey paulbjensen
21:55:21  <paulbjensen>hi
21:55:36  <ArxPoetica>hey so the app runs fine in dev mode
21:55:39  <ArxPoetica>but I do:
21:55:40  <ArxPoetica>NODE_ENV=production SS_ENV=production SS_PACK=1 npm start
21:55:44  <ArxPoetica>to prepack assets
21:55:52  <ArxPoetica>and I'm getting a really weird error
21:56:19  <ArxPoetica>Actually…strange…it just worked.
21:56:23  <ArxPoetica>That was so weird.
21:56:42  <ArxPoetica>was seeing a EADDREINUSE error
21:56:51  <ArxPoetica>But now it's packing.
21:56:56  <ArxPoetica>Very strange.
21:57:23  <ArxPoetica>well. sort of.
21:57:23  <ArxPoetica>ha
21:57:28  <ArxPoetica>it's hanging now
21:58:09  <ArxPoetica>ha ha I'm full of all sorts of false alarms
21:58:12  <ArxPoetica>it's looking good
21:58:49  <paulbjensen>EADDREINUSE means there is something bound on that port running already
22:00:09  <paulbjensen>if you have the app running on that port already, then trying to run that command will give you that
22:00:38  <ArxPoetica>I see.
22:01:11  <ArxPoetica>Could this have anything to do with setting the port in ss-engine.io manually to 80?
22:01:43  * Golesquit (Quit: Computer has gone to sleep.)
22:02:01  <paulbjensen>in the same app?
22:02:36  <ArxPoetica>it's the same app that was giving us prod issues if that's what you mean
22:02:56  <ArxPoetica>But that was never a problem before...
22:03:00  <paulbjensen>if you ping port 80 now, is anything running now?
22:03:54  <ArxPoetica>ping localhost:80 ?
22:04:15  <ArxPoetica>"cannot resolve..."
22:06:17  <paulbjensen>try hitting http://localhost in the browser
22:07:42  <ArxPoetica>yeah, nuttin
22:08:41  <paulbjensen>ok, if you try and run the pack command now, do you get that error?
22:10:25  <ArxPoetica>nope
22:15:15  <paulbjensen>ok. if it happens again, check what's running on port 80 by visiting the localhost url in the browser
22:17:09  <ArxPoetica>k
22:25:48  * ArxPoeticaquit (Read error: Connection reset by peer)
22:27:49  * ArxPoeticajoined
22:28:03  <ArxPoetica>paulbjensen : do I ever actually need this:
22:28:05  * Golesjoined
22:28:06  <ArxPoetica> ss.ws.transport.use(require('ss-engine.io'), {
22:28:06  <ArxPoetica> client: {
22:28:06  <ArxPoetica> host: domain,
22:28:06  <ArxPoetica> port: port
22:28:06  <ArxPoetica> }
22:28:06  <ArxPoetica> });
22:28:09  <ArxPoetica>set the client?
22:28:16  <ArxPoetica>or can I just let it auto figure it out?
22:30:28  <paulbjensen>with latest ss-engine.io, it will figure it out
22:30:58  <ArxPoetica>ok
22:32:04  <ArxPoetica>just found a bug with the client packager
22:32:58  <ArxPoetica>er…maybe not a bug actually
22:33:10  <ArxPoetica>but I was packaging client assets, and it was using dev configurations
22:33:19  <ArxPoetica>hard coding them in the ss-engine transport layer
22:33:22  <ArxPoetica>WOOPS
22:33:44  <ArxPoetica>(which makes sense)
22:34:20  <paulbjensen>what cmd did you use to pack the assets?
22:38:20  <ArxPoetica>no, it's just a local pack
22:38:22  <ArxPoetica>from terminal
22:38:34  <ArxPoetica>this is all just a testing deploy — no CMD yet
22:38:49  <ArxPoetica>:)
22:38:53  <paulbjensen>ok
22:38:54  <ArxPoetica>I think I got it figure out
22:46:27  * colinsullivanjoined
22:47:44  * Golesquit (Ping timeout: 252 seconds)
23:02:32  * evangenieurjoined
23:11:01  <paulbjensen>sleep, night all
23:12:07  * paulbjensenquit (Quit: paulbjensen)
23:42:07  * colinsullivanquit (Quit: Leaving.)
23:43:25  * colinsullivanjoined
23:44:09  * Golesjoined
23:45:19  * Golesquit (Client Quit)