00:02:29  * _sorensenquit (Ping timeout: 240 seconds)
00:46:47  * tilgoviquit (Ping timeout: 244 seconds)
00:53:41  <guybrush>dominictarr: it sounds like hookio-thing
01:06:25  <Raynos>dominictarr: implement demos of crdt and scuttlebutt
01:06:39  <dominictarr>that is what I'm doing
01:06:40  <Raynos>I'm doing similar things but in the browser with distributed crazies
01:06:45  <dominictarr>right now
01:07:03  <Raynos>dominictarr: https://github.com/Raynos/mux-demux-net#example-client is similar to autonode
01:07:11  <dominictarr>guybrush, yeah, but only a small part of hook.io which is the important thing.
01:07:17  <Raynos>I still think in the server <-> client mentality rather then everything bidirectional
01:07:45  <dominictarr>Raynos, you'll come around!
01:07:57  <Raynos>well your autonode is weird
01:08:05  <Raynos>because one guy is the server and the rest are clients
01:08:11  <Raynos>so its weird to not have to have an if there
01:08:28  <Raynos>ill add autonode style API to browser-stream-server
01:08:44  <dominictarr>it makes sense when you use it with crdt/scuttlebutt
01:08:50  <Raynos>dominictarr, SubStack: https://github.com/Raynos/multi-channel-mdm#example-server whats a better name for this
01:12:28  <Raynos>maybe this is more clear: https://github.com/Raynos/multi-channel-mdm/blob/master/index.js#L4
01:14:19  <dominictarr>Im confused about what you mean by "multi-channel"
01:14:39  <dominictarr>to me, it sounds like that is what mux-demux is.
01:16:08  <dominictarr>what is the persistent stream?
01:16:25  <dominictarr>does it like echo back the input?
01:16:30  <Raynos>dominictarr: https://github.com/Raynos/multi-channel-mdm/blob/master/index.js#L16
01:16:37  <Raynos>everyone pipes into the communicationStream
01:16:42  <Raynos>and it echos back to everyone
01:16:46  <Raynos>so its basically a broadcaster
01:16:59  <Raynos>send message to central communication channel and it sends it to everyone else in the channel
01:17:11  <dominictarr>right. now that is easy to understand.
01:17:13  <Raynos>the channel name is confusing, i agree
01:17:25  <Raynos>i dont know what would be a better module name
01:17:28  <Raynos>broadcaster ?
01:17:41  <dominictarr>well, you just have a stream for each room
01:17:58  <dominictarr>or a splitter
01:17:59  <Raynos>yeah I know
01:18:03  <Raynos>why a splitter?
01:18:20  <Raynos>i currently have a stream for each "channel" which is effectively a room
01:19:11  <dominictarr>how is it different to a normal stream?
01:19:33  <dominictarr>it has stuff for disconnecting streams without affecting the others, right?
01:20:27  <dominictarr>multi-echo would be a clearer name.
01:21:16  * ryan_stevensquit (Read error: Connection reset by peer)
01:24:17  * ryan_stevensjoined
01:41:57  * ryan_stevensquit (Read error: Connection reset by peer)
01:44:04  * ryan_stevensjoined
01:47:04  * maksimlinjoined
01:47:55  * thatguydanjoined
01:50:17  * tilgovijoined
01:55:10  <maksimlin>dominictarr ?
01:55:20  <dominictarr>yo whats up
01:55:50  <maksimlin>hi, started work on text search...
01:57:02  <maksimlin>but got stuck on entering text as there is no way for a plugin to 'swallow' text input, as all plugins that bin to keys event emitter get delivered keys, so entry always prints entered chars, even when I want to be in 'enter search term' mode...
01:57:52  <dominictarr>yeah, we are gonna need to something there
01:58:20  <dominictarr>we'd need to use something other than event emitter
01:58:21  <maksimlin>does it make sense to have a single listener bind to key emitter and then have it re-send to all interested plugins in serial manner?
01:58:38  <dominictarr>exactly what I was thinking
01:58:52  <maksimlin>and then allow each plugin to return true ala brwoser dom events?
01:59:04  <dominictarr>or like, let the plugins add their listener to a keypresses array
01:59:12  <maksimlin>to indicate that its handled the key event
01:59:21  <dominictarr>call them one at a time, but if the listener return === false
01:59:29  <dominictarr>skip the rest.
01:59:36  <maksimlin>yes exactly
02:00:35  <dominictarr>this idea has been in my head, but i didn't do anything, because I didn't need it yet.
02:00:35  <maksimlin>i can submit that as a sep pull req if you like?
02:00:47  <dominictarr>great. sure
02:01:40  <maksimlin>ok, down with a cold today, but will work on it next chance i get
02:02:09  * tilgoviquit (Remote host closed the connection)
02:02:41  <dominictarr>cool. I'm not expecting to do any work on hipster in the next few days at least, although it IS my main editor now.
02:02:53  * joshwnj`joined
02:03:55  * ryan_stevensquit (Read error: Connection reset by peer)
02:04:19  <maksimlin>wow really? i tried dog fooding and its almost there but cant cope without undo
02:04:46  * joshwnjquit (Ping timeout: 265 seconds)
02:05:17  * ryan_stevensjoined
02:06:32  <maksimlin>also gnome-term either is swallowing ctrl-home/end or generates esc codes that the keys moduel doesn't know, either way I've switched to rxvt-unicode and all works fine
02:09:54  * thatguydanquit (Quit: thatguydan)
02:10:25  <dominictarr>maksimlin, yeah. I switched to xterm
02:10:47  <dominictarr>it works right in xterm, and then I use screen.
02:10:47  * ryan_stevensquit (Read error: Connection reset by peer)
02:10:53  <dominictarr>Ctrl-A space
02:11:08  <dominictarr>to switch screens in screen
02:11:10  * thatguydanjoined
02:11:23  <dominictarr>I would prefer to have tabs though.
02:11:59  <dominictarr>but that is something that hipster can have, now that headers work.
02:12:00  * ryan_stevensjoined
02:12:48  <dominictarr>I would have implemented undo already if it was a killer for me. maybe vim (with it's rather shit undo) has trained be out of it.
02:13:14  <dominictarr>was thinking could probably wang undo in using adiff
02:14:04  <dominictarr>it would be linewise, but it would probably be good enough for v0
02:15:43  <dominictarr>or, use snob and get collaborative editing!
02:17:32  * joshwnj``joined
02:18:26  * joshwnj``part
02:18:58  * joshwnj`quit (Ping timeout: 245 seconds)
02:19:30  * joshwnjjoined
02:20:37  <dools>dominictarr: "tabs" in screen? ctrl-a " gives you a window list
02:20:38  * ryan_stevensquit (Read error: Connection reset by peer)
02:20:48  <dools>and ctrl-a ' lets you name them
02:21:03  <dominictarr>dools, yeah. I want consistent controls
02:21:18  <dools>consistent between what?
02:21:36  <dominictarr>the browser and other things that have tabs.
02:22:05  <dominictarr>problem is my mussels can't remember whether they are in terminal or in browser.
02:22:13  <dominictarr>they just know they want to switch tabs.
02:22:35  * ryan_stevensjoined
02:22:51  <dominictarr>it's gotta be ctrl-shift-pgup/pgdn
02:23:10  <dominictarr>oops, I mean ctrl-pgup/pgdn
02:23:18  <dominictarr>ctrl-shift moves the tabs.
02:24:05  <dools>aha
02:24:14  <dominictarr>dools, at the moment i can survive screen with ctrl-a space
02:24:58  <dominictarr>I've remapped alt-tab to win-space (way faster), anyway, so it's fairly similar.
02:25:35  <dominictarr>and win-arrows switches workspaces! way better!
02:27:17  <substack>rannmann: refresh the page!
02:27:20  * ryan_stevenspart
02:27:25  <substack>queue has some issues, I'm fixing those!
02:29:53  * xaqjoined
02:39:10  <isaacs>dominictarr: would you like me to start pushing to the repo/npm for configchain fixes?
02:39:24  <isaacs>dominictarr: or do you want to keep reviewing?
02:39:31  <dominictarr>I trust you
02:39:33  <isaacs>i'd like to show respect, but also don't want to be bugging you with work :)
02:39:41  <isaacs>ok, i'll just start landing stuff then
02:39:46  <dominictarr>sweet
02:40:01  <isaacs>i'll make sure that the tests in there keep passing
02:40:09  <isaacs>the API's pretty well covered
02:42:25  <dominictarr>cool.
02:43:44  * mikealjoined
02:54:35  <dominictarr>or make a pull request if you want, the thing is, I wasn't planning on ever changing that module again.
02:55:21  <dominictarr>isaacs, before you reminded me about it I don't think I'd touched it in like, a year. or nearly a year.
02:56:34  <isaacs>haha
02:56:41  <isaacs>i think i remember talking to you about it
02:56:45  <dominictarr>you don't need to worry about trampelling over my thing. I have _heaps_ of things.
02:56:50  <isaacs>yeah
02:56:52  <isaacs>there are a lot of things
02:57:05  <isaacs>configs are the current thing holding together the bits of npm
02:57:14  <isaacs>cutting out logging let it fall apart a bunch
02:57:21  <isaacs>configs is a deeper sinew
03:09:45  <Raynos>dominictarr: the only thing special about multi-channel is that you can give it a stream name and it has multipled named echo streams
03:10:26  <dominictarr>Raynos, why don't you just make a thing that echos just one stream
03:10:42  <dominictarr>and then another thing that handles named streams
03:11:11  <Raynos>dominictarr: because echoing one stream is like almost no code and named streams is kind of done by mdm already
03:11:47  <dominictarr>either creating the end point, or connecting to the right end point if it's there already.
03:12:44  <dominictarr>almost code is a good size for a module!
03:13:10  <dominictarr>didn't substack publish a 4 line module the other day?
03:13:26  <dominictarr>and wasn't half of that "boiler plate"
03:13:36  <dominictarr>"function (x) {"
03:13:39  <dominictarr>and "}"
03:14:50  <substack>https://github.com/substack/node-gcd/blob/master/index.js
03:15:47  <substack>I see npm as a subset of all possible programs
03:16:25  <substack>we can't have all of them but we can at least have the well known algorithms up in there
03:16:50  <substack>pretty much every algorithm with its own page on wikipedia should be on npm
03:18:07  <dominictarr>wow, I totally forgot I have this streaming key-value store I wrote localStorage support.
03:18:07  <dominictarr>https://github.com/dominictarr/kv
03:18:13  <dominictarr>pleasant surprise.
03:18:57  <dominictarr>forgetting things is nice, because then you get to discover them all over again.
03:23:24  * AvianFlujoined
03:23:49  <dools>http://www.goodreads.com/quotes/358629-from-another-direction-he-felt-the-sensation-of-being-a
03:23:55  <isaacs>alright! npm 1.1.49 publishing, with the abstracted-out configs
03:25:13  <dools>dominictarr: ^^ apropos of forgetting things
03:26:13  * xaqquit (Remote host closed the connection)
03:26:20  <dominictarr>so true.
03:27:01  * joshwnjquit (Remote host closed the connection)
03:28:32  * joshwnjjoined
03:31:05  * mikealquit (Quit: Leaving.)
03:33:13  * xaqjoined
03:39:47  <dominictarr>isaacs, config-chain@1.1.1
03:40:18  <dominictarr>oh, you already did that!
03:40:33  <dominictarr>sweet!
03:40:52  <dominictarr>right, I'm going to bed! catch you guys later
03:41:01  * dominictarrchanged nick to dominic[zzzz]
03:41:06  * xaqquit (Remote host closed the connection)
03:41:33  * xaqjoined
03:49:19  * mikealjoined
03:51:24  * mikealquit (Client Quit)
03:57:51  <Raynos>https://gist.github.com/3355703 Anyone have any additions to add to Libraries side?
04:00:19  <Raynos>Specifically: TODO: Libraries: Use a latency compensation strategy / library that does just that, cleanly and without magic.
04:03:26  * maksimlinquit (Ping timeout: 245 seconds)
04:42:05  <substack>Raynos: building a distributed unix philosophy meteor I see!
04:42:22  <Raynos>substack: yes
04:42:30  <Raynos>I need to community to tell which pieces I dont need to reinvent
04:42:40  <Raynos>im working on a not sucky live reload
04:43:25  <substack>sweet
04:43:50  <substack>also after writing sorta I have a lot of respect for what the meteor folks have built
04:44:03  <substack>holy fuck sorta was like the hardest tiny bit of programming I've ever written
04:44:49  <substack>which is so non-obvious
04:45:02  <substack>for a 104 line js file
04:45:33  <substack>but still, tiny libraries are the long term winners here
04:45:35  <Raynos>substack: I see, i was thinking "shit I need to write that thing myself but then I was like substack o/"
04:45:55  <substack>I like that you have a grandious side project like this!
04:46:25  <substack>*grandiose
04:46:52  <Raynos>well most of its done
04:46:57  <Raynos>only the TODO bits need to be done
04:47:05  <Raynos>live reload should be done today
04:47:12  <substack>wowsy
04:47:24  <substack>live reload of what types of assets?
04:47:34  <Raynos>ALL THE ASSETS
04:48:02  <Raynos>I'll tackle querying second because I know where to start
04:48:12  <Raynos>the DOM widgets thing is hard :/
04:48:24  <Raynos>and latency compensation is "FFS COMMUNITY WHY YOU NO SOLVE THIS FOR ME YET"
04:48:43  <Raynos>substack: how many codebux do I have to pay you for hack together latency compensation
04:49:11  <Raynos>substack: you should totally get the community to accept codebux. "I pay you 5 codebux to do X means I refactor one of your libraries to reduce its codebux by 5"
04:50:06  <Raynos>visionmedia: I'll reduce express by 10 codebux if you go on nodeup
04:51:12  <substack>hahaha
04:51:29  <substack>well it's easy to get more codebux, you just take pieces and release them as separate modules
04:51:39  <substack>^ secret ideological underpinning of codebux
04:51:59  <substack>since the modules you use don't count against your codebux score
04:53:51  <Raynos>:)
04:54:31  <Raynos>doing live reload is a pain because you need to know who the browsers are :/
04:54:46  <Raynos>so you either do it automatically or transparently
04:55:03  <Raynos>you know what would be super cool
04:55:08  <Raynos>live reload as a third party thing
04:56:40  <paul_irish>whats different about your livereload
04:57:52  <Raynos>paul_irish: each browser opens a stream server and connects to a the user network
04:57:58  <paul_irish>most of the innards of the real LiveReload are released as node modules nowadays https://github.com/livereload
04:58:14  <Raynos>the server then connects to the user networks and sends a command directly to the browser to do reload logic
04:58:17  <paul_irish>lr-client and -server in there.
04:58:37  <Raynos>paul_irish: i looked at that and puked at socket.io & augmenting my http requests for me
04:58:48  <Raynos>also mine is peer to peer orientated
04:59:21  <Raynos>you can call reload() in a browser and it will reload all other browsers connected to the user network
04:59:46  <paul_irish>seems cool
05:00:29  <Raynos>its a different higher level way of going about
05:00:36  <Raynos>based on user discovery networks and stream servers
05:00:43  <Raynos>but I need to open source user discovery networks first
05:01:03  * xaq_joined
05:01:26  <Raynos>There are users, they exist. Users run a server in their browser that accepts incoming commands and execute them. Then any client (node or browser or whatever) connects to the discovery network and broadcasts a message to all users on it
05:02:14  <Raynos>paul_irish: the main advantage is that its architecture to swap in webrtc when its done and lose the central servers
05:03:23  <maxogden>webrtc will be cool when it exists
05:04:02  <maxogden>unless they fuck up the streaming api (as has happened with every streaming api in the browser to date)
05:04:33  * xaqquit (Ping timeout: 240 seconds)
05:04:33  <substack>maxogden: operation infiltrate w3c
05:04:44  <maxogden>operation teach w3c about streams
05:04:50  <substack>also this
05:07:41  <Raynos>maxogden: just wrap the streaming api to look like node like substack did
05:07:59  <substack>well xhr is not as helpful as it could be
05:08:06  <substack>XHR Y U NO FULL DUPLEX
05:08:24  <substack>and buffering the entire response into a growing buffer super sucks
05:08:33  <maxogden>Raynos: https://github.com/maxogden/domnode-filestream https://github.com/maxogden/domnode-usermedia https://github.com/maxogden/domnode https://github.com/maxogden/domnode-webworker https://github.com/maxogden/domnode-geolocation
05:08:45  <Raynos>maxogden: seen those
05:09:12  <maxogden>Raynos: then what did you mean by "wrap the streaming api to look like node like substack did"
05:09:24  <Raynos>maxogden: have you seen https://github.com/Colingo/browser-stream-server#example-browser-server-in-a-seperate-browser https://github.com/Raynos/distributed-map#example-client-any-browser
05:09:40  <Raynos>maxogden: substack fixed WS https://github.com/substack/shoe#stream-all-the-things
05:10:02  <Raynos>maxogden: I can then build shit on it like reconnection logic ( https://github.com/Raynos/boot#client-example )
05:10:24  <Raynos>servers in browsers & distributed data maps power my browser based peer discovery network
05:10:38  <Raynos>maxogden: If your knowledgable in distributed things we should coffee / hack / bike
05:11:13  <maxogden>i am but this all just sounds like websockets parlour tricks
05:14:02  <Raynos>maxogden: yes it's using WS to talk to central relay server
05:14:11  <Raynos>it's peer to peer in spirit and is waiting for the web to hurry up
05:14:11  <st_luke>it's an ILLUSION
05:14:27  <Raynos>its just a forced relay node in you network connection
05:16:08  <maxogden>st_luke: i happen to enjoy biscuits tyvm
05:17:41  <st_luke>OR CANDY
05:17:59  <st_luke>ILLUSION MICHAEL
05:19:05  * thatguydanquit (Quit: thatguydan)
05:19:11  <isaacs>LOUDBOT LIKEY
05:19:54  * thatguydanjoined
05:21:19  <LOUDBOT>st_luke: IT IS NOT NECESSARY
05:21:34  <st_luke>f
05:23:07  <Raynos>substack: upnode swallows errors
05:23:10  <Raynos>which is weird
05:23:38  <Raynos>substack: https://github.com/substack/upnode/blob/master/index.js#L241
05:23:45  <Raynos>It's not weird, it's unexpected
05:23:48  <Raynos>It's kind of cool
05:24:54  <maxogden>POTATO
05:25:16  <maxogden>jesusabdullah: hi
05:25:16  <maxogden>jesusabdullah: hi
05:25:17  <maxogden>jesusabdullah: hi
05:25:17  <maxogden>jesusabdullah: hi
05:25:17  <maxogden>jesusabdullah: hi
05:25:20  <maxogden>jesusabdullah: hi
05:25:22  <maxogden>jesusabdullah: hi
05:25:25  <maxogden>jesusabdullah: hi
05:25:31  <thatguydan>Upnode is pretty aggresive
05:25:34  <thatguydan>I love it
05:25:52  <maxogden>thatguydan: you asks me a question yesterday an di forgot what it was
05:25:57  <thatguydan>Though probably best if we could hook in some handlers for logging
05:26:09  <thatguydan>maxogden: me too lol, couldn't have been that important
05:26:09  <substack>FEISTY
05:26:13  <maxogden>hah
05:30:15  <niftylettuce>JOBS IN JOBS LIKE WUT
05:30:29  <AvianFlu>NO LOUDBOT YOU ARE A TOOL
05:30:30  <niftylettuce>JESUSABDULLAH IS A HANDY MAN
05:37:57  <niftylettuce>I JUST FIGURED OUT SOME SHIT
05:37:58  <niftylettuce>http://open.spotify.com/track/7GebhNsNL8mm3D218sd1IM
05:59:56  * xaq_quit (Remote host closed the connection)
06:01:38  * captain_morganjoined
06:16:31  * joshwnjquit (Quit: ERC Version 5.3 (IRC client for Emacs))
06:48:53  * AvianFluquit (Quit: AvianFlu)
07:48:23  * bas_joined
07:48:41  <bas_>hello there \o/
07:48:53  <bas_>I see to have ended up in the eternal waiting queue from hell
07:49:18  <bas_>ie. eternal and alone
07:49:29  <bas_>I'm on the developer plan
07:49:53  <Raynos>I hate reconnection logic
07:50:03  <Raynos>substack: UI components are easy compared to reconnections
07:51:13  <isaacs>substack: i'm using your codez for chaos
07:51:16  <substack>bas_: sorry about that! I'm working on a fix right now
07:51:17  <bas_>and in Chrome if I am not alone forever in the queue, the dino's kinda build a tower
07:51:26  <substack>if you refresh does it fix it?
07:51:51  <bas_>I've tried about 10-12 times over the last 30 mins or so
07:52:27  <bas_>I've tested both in Chrome and Firefox (on arch linux)
07:52:36  <substack>sorry :(
07:52:45  <bas_>and it happens regardless of the browser I want to test in
07:52:46  <substack>do you get through eventually?
07:52:58  <bas_>no I'm still in the queue forever alone
07:53:06  <substack>youch ok
07:55:08  <Raynos>I fixed the reconnects!
07:55:09  <Raynos>https://github.com/Colingo/stream-server
07:55:20  <Raynos>substack: try the lazynode demo ( https://github.com/Colingo/stream-server/tree/master/examples/lazynode )
07:55:43  <Raynos>it transparently reconnects to the server if you take the browser server back down and up and transparently reconnects if the relay server goes away and comes back
07:55:46  * mikealjoined
07:55:50  <Raynos>Is transparent reconnect of value?
07:55:52  <bas_>substack: it seems to be working now
07:55:54  <Raynos>or is it magic
07:56:31  * captain_morganquit (Remote host closed the connection)
07:57:08  <substack>bas_: oh great to hear!
07:57:40  <substack>bas_: I've been working on the long term fix tonight but it's tricky because it involves re-organizing how we do queueing
07:57:53  <substack>been working on this for a while
07:58:19  <bas_>hm it seems that for IE 8 I end up in the queue again
07:58:34  <bas_>whereas firefox etc do work again
07:59:02  <bas_>hm I just went from position 2/3 in a queue to 3/3
08:00:09  <bas_>or actually no, that's just the dino's being displayed incorrectly
08:00:55  <substack>known issue with the display stuff
08:01:08  <substack>fixed in my dev build but it will be a bit more until we can deploy it
08:05:22  <bas_>I did just go from 1/1 to 2/2
08:10:32  <bas_>substack: I'm only getting the forever alone queue with IE6-IE8
08:13:24  <bas_>I am guessing your system thinks I still have a session open on either of those browsers
08:15:08  <bas_>when does a session terminate?
08:17:07  <bas_>could you bomb the magic eternal session?
08:18:04  * timoxleyquit (Quit: Computer has gone to sleep.)
08:19:32  * joshwnjjoined
08:33:49  <substack>oh could be!
08:33:58  <substack>we can restart them
08:37:03  <bas_>could you kill whatever sessions are running for ik@basdirks.eu?
08:38:26  <bas_>I could send a comment from the browserling site to prove it's actually me talking
08:38:34  <bas_>oh nvm
08:38:37  <bas_>seems you already did it
08:38:44  <bas_>cheers
08:39:37  <bas_>hm but now I switched to IE8 and I am forever alone again
09:18:33  * timoxleyjoined
09:38:42  * thatguydanquit (Ping timeout: 272 seconds)
10:11:52  <substack>Raynos: do you use any libraries for browser dom node visibility and animations?
10:23:04  * blakmatrixquit (Read error: Connection reset by peer)
10:38:58  * timoxleyquit (Quit: Computer has gone to sleep.)
11:07:16  <substack>dispatchEvent() is just a crappy api :(
11:08:12  <substack>maxogden: do you have any modules that wrap the dom event system to make it work the node way?
11:10:05  <substack>sweetness https://github.com/dodo/node-domevents
11:10:47  <substack>wait the the fuck, coffee script
11:13:08  <substack>blarg and it doesn't even wrap dispatchEvent
11:38:34  * devaholicquit (Ping timeout: 245 seconds)
12:05:36  * joshwnjquit (Quit: ERC Version 5.3 (IRC client for Emacs))
12:12:45  <rowbit>SubStack, pkrumins: Encoders down:,,,
12:24:46  <rowbit>SubStack, pkrumins: Encoders down:,
12:29:48  <pkrumins>bas_: try now! i just restarted a bunch of processes
12:37:33  * AvianFlujoined
12:42:03  <bas_>I am in ze queue
12:42:11  <bas_>but will have a look in a bit to see if I get out
12:42:52  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 7 on 3 servers. Total servers: 3)
12:44:14  <pkrumins>looks like you wont get out
12:44:24  <pkrumins>queue just randomly increased from 0 to 4 on one server
12:45:07  <pkrumins>i'll restart these ie8s
12:45:46  <bas_>relevant website launch has been postponed so I world doesn't explode if it doesn't get fixed today
12:46:18  <pkrumins>did you have like 3 tabs open?
12:46:24  <pkrumins>seeing you on all the ie8s!
12:46:27  <pkrumins>but now i restarted them
12:46:33  <pkrumins>so you should be able to get in!
12:46:44  <bas_>no I have 1 tab open
12:46:58  <pkrumins>oh crap.
12:47:01  <bas_>but yes I see it's restarted
12:47:05  <bas_>cheers
12:47:10  <pkrumins>well that's a bug then.
12:47:21  <bas_>I think though that if I refresh, I will get backinto forever alone queue
12:47:56  <pkrumins>could work as it's fresh now after restart
12:48:16  <bas_>shall I try?
12:48:29  <bas_>so you know if it happens again?
12:48:55  <pkrumins>yeah you can try
12:49:31  <bas_>ok
12:49:34  <bas_>no queue now
12:49:36  <bas_>\o/
12:49:36  <pkrumins>looks good from here
12:49:43  <pkrumins>just for a while
12:49:48  <bas_>hehe yeah
12:49:51  <pkrumins>but we'll have a fix soon
12:49:52  <bas_>but cheers
12:49:54  <substack>whew
14:14:30  * timoxleyjoined
14:34:23  * timoxleyquit (Quit: Computer has gone to sleep.)
14:42:54  * st_luke_joined
15:11:46  * AvianFluquit (Quit: AvianFlu)
15:11:50  <dominic[zzzz]>does anyone know a really simple client templating lib that works with browserify?
15:17:00  * bas_quit (Ping timeout: 246 seconds)
15:25:55  * dominic[zzzz]changed nick to dominictarr
15:31:24  * st_luke_quit (Remote host closed the connection)
15:54:18  * devaholicjoined
16:47:21  * mikealquit (Quit: Leaving.)
16:49:52  * mikealjoined
17:14:07  * blakmatrixjoined
17:16:03  * mikealquit (Quit: Leaving.)
17:39:29  * xaqjoined
17:43:56  <Raynos>substack: I use the DOM directly, any libraries I do use are on my github account. I tend to either use CSS3 or SVG/canvas for animations
17:47:51  <dominictarr>Raynos, working on crdt examples.
17:47:52  <dominictarr>!
17:48:00  <Raynos>awshum
17:48:41  <dominictarr>also, I think you where right, we should make mux-demux default to not error.
17:48:44  <dominictarr>just end.
17:54:29  <dominictarr>I was being to anal about keeping what I had decided was "proper" stream semantics
17:54:36  <dominictarr>but it makes it harder to use, and you tend to use it differently to many other streams.
17:55:59  <dominictarr>Raynos, where is your lib that does reconnects?
17:56:11  <Raynos>dominictarr: I have multiple, boot does reconnects
17:56:27  <Raynos>dominictarr: https://github.com/Raynos/boot
17:56:54  <Raynos>dominictarr: https://github.com/Colingo/stream-server does it's own layer of reconnects, try the lazynode example and try taking the in browser server & relay server down and up
17:57:36  <dominictarr>I need a reconnector module, that doesn't make any assumptions about what type of stream it is connecting
17:57:56  <dominictarr>it should work the same for both tcp and shoe.
17:58:13  <Raynos>dominictarr: I might be able to refactor boot to do that
17:58:33  <Raynos>the only thing shoe specific is https://github.com/Raynos/boot/blob/master/browser.js#L49
17:58:38  <dominictarr>reboot(addr, function (stream) {...})
17:58:48  <Raynos>the rest is very mdm specific and that's the point of it
17:58:55  <Raynos>it's supposed to reconnect all open mdm streams aswell
17:59:16  <dominictarr>I need a pure text stream. no mdm
17:59:18  <Raynos>boot does transparent reconnects by giving you a stream and buffering when the underlying connection is down
17:59:36  <Raynos>which is different from what you want
17:59:49  <dominictarr>aha yeah, I don't want transparent. I should write my own module.
18:00:51  <dominictarr>although, transparency could be implemented as an additional layer
18:01:32  <dominictarr>hmm, it will have an api similar to autonode
18:02:05  <dominictarr>reboot(function (stream) {...}).connect(addr) //addr can be a function to create a stream.
18:02:17  <dominictarr>that way, you can inject anything.
18:04:15  <dominictarr>though, I will make it support shoe and tcp by default.
18:06:15  <dominictarr>Raynos, do you use domready?
18:06:23  <Raynos>dominictarr: why would I ?
18:06:38  <Raynos>dominictarr: `npm search reconnect` someone might have written this for you
18:06:58  <dominictarr>nope
18:07:29  <Raynos>your right it doesnt exist
18:07:48  <dominictarr>although I wrote this https://npmjs.org/package/reconnector
18:07:50  <Raynos>the weird thing about autonode if more then two nodes try to connect to the same port
18:08:04  <dominictarr>but shoe has depreciated that
18:08:20  <dominictarr>Raynos, well, one will win
18:08:21  <Raynos>then depending on order you either have A<->B, A<->C or B<->A B<->C
18:08:26  <dominictarr>the other will become a client
18:08:36  <Raynos>its having different pairs that's weird
18:09:18  <dominictarr>Raynos, with crdt, scuttlebutt, snob and the other data replication stuff I am writing it doesn't matter at all
18:09:36  <dominictarr>"server" and "client" is irrelivant
18:10:00  <dominictarr>like in your distributed-map, you know how you have a proxy?
18:11:04  <dominictarr>in scuttlebutt (which is the simplest one) every node can be a "proxy" you just connect it to multiple nodes.
18:12:46  <dominictarr>you can use any kind of random network topology, as long as the network is fully connected, at least some of the time.
18:14:11  <dominictarr>the trick is basically, that each node remembers what data it recieved from whom, and then when it connects to another node, it's like "I havn't heard from Raynos since tuesday" and the other node sends you the new Raynos news.
18:14:25  <dominictarr>but only the stuff newer than tuesday.
18:15:46  * _sorensenjoined
18:17:02  * mikealjoined
18:36:30  * mikealquit (Quit: Leaving.)
18:38:58  <paul_irish>how did npm get its start? i supopse at the beginning there wasnt a rush to bootstrap it with packages..
18:39:13  <paul_irish>we're facing something now with a soon-to-be-released clientside package manager
18:39:23  <paul_irish>feel like we need to get some packages in there to start
18:39:39  <paul_irish>launching a PM with 10 packages is pretty whoop-de-dooo. :)
18:40:43  <dominictarr>paul_irish, there where a bunch of other competing potential package managers at the time
18:40:57  <paul_irish>oh in node? didn't know..
18:41:08  <paul_irish>howd npm win?
18:41:27  <dominictarr>I understand isaacs went around and made pull requests on a whole bunch of modules to ad a package.json
18:41:38  * substack_joined
18:41:46  * elliottc1blejoined
18:43:11  <paul_irish>that'd do it.
18:44:09  * antix_joined
18:46:44  * substackquit (*.net *.split)
18:46:44  * antixquit (*.net *.split)
18:46:44  * elliottcablequit (*.net *.split)
19:16:16  * mikealjoined
19:51:22  <maxogden>i want each of the 8 or so new client side package managers to write a blog post describing exactly why they couldnt use npm
19:55:53  <dominictarr>maxogden, I could write that for each of them in one tweet:
19:56:24  <dominictarr>"we have not yet realized that npm is in fact the best package manager ever"
19:56:41  <rowbit>/!\ ATTENTION: (default-local) chase@... successfully signed up for developer browserling plan ($20). Cash money! /!\
19:56:41  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
19:57:25  <dominictarr>substack_, can I use shoe as a client from the serverside?
19:58:22  <chapel>because they don't see how you could use node_modules for client side
19:59:59  <dominictarr>using node_modules instead of $PATH is the thing that saves your life even though you don't realize
20:00:28  <dominictarr>chapel, like do you know what bundles (ruby) does instead of using something like node_modules ?
20:00:52  <dominictarr>it does something mind numbingly retarded
20:00:54  <chapel>I wasn't saying it was a valid excuse :P
20:01:10  <chapel>I think node_modules is awesome
20:01:19  <dominictarr>I'm not disagreeing, I just want to rant about this
20:02:06  <dominictarr>ruby people don't even realize how stupid bundler is.
20:02:21  <dominictarr>they think "ruby is optomised for developer happyness"
20:02:44  <dominictarr>but they don't actually know what that means because they havn't used npm.
20:02:58  <dominictarr>basically...
20:03:13  <dominictarr>if you have a version conflict with bundler
20:03:56  <dominictarr>tries different versions of things that conflict until it's found a version range that all the other modules can accept.
20:04:50  <dominictarr>it actually _downgrades packages if there is another module that needs an old version.
20:13:21  <chapel>sounds like fun
20:13:45  <chapel>but, but, what about all the files being duplicated with all my projects, imagine all the space wasted
20:14:29  <dominictarr>bundler still installs them locally to the project.
20:14:44  <dominictarr>that is seen as being a huge improvement over rubygems.
20:16:31  * mikealquit (Quit: Leaving.)
20:17:10  <devaholic>dominictarr: wouldnt u just use dnode as a client to a server
20:17:41  <dominictarr>devaholic, what are you referring to?
20:17:59  <devaholic>you asked if you could use shoe on a server
20:18:25  <dominictarr>oh, no it's just for testing mainly.
20:18:52  <dominictarr>... and maybe to simplify serverside.
20:22:25  * mikealjoined
20:29:45  <chapel>dominictarr: just a joke since that seems to be one of the wtf complaints by people not familiar with npm
20:30:31  <dominictarr>indeed, it's one of those things that at first you are like "but that is crazy"
20:30:45  <dominictarr>and then you go off and think about it, and realize.
20:34:42  <dominictarr>substack_, Raynos are there any templates for shoe/mux-demux projects?
20:49:54  <Raynos>dominictarr: I like that, I want a better way to move data around. The other problem is building the network topology. That's what browser-server is about.
20:50:41  <dominictarr>you mean that thing that makes the browser look like a server?
20:50:55  <Raynos>Raynos: https://github.com/Raynos/stream-chat https://github.com/Raynos/seaport-proxy/tree/master/examples/service/static
20:51:13  <Raynos>dominictarr: Yes that thing that makes the browser look like a server https://github.com/Colingo/stream-server
20:51:29  <Raynos>dominictarr: see above stream-chat & service apps for how I build shoe/mux-demux projects
20:51:50  <Raynos>dominictarr: https://github.com/Colingo/stream-server/tree/master/examples/lazynode
20:51:54  <dominictarr>Raynos, as template projects?
20:51:55  <Raynos>that is my most recent example
20:51:59  <Raynos>not template projects
20:52:09  <Raynos>I dont know what a template project is other then stupid useless boilerplate examples
20:52:46  <Raynos>paul_irish: Try talking to the meteor guys, they launched a package manager and failed, you might be able to learn from them
20:52:58  <dominictarr>yeah, that is what I want. I mean, you've gotta go through create a package.json, index.html
20:53:03  <dominictarr>crap like that.
20:53:05  <Raynos>> i want each of the 8 or so new client side package managers to write a blog post describing exactly why they couldnt use npm
20:53:10  <maxogden>the meteor package manager failed?
20:53:11  <Raynos>dominictarr: look at the static folder
20:53:30  <Raynos>maxogden: They have their own smart package system, I presume it failed because it's not npm
20:53:35  * isaacs_mobilejoined
20:54:04  <Raynos>maxogden: It didn't fail, I'm just taking a low shot
20:54:11  <maxogden>oh
20:54:13  <dominictarr>Raynos, withe browser-server there is a danger of layering abstractions on top of them selves.
20:54:25  <Raynos>dominictarr: very very much so
20:54:36  <Raynos>dominictarr: that's exactly what I'm doing, browser-server has code duplicated from boot in it
20:54:55  <dominictarr>like, how hook.io implements an event emitter on top of dnode, which was on top of socket.io (at the time) which was an event-emitter
20:55:13  <Raynos>and I have the problem of trying to set up a distributed list of whose in the network using a distributed map as the data source which needs a distributed list of whos in the network to get the data
20:55:58  <dominictarr>Raynos, distributed computing is not hard. you just need to adjust your thinking to be distributed
20:56:21  <dominictarr>you need to read the literature and learn how to think in a distributed way.
20:56:21  <Raynos>dominictarr: that's exactly what I need to do
20:56:51  <Raynos>i realised stream-server acts very much like ICE
20:57:03  <dominictarr>Raynos, I'd recommend starting with this http://www.google.pl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CGIQFjAA&url=http%3A%2F%2Fwww.allthingsdistributed.com%2Ffiles%2Famazon-dynamo-sosp2007.pdf&ei=0gwsUJ3nFJDZsgbB14GIAw&usg=AFQjCNHhJccl0_0I9x7tkWizMx6NjcuUkQ
20:57:14  <dominictarr>sorry
20:57:14  <dominictarr>http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
20:57:57  <dominictarr>it covers a lot, and is very clearly written and very readable for an academic paper.
20:58:53  <dominictarr>it's about server-side distributed stuff, but the types of problems are fundamentally the same as realtime browser apps.
21:10:34  <Raynos>dominictarr: Yeah I need to do a lot more reading about this
21:10:38  <Raynos>thanks for the link
21:11:41  <dominictarr>I've got a few more too, that other people recommended me, but that is the best one. and deff a good start.
21:12:18  <Raynos>sweet
21:19:53  * isaacs_mobilequit (Remote host closed the connection)
21:30:43  * xaqquit (Remote host closed the connection)
21:31:10  * xaqjoined
21:36:59  <dominictarr>Raynos, substack_ https://npmjs.org/package/reconnect
21:40:29  * xaq_joined
21:43:17  * xaqquit (Ping timeout: 244 seconds)
21:46:25  <Raynos>dominictarr: i think that approach is better then boot
21:47:47  <dominictarr>yeah, wrapping is bad. gotta make it all composable. streams stuff should work with any kind of stream.
21:49:24  <dominictarr>damn, github is being all cached for me right now!
21:49:35  <dominictarr>I push something, and it's like. no change
21:55:52  * xaqjoined
21:59:37  * xaq_quit (Ping timeout: 246 seconds)
22:09:22  <devaholic>dominictarr: same here
22:10:50  <dominictarr>it seems to come rightish after a bit.
22:18:07  * mikealquit (Quit: Leaving.)
22:20:30  <devaholic>dominictarr: what is the reason behind not using pwd/cwd somewhere in the config chain for rc
22:21:34  <dominictarr>devaholic, well, I don't really use it.
22:22:28  <dominictarr>devaholic, what is the usecase?
22:22:57  <dominictarr>I'm open to making changes for a while, but then I'm gonna seal it and never change it again.
22:23:00  <devaholic>well just for initial development i guess, its a little easier to work out of one directory
22:23:04  <dominictarr>that is my hope at least.
22:23:20  <dominictarr>you can pass in --config file option.
22:23:23  <devaholic>for deployment the $HOME and /etc stuff is awesome
22:23:40  <devaholic>saw that, but its not automatic :)
22:24:15  <dominictarr>I've considered being able to pass in a string instead of an object so you can put the defaults in a file
22:24:38  <dominictarr>which could be useful as a template for user config.
22:24:49  <dominictarr>actually!
22:24:50  <devaholic>$(pwd)/${APPNAME}rc and $(pwd)/${APPNAME}/config perhaps
22:25:05  <devaholic>yeah that would also be useful
22:25:23  <dominictarr>pwd could be anywhere, if you install -g a bin
22:25:35  <devaholic>yes, thats the usefulness of it
22:25:44  <dominictarr>devaholic, I've just realized that it will just work.
22:26:18  <dominictarr>because it depends on config-chain
22:26:27  <devaholic>oh?
22:26:33  <devaholic>ill give it a try
22:26:53  <dominictarr>so just go rc(appname, pwc+'config.json') or whatever
22:27:55  <dominictarr>config-chain also has a method for recursively searching for a file in parent directories.
22:29:30  <devaholic>personally i would like to use pwd/.servicerc and/or pwd/.config/service
22:31:33  <dominictarr>devaholic, you'd have to convince me with regards to the type of application you are building.
22:31:42  <dominictarr>I want to keep it as simple as possible.
22:32:57  <devaholic>i think im still trying to figure out the best way to use it
22:35:00  <devaholic>the app in question has multiple processes with different configuration, i could tree them out in a json file, use the repo name for everything and reference the property relative to the service, or I could separate the config for each process out into different files
22:35:32  <dominictarr>what sort of thing do the processes do?
22:35:50  <devaholic>various http services and workers and such
22:35:59  <devaholic>all node apps
22:36:06  <devaholic>well, services
22:40:54  <dominictarr>reading a config from pwd makes sense for things like git, that operate on something sitting in the file system.
22:42:55  <dominictarr>things like apps or services shouldn't need that. maybe they would want a config file in their dir, though.
22:43:53  * thatguydanjoined
22:44:31  <devaholic>dominictarr: if there were some way to get module.parent.__dirname in rc that might be a better way to express where the config would be expected to exist
22:44:54  * mikealjoined
22:45:03  <dominictarr>devaholic, I think the simple way is just to it in:
22:45:20  <dominictarr>rc(appname, __dirname+'/config')
22:47:49  <devaholic>that does work
22:48:06  <devaholic>i noticed that rc doesnt use the find method from config chain
22:48:46  * thatguydanquit (Client Quit)
22:48:50  * timoxleyjoined
22:53:31  <dominictarr>no.
22:53:50  <dominictarr>all the places to look are hardcoded.
22:54:04  <dominictarr>that is the idea, so you don't have to think.
22:54:29  <dominictarr>then you can think about more interesting things instead.
22:56:17  * mikealquit (Quit: Leaving.)
23:09:13  <dominictarr>Raynos, https://github.com/dominictarr/crdt/tree/master/example/simple
23:09:24  <dominictarr>simple example for crdt, with reconnect.
23:18:08  * thatguydanjoined
23:18:10  * thatguydanquit (Remote host closed the connection)
23:18:31  * thatguydanjoined
23:19:48  * thatguydanquit (Client Quit)
23:23:25  * thatguydanjoined
23:51:26  * st_lukequit (Remote host closed the connection)