00:02:28  * wamattquit (Ping timeout: 256 seconds)
00:10:30  * mdedetrichjoined
00:40:04  * lluadquit (Ping timeout: 276 seconds)
00:45:59  * lluadjoined
00:59:42  * ArxPoeticajoined
01:35:04  * mdedetrichquit (Quit: Computer has gone to sleep.)
02:00:48  * mdedetrichjoined
02:40:30  * lluadquit (Quit: lluad)
02:52:28  * ArxPoeticaquit (Quit: Leaving.)
03:22:16  * sberrymanjoined
03:53:36  * wamattjoined
04:27:08  * wamattquit (Quit: wamatt)
04:28:57  * wamattjoined
05:53:52  * wamattquit (Quit: wamatt)
06:03:57  * wamattjoined
06:18:38  * mdedetrichquit (Quit: Computer has gone to sleep.)
06:23:44  * mdedetrichjoined
06:40:40  * wamattquit (Quit: wamatt)
09:58:53  * mdedetrichquit (Quit: Computer has gone to sleep.)
10:52:45  * mdedetrichjoined
11:52:57  * mdedetrichquit (Quit: Computer has gone to sleep.)
12:23:37  * mdedetrichjoined
14:44:28  * edward__joined
14:44:45  * edward__quit (Remote host closed the connection)
14:49:53  * sberrymanquit (Remote host closed the connection)
15:12:31  * lluadjoined
15:47:47  * daslichtjoined
15:50:34  * ArxPoeticajoined
15:53:00  * daslichtquit (Remote host closed the connection)
16:03:06  * mdedetrichquit (Quit: Computer has gone to sleep.)
16:04:01  * mdedetrichjoined
16:04:21  * mdedetrichquit (Client Quit)
16:27:53  * wamattjoined
19:19:44  * dennismartenssonquit (Remote host closed the connection)
19:20:20  * dennismartenssonjoined
19:22:12  * dennismartenssonquit (Remote host closed the connection)
19:22:27  * dennismartenssonjoined
19:59:16  <ArxPoetica>freezy3k
19:59:18  <ArxPoetica>you around?
20:37:08  * miklquit (Quit: Connection reset by Peer Gynt)
21:15:08  <freezy3k>now i am
21:25:46  <ArxPoetica>hey
21:25:55  <k1i>how are things going
21:25:56  <ArxPoetica>just wondered if you ended up using channels at all
21:26:07  <ArxPoetica>(that's for freezy3k)
21:26:23  <freezy3k>nope, not yet, but i will eventually
21:26:38  <freezy3k>once i've tackled the user auth stuff correctly
21:26:44  <ArxPoetica>I'm having a problem I haven't encountered before—I think the session management might need to be expanded
21:27:03  <ArxPoetica>I might have to do a pull request and fix up some stuff or expand 3.0 a bit
21:27:10  <ArxPoetica>or just dig and do it manually
21:27:21  <freezy3k>haven't looked at that yet, still no user auth in my app
21:27:26  <ArxPoetica>np
21:27:43  <ArxPoetica>really i need owen or paul
21:28:48  <k1i>:D
21:29:01  <k1i>if you are scaling to multiple servers, im going to have to plug connect-redis-realtime
21:29:51  <k1i>for sesison storage
21:32:12  <ArxPoetica>not yet
21:32:17  <ArxPoetica>simpler problem right now—
21:37:38  <ArxPoetica>It's actually as simple as fetching a list of all other users in a given channel
21:37:52  <ArxPoetica>The documentation says it's possible, but I don't see it
21:49:33  <k1i>hmm
21:49:44  <k1i>that seems like it could be a potential security hole
22:30:02  <ArxPoetica>no only on the server side
22:30:20  <ArxPoetica>server sessions
22:33:54  <k1i>ah
22:34:05  <k1i>did you look in the redis sub list?
22:37:58  <ArxPoetica>not yet
22:38:06  <ArxPoetica>where would that be?
22:39:02  <ArxPoetica>k1i
22:39:07  <k1i>sec
22:39:13  <ArxPoetica>k
22:39:15  <k1i>are you using connect sessions?
22:39:22  <k1i>a la redis?
22:39:29  <ArxPoetica>yes
22:39:51  <k1i>let me open th elib
22:39:59  <ArxPoetica>sure
22:40:04  <ArxPoetica>https://github.com/socketstream/socketstream/blob/master/src/session/index.coffee
22:40:31  <k1i>it isnt in SS
22:40:32  <ArxPoetica>there are a few session handlers in here: https://github.com/socketstream/socketstream/blob/master/src/session/channels.coffee
22:40:35  <k1i>ohh
22:40:38  <k1i>i am looking in the raw redis
22:40:40  <k1i>sub list
22:40:45  <ArxPoetica>gotcha
22:40:47  <k1i>in the connect-redis(-realtime) lib
22:41:01  <ArxPoetica>no I have a very simple use case
22:41:16  <k1i>well this would be a very simple way to get a list of SIDs subbed to a channel
22:41:17  <ArxPoetica>say somebody logs into a site, creates a session on a computer, and then leaves that computer
22:41:30  <ArxPoetica>right
22:41:37  <ArxPoetica>so then they go to computer B
22:41:40  <ArxPoetica>log in again
22:41:49  <k1i>yea
22:41:53  <ArxPoetica>I need to ping and boot the other session
22:41:58  <ArxPoetica>or at least handle them
22:42:08  <k1i>easy solution
22:42:14  <k1i>:)
22:42:16  <ArxPoetica>I'm all ears, ha ha
22:42:20  <k1i>you have the SID on hand?
22:42:28  <k1i>of each user
22:42:33  <ArxPoetica>um, well—that's the first part
22:42:35  <k1i>if you have it - this is a really easy solution
22:42:37  <ArxPoetica>I need to look up SID
22:42:39  <k1i>ok
22:42:40  <k1i>well
22:42:42  <k1i>the outline of the solution:
22:42:58  <k1i>when a user logs in, you commit their SID to a permanent datastore (mongo, mysql, etc) under their user doc/row
22:43:10  <ArxPoetica>right—doing that
22:43:13  <k1i>you also, during the login check, fire an event over pubsub
22:43:17  <ArxPoetica>err…no, not doing it
22:43:18  <k1i>to the user's former "sid"
22:43:21  <ArxPoetica>was thinking of doing that though
22:43:21  <k1i>so
22:43:22  <ArxPoetica>ha
22:43:23  <k1i>every user
22:43:26  <k1i>needs to subscribe to a channel
22:43:28  <k1i>with their own sid
22:43:33  <ArxPoetica>doing that
22:43:36  <ArxPoetica>ha
22:43:36  <k1i>so the new login event fires an event on the old SID
22:43:41  <k1i>that says "logout"
22:43:47  <k1i>and then destroys the session in memory (redis)
22:43:48  <ArxPoetica>right
22:43:53  <ArxPoetica>yeah
22:44:27  <ArxPoetica>that's the part I don't know how to do: how to look up a session w/ a particular SID. So essentially, I have to lookup the SID in the db?
22:44:32  <ArxPoetica>store and lookup
22:44:37  <ArxPoetica>I get that part
22:44:46  <ArxPoetica>but how do I do the REDIS SID lookup?
22:44:54  <k1i>so
22:44:55  <ArxPoetica>that's the part I don't know how to do
22:44:58  <k1i>you dont know how to get a user's own SID?
22:45:00  <k1i>in SS
22:45:01  <k1i>?
22:45:08  <ArxPoetica>um.
22:45:13  <ArxPoetica>I know how to do that
22:45:16  <ArxPoetica>it's in the session
22:45:21  <ArxPoetica>req.session.id or whatever
22:45:29  <ArxPoetica>might be userId can't remember at the moment
22:45:33  <k1i>well
22:45:35  <k1i>if you are capable of getting that
22:45:40  <k1i>commit it to the persistence layer you are using
22:45:48  <ArxPoetica>but in SS you have your own session if you're on computer B
22:45:54  <k1i>yes
22:45:55  <ArxPoetica>so how do you look up computer A's session
22:46:00  <k1i>on the login event
22:46:20  <k1i>on computer B's login, you look into the user's record for the old SID(s)
22:46:29  <k1i>you are using mongo?
22:46:32  <ArxPoetica>yup
22:46:39  <k1i>then in your login function
22:46:49  <k1i>you look into User.id.activeSID
22:46:51  <k1i>err
22:46:58  <ArxPoetica>right
22:46:59  <k1i>User.***id***.activeSID
22:47:01  <ArxPoetica>I follow that
22:47:21  <ArxPoetica>and take that ID
22:47:26  <ArxPoetica>and kill the old session
22:47:28  <k1i>and publish an event on ta channelw ith the same name
22:47:29  <k1i>yes
22:47:37  <k1i>so immediately after the user logs in
22:47:39  <ArxPoetica>but that's the part I can't figure out in terms of REDIS
22:47:43  <k1i>well
22:47:45  <k1i>connect abstracts this
22:47:46  <ArxPoetica>like
22:47:48  <k1i>there is a destroy method.
22:47:49  <ArxPoetica>right
22:47:52  <ArxPoetica>ok
22:47:56  <k1i>the pubsub stuff like you want to do you have to do as i just described
22:47:56  <k1i>but
22:47:58  <ArxPoetica>so I need to require connect
22:48:00  <k1i>connect exposes a destroy method
22:48:01  <ArxPoetica>and do it manually
22:48:01  <k1i>no
22:48:08  <k1i>let me look at how SS exposes this
22:48:09  <k1i>sec
22:48:13  <ArxPoetica>ok ha ha
22:48:15  <k1i>im looking in my connect-redis-realtime driver
22:48:17  <k1i>the function is definitely there
22:48:20  <k1i>im not sure if SS passes it through
22:48:23  <ArxPoetica>awesome
22:48:26  <k1i>if it doesn't youll need to make a quick mod
22:48:35  <ArxPoetica>I can do a quick dump of the ss variable
22:48:41  <ArxPoetica>and gist it
22:48:44  <k1i>sec ill look at the code
22:48:59  <k1i>https://github.com/socketstream/socketstream/blob/master/src/session/index.coffee
22:49:02  <k1i>is this .3
22:49:03  <k1i>or .4?
22:49:08  <k1i>either way it shouldnt matter
22:49:17  <k1i>connect is still in use, just curious
22:49:32  <k1i>ok
22:49:33  <ArxPoetica>3
22:49:50  <ArxPoetica>yeah, i've been looking at that file
22:49:58  <k1i>see this?
22:50:00  <k1i>exports.store?
22:50:35  <ArxPoetica>https://gist.github.com/americanyak/d8f7e7b7d9869610cbbb
22:50:40  <ArxPoetica>yeah, I see that
22:50:46  <ArxPoetica>I was actually looking at that for a while
22:50:56  <k1i>er sec
22:50:57  <k1i>this is odd
22:51:09  <ArxPoetica>ha ha
22:51:17  <ArxPoetica>that's just a dump of the ss variable on the server
22:51:20  <ArxPoetica>console.log(ss)
22:51:28  <ArxPoetica>wasn't sure it would help
22:52:17  <ArxPoetica>so essentially, you were pointing at this: https://gist.github.com/americanyak/d8f7e7b7d9869610cbbb#file-ss-js-L7
22:52:27  <ArxPoetica>store: { use … get … }
22:53:51  <ArxPoetica>also, I just realized I should update to 0.3.4 :P
22:53:58  <ArxPoetica>but that's another matter
22:58:51  <k1i>ok
22:58:52  <k1i>so
22:58:56  <k1i>i need to look at the connect driver itself
22:58:59  <k1i>because session.load
22:59:05  <k1i>i forget where that is exposed
23:00:07  <k1i>im pretty sure that's exposed in connect.session
23:00:10  <k1i>sec
23:00:12  <ArxPoetica>ok
23:00:13  <ArxPoetica>thx
23:01:01  <k1i>Session.prototype.load is what I am looking for
23:01:13  <k1i>errr
23:01:14  <k1i>I mean
23:01:16  <k1i>Session.load
23:01:57  <k1i>when I was writing connect-redis-realtime I remember seeing this
23:02:13  <k1i>found it.
23:02:15  <k1i>https://github.com/senchalabs/connect/blob/master/lib/middleware/session/store.js
23:02:44  <k1i>OK, where did you execute that gist you sent me?
23:02:58  <k1i>ArxPoetica:
23:04:02  <k1i>you do this: ss.session.store.get.destroy(computerASID)
23:04:15  <k1i>actually I wrote that wrong
23:04:21  <k1i>ss.ession.store.get().destroy(computerASID)
23:04:40  <k1i>ss.session.store.get().destroy(computerASID)
23:04:41  <k1i>:)
23:14:30  * mdedetrichjoined
23:29:02  <ArxPoetica>sorry had to step away
23:29:42  <ArxPoetica>thx for this help
23:29:46  <ArxPoetica>I'll give it a whirl
23:30:11  <ArxPoetica>ss.session.store.get() <— do does that return the connect store?
23:31:29  <k1i>yea
23:33:06  <ArxPoetica>so in other words, this: http://www.senchalabs.org/connect/session.html
23:33:12  <ArxPoetica>that's the relevant API
23:33:23  <k1i>yea
23:33:26  <ArxPoetica>awesome
23:33:32  <ArxPoetica>totally cool. more control
23:33:42  <k1i>to be entirely honest
23:33:51  <k1i>the connect session store is kind of shitty the way data is stored
23:33:55  <k1i>and written
23:34:11  <k1i>Store.set(sid,session,callback)
23:34:14  <ArxPoetica>hmm
23:34:14  <ArxPoetica>brb
23:34:17  <k1i>session is the entire session object
23:34:28  <k1i>rather than an individual field
23:34:34  <k1i>(which is rather inefficient)
23:37:06  <ArxPoetica>ic
23:37:53  <ArxPoetica>in other words, has to propagate through the object
23:38:19  <ArxPoetica>how'd the nike interview go?
23:38:23  <k1i>very good
23:38:34  <k1i>another SF bay area company wants me to fly down monday to review an offer
23:39:51  <ArxPoetica>nice
23:53:42  * mdedetrichquit (Quit: Computer has gone to sleep.)
23:58:29  <k1i>ArxPoetica: how did that session thing work