00:00:07  <substack>DAYCHANGE
00:00:10  <substack>contest is over
00:00:24  <substack>pencils down
00:00:29  <substack>hand your copybook to your instructor
00:01:01  <dominictarr>okay, guys
00:01:06  <substack>deploying here
00:01:15  <substack>we're in the grace period for deployment
00:01:23  <sorensen>any of you deploy yet?
00:01:26  <substack>nodejitsu is falling over itself right now because everybody is deploying
00:01:27  <sorensen>like to check out what you guys made
00:02:14  <sorensen>i noticed
00:02:27  <sorensen>you guys know why it was only nodejitsu this year?
00:02:33  <sorensen>no linode/joyent
00:02:53  <dominictarr>joyent is partner with nodejitsu now,
00:03:21  <substack>reconnections might fuck things up with stale state
00:03:34  <substack>hopefully nobody has our thing open in their browser right now
00:03:49  <substack>everybody close your browser tabs for our app
00:04:08  <substack>if you have a tab open it will reconnect forever and virally infect everybody else with shitty stale state
00:04:24  <substack>didn't get around to writing that reset code
00:04:34  <dominictarr>there is reload code,
00:04:44  <dominictarr>but it's only tested in chrome
00:05:01  <substack>doesn't our thing have a reconnect()?
00:05:08  <substack>that will poll the server forever if it goes down
00:05:09  <Raynos>yeah we didnt set a version
00:05:11  <substack>bad bad bad to have
00:05:14  <Raynos>on the reload on the server
00:05:15  <substack>we want the state to fuck off
00:05:15  <Raynos>before deploy
00:05:31  <substack>crdt.fuckEverything()
00:05:37  <substack>should destroy all the state and history
00:06:06  <dominictarr>amageddon.
00:06:19  <dominictarr>could add that.
00:06:45  <substack>deploying still broken
00:06:54  <dominictarr>okay... so debriefing
00:07:03  <dominictarr>what worked what didn't?
00:07:19  <substack>ace didn't
00:07:27  <substack>don't touch any library like ace ever
00:07:37  <substack>its internals bleed out into everything else and make a mess
00:07:45  <substack>crdt works well
00:07:50  <substack>raphael seems like it didn't buy us much
00:07:54  <substack>could have just used the dom
00:07:55  <dominictarr>agree
00:08:13  <dominictarr>the panning stuff got in the way
00:08:17  <substack>yes
00:08:17  <dominictarr>too much indirection
00:08:47  <substack>maybe just work in absolute coords
00:08:49  <substack>and move the dom
00:08:52  <substack>move a div
00:08:54  <substack>around
00:09:01  <substack>so you never need to use relative coords ever
00:09:10  <dominictarr>we'll either way, we didn't start with the right arch for a game.
00:09:15  <Raynos>yeah
00:09:20  <Raynos>we didnt do enjoy planning
00:09:22  <Raynos>or any
00:09:24  <Raynos>for the architecture
00:09:27  <Raynos>and we just winged shit
00:09:31  <substack>planning wouldn't have helped
00:09:35  <dominictarr>we needed some MVC sort of thing
00:09:42  <substack>no
00:09:47  <substack>just better libraries
00:09:52  <substack>a game engine library
00:09:56  <substack>that handles positioning
00:10:01  <dominictarr>I mean, crdt was the model
00:10:01  <substack>and making sprites
00:10:04  <substack>but only those things
00:10:17  <dominictarr>we needed something that handled the view better
00:10:27  <Raynos>we do?
00:10:34  <substack>I don't think the html part got in the way as much
00:10:35  <Raynos>we just needed to handle the view better ourself
00:10:45  <dominictarr>I mean the sprite view
00:10:48  <Raynos>And probably an SVG abstraction that didnt suck balls
00:10:53  <substack>not svg
00:10:55  <substack>just dom
00:10:59  <dominictarr>canvas?
00:11:09  <substack>not canvas
00:11:10  <substack>just dom
00:11:16  <substack>a sprite lib for the dom
00:11:30  <substack>and a lib for doing an infinite dom world
00:11:43  <dominictarr>okay, well it def would have been better to spend more time on game mech
00:11:52  <Raynos>yeah
00:11:57  <Raynos>we do have working code though
00:12:01  <Raynos>you can try stuff
00:12:04  <dominictarr>it was hard to get that tested properly
00:12:07  <Raynos>like `self.move(self.whatDist(id))`
00:12:16  <dominictarr>that works?
00:12:20  <Raynos>and `self.hear(function (msg) { self.say("I ECHO " + msg) })`
00:12:27  <Raynos>yeah I fixed things so those two examples work
00:12:34  <dominictarr>sweet!
00:12:41  <Raynos>and you can click yourself
00:12:44  <Raynos>and edit your own code
00:12:47  <Raynos>and program yourself
00:12:50  <substack>oh yeah that part is boss
00:12:52  <Raynos>well you can program anything
00:13:03  <substack>you can reprogram other players too
00:13:15  <dominictarr>so, I had this idea near the end that maybe wizards is quite complicated
00:13:21  <dominictarr>thought of a simpler setup
00:13:27  <dominictarr>ameobas
00:14:00  <Raynos>we need to do: http://nodeknockout.com/teams/teh-wizzards-of-stre/edit
00:14:01  <dominictarr>they just blob around and can eat things < 0.1 times thier siz.
00:14:17  <substack>the interesting dynamic is just that you can reprogram the environment
00:14:21  <substack>whatever the constraints are
00:14:27  <substack>even if there are no constraints it can still be fun
00:15:27  <dominictarr>it can, but I think the constrains is what is most interesting.
00:15:30  <dominictarr>although
00:15:39  <dominictarr>that idea was probably too ambitious
00:15:56  <dominictarr>constraintless enviroment is much simpler
00:16:55  <substack>that's what we have now basically
00:17:00  <substack>you can just reprogram all the elements
00:17:01  <substack>fun!
00:17:16  <dominictarr>make the trees run around
00:17:17  <dominictarr>etc
00:17:27  * mikealjoined
00:18:25  <dominictarr>okay, so what do we have to do to fully submit it?
00:21:50  * mikealquit (Ping timeout: 252 seconds)
00:21:53  <dominictarr>so it was pretty easy to user crdt... but we probably wanted messages for somethings too
00:22:00  <dominictarr>like, cast, and result
00:22:13  <dominictarr>that really is a rpc thing
00:27:56  <rowbit>Hourly usage stats: [developer: 1, free: 24]
00:33:07  <Raynos>dominictarr: we have to finisht the redeploy
00:33:08  <Raynos>make a video
00:33:12  <Raynos>and submit text
00:33:25  <Raynos>dominictarr: http://nodeknockout.com/teams/teh-wizzards-of-stre
00:33:30  <dominictarr>I saw it
00:33:31  <Raynos>need an entry for our stuff
00:33:54  <dominictarr>are you and substack at same place
00:33:54  <dominictarr>?
00:34:48  <Raynos>yes we are
00:35:51  <dominictarr>you are probably best placed to make the video... I could log on and drive the game though
00:36:12  <substack>I've got a good mic at home
00:44:01  * st_lukequit (Remote host closed the connection)
00:45:51  * st_lukejoined
00:52:33  * shykeschanged nick to zz_shykes
00:54:09  <blakmatrix>substack: I am seeing this in your app https://gist.github.com/2077c58ea9460ab50fff
00:54:34  <blakmatrix>thats what happend when i tried to connect and saw the "An error has occurred: {"bytesParsed":0,"code":"HPE_INVALID_CONSTANT"}"
00:58:34  * mikealjoined
01:01:03  * st_lukequit (Remote host closed the connection)
01:04:41  <dominictarr>blakmatrix, that is not an http port
01:05:02  <dominictarr>oh... that should be the internal tcp port, and 3000 is the http port...
01:05:15  <Raynos>substack: https://gist.github.com/a9e494155e7da755e7aa
01:05:38  <Raynos>substack: ill go up and you troll me?
01:05:54  <dominictarr>but... nodejitsu does "clever" stuff to detect the port.
01:06:40  <substack>clever broken bullshit leaky abstractions
01:06:52  <dominictarr>to make it "easy"
01:07:01  <substack>easy === leaky
01:09:04  * zz_shykeschanged nick to shykes
01:13:30  <dominictarr>that is basically what I said when I was at nodejitsu...
01:14:11  <dominictarr>okay, so the fix is to use a udp port instead of a tcp port
01:14:25  <dominictarr>I hope they detect that...
01:14:37  <dominictarr>for deploy to something other than nodejitsu
01:15:34  <dominictarr>maybe even adding the separate process stuff to after http.createServer().listen might work...
01:15:49  <dominictarr>but, of course we arn't allowed to make any more changes...
01:23:30  <substack>domain change: http://wizardz.jit.su
01:25:02  <blakmatrix>substack: sec
01:26:00  * mikealquit (Quit: Leaving.)
01:27:56  <rowbit>Hourly usage stats: [developer: 7, free: 13]
01:31:37  * _ritchquit (Quit: Leaving.)
01:37:38  * mikealjoined
01:39:30  * shykeschanged nick to zz_shykes
01:39:30  * defunctzombiequit (Remote host closed the connection)
01:49:53  * _ritchjoined
01:57:50  <substack>dominictarr, Raynos: great work \o
01:58:13  <dominictarr>what happened?
01:59:20  <substack>just finished I mean
02:00:15  <substack>so scuttlebutt really needs a way to discard history
02:00:41  <substack>this app is a good test platform to experiment with that approach
02:01:49  <substack>or maybe it's just the process runner
02:02:19  <substack>I want to hack up a version that runs the code in people's browsers with webworkers
02:03:11  <substack>crashed again
02:04:24  <substack>ok it's back and it's playable again
02:04:43  <substack>should have put a setTimeout(process.exit, 60 * 5 * 1000) into it
02:10:16  <dominictarr>resetting the server *should* restart all the clients, and reinitialize the data.
02:11:20  <dominictarr>substack, we could definately add an obliterate/armageddon message that sets a "new zero" at a given vector-clock.
02:12:38  <dominictarr>A think that concerns me, is some way to replicate the calculations, but merge them somehow.
02:13:14  <substack>yes it seems to get better when the server restarts itself
02:13:33  <dominictarr>maybe, using a different model... like, let the different nodes 'vote' on how the entities should move etc.
02:13:55  <dominictarr>substack, hmm, probably want some analytics on this. memory leak?
02:14:00  <substack>a game doesn't need to be particularly secure
02:14:11  <substack>well isn't crdt inherently a giant memory leak?
02:14:15  <substack>in that it just keeps saving history
02:14:37  <blakmatrix>my client seized up right as i exited i saw a maximum stack size exceeded error pop up from my wizard as i closed the window
02:14:39  <dominictarr>no, it discards old updates that arn't relevant anymore
02:16:04  <Raynos>dominictarr: https://github.com/nko3/foojs
02:16:16  <dominictarr>blakmatrix, if your code errors, it appears above your head
02:18:19  <dominictarr>haha, cool.
02:19:32  <dominictarr>he will be disapointed to discover I already have the kv module
02:19:50  <substack>oh I see!
02:19:54  <substack>that's neat @ old updates
02:20:02  <substack>maybe it's mostly the browser code that doesn't scale then
02:20:10  <substack>on account of too much stuff in the dom
02:20:30  <substack>something a proper sprite / map lib could fix
02:26:18  <dominictarr>yeah, def some benchmarking to be done shortly.
02:27:02  <dominictarr>especially since nearForm is feeding me, and they want to use it commersially and on phones.
02:27:56  <rowbit>Hourly usage stats: [developer: 5, free: 23]
02:28:01  * _ritchquit (Quit: Leaving.)
02:28:02  <substack>jjjohnnny just created a hoard of followers
02:28:05  <substack>in the game
02:28:07  <substack>it's awesome
02:31:43  <substack>ok I harvested some monsters with faulty coordinates and put them at the origin
02:43:54  <dominictarr>substack, AvianFlu Raynos I think I have found the perfect location for wrongconf http://ryugyonghotel.com/index.html
02:44:25  <Raynos>whats wrongconf?
02:47:32  <dominictarr>it's a conference where all the talks are basically just standup about horrible horrible systems you have worked with
02:51:30  <dominictarr>I'm seeing a bunch of SVG's stuck to the top right corner of the screen.
02:54:32  <substack>they have coords that are too big so they NaN out or some such
02:54:36  <substack>they're all in exponential notation
02:54:47  <substack>you can reset them on the tome tab
02:54:58  <substack>just set them to (0,0) or wherever
03:07:03  <substack>ok haha
03:07:34  <substack>pull from me and go to http://localhost:3000/?shoe=http://wizardz.jit.su/shoe
03:07:59  <substack>you'll be sync'd with the server running at wizardz.jit.su >:D
03:08:07  <substack>so you can write hax
03:09:37  <sorensen>crazy game substack
03:11:16  <sorensen>not entirely sure what to do
03:12:25  <sorensen>self.think(function() { self.say('thought') })
03:17:16  <substack>https://gist.github.com/4057296
03:27:56  <rowbit>Hourly usage stats: [developer: 2, free: 18]
03:31:16  * blakmatrixquit (Quit: Leaving.)
03:38:04  * AvianFluquit (Remote host closed the connection)
03:53:13  * blakmatrixjoined
03:55:24  * thatguydanjoined
03:58:13  <dominictarr>wow, this is awesome http://of-glob.nko3.jitsu.com/
03:58:27  <isaacs>dominictarr: what's the url to your wizard game?
03:58:34  <isaacs>dominictarr: i'm on another computer, and can't remember it
03:58:44  <dominictarr>wizardz.jit.su
03:58:47  <dominictarr>http://wizardz.jit.su
03:58:58  <isaacs>ahh, much better
03:59:09  <isaacs>i was still trying to remember teh-wizzards-of-str or whatever it was
04:10:00  * thatguydanquit (Ping timeout: 265 seconds)
04:12:24  * thatguydanjoined
04:13:49  * blakmatrixquit (Quit: Leaving.)
04:14:43  * thatguydanquit (Remote host closed the connection)
04:15:00  * thatguydanjoined
04:16:22  <dominictarr>substack, Raynos do we still need to submit the thing?
04:18:46  <isaacs>this of-glob thing, i don't get the appeal
04:18:52  * isaacsis having bad flashbacks
04:19:13  <isaacs>will life be better when Drive C has been defragmented?
04:20:43  <dominictarr>you defrag it when everything goes wrong, in the vane hope that it fixes something.
04:20:56  <isaacs>yes
04:21:29  <Raynos>dominictarr: yes we have to submit it
04:21:34  <Raynos>someone has to write a description for it
04:22:04  <dominictarr>do we have to make a video? I can't my computer sucks too much
04:27:57  <rowbit>Hourly usage stats: [developer: 1, free: 11]
04:30:29  <substack>so holy fuck
04:30:38  <substack>me and jjjohnnny almost got jumped walking back from bart
04:30:39  * fotoveritejoined
04:30:53  <substack>2 guys followed us and then started running for us
04:31:03  <substack>but we took off running
04:32:02  <dominictarr>substack, Raynos okay I submitted it
04:32:31  <dominictarr>oh shit! you got back okay though?!
04:33:00  <substack>yes
04:33:08  <substack>called it in to the police
04:33:18  <substack>could have gotten my laptop stolen! /!\
04:33:35  <fotoverite>:(
04:33:41  <fotoverite>That's terrifying
04:33:57  <substack>all that monotonous cross country and track running in high school and middle school paying off a little
04:34:34  <dominictarr>you'd have to be like "thats linux, it's no use to you"
04:35:19  <dominictarr>but there is another guy coming, who has a macbook air.
04:35:33  <dominictarr>kinda like the 3 billygoats gruff.
04:36:10  <fotoverite>I rather just have a pipe myself. Don't think you can bluff.
04:36:51  <substack>I do have a large knife I found in the snow in alaska
04:38:00  * st_lukejoined
04:43:50  <substack>dominictarr: description looks good
04:44:04  <substack>I did `jitsu apps setdrones 1` which charlie recommended
04:44:19  <substack>it could have been some cluster autoscaling thing screwing up the app
04:48:48  <dominictarr>knives raise the stakes too much, I'd leave the knife at home.
04:49:12  <substack>yeah that's my thinking
04:49:22  <substack>running is pretty effective
04:49:29  <substack>especially if you're fast
04:49:38  <dominictarr>yeah, and you are totally built to run
04:50:18  <dominictarr>especially long dist.
04:55:35  <substack>truth
04:55:52  <substack>I mean humans are built for running anyways
04:56:12  <substack>they are built to run after furry animals until they overheat and need to rest
05:00:19  <dominictarr>so, hopefully, you are getting mugged by a gazelle.
05:09:40  <substack>haha
05:27:56  <rowbit>Daily usage stats: [developer: 49, free: 489]
05:27:57  <rowbit>Hourly usage stats: [developer: 0, free: 12]
06:02:34  <substack>not being playable, restarting
06:04:07  <substack>there we go
06:16:24  <fotoverite>linky?
06:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 26]
06:29:49  * defunctzombiejoined
06:37:54  * defunctzombiequit (Ping timeout: 240 seconds)
06:42:55  <owen1>"Persistence hunting"
06:50:48  <substack>fotoverite: http://wizardz.jit.su/
07:01:05  * thatguydanquit (Ping timeout: 252 seconds)
07:01:08  <owen1>i just killed someone - "dead": false (:
07:01:18  <owen1>turned him to true..
07:04:25  <substack>is the game playable right now? http://wizardz.jit.su/
07:04:30  <substack>it's really slow in my browser
07:04:36  <substack>wondering if it's just me
07:06:35  <owen1>mine crashed
07:06:42  <substack>ok restarting
07:06:51  <substack>oh wait!
07:06:54  <substack>it's fast for me again
07:07:05  <substack>aha looks like it restarted itself
07:07:29  <owen1>yeah
07:07:35  <owen1>had to close the tab
07:08:10  <substack>check out my tree net
07:09:15  <substack>repeater trees
07:09:28  <owen1>stuck again
07:09:41  <owen1>using chrome canary, btw
07:09:55  <substack>yep same
07:10:00  <substack>https://gist.github.com/4057895
07:12:12  <owen1>after i past it, i need to hit 'cast'?
07:12:17  <owen1>paste
07:13:29  <owen1>cool. i can see the code that other people are using
07:13:57  <owen1>booming voice! wtf
07:16:47  <substack>linked list of trees
07:16:54  <substack>all listening to a specific other tree
07:17:01  <substack>and one of the trees listens to me
07:18:01  <owen1>what's the difference between codex and tome?
07:18:06  <owen1>i am a bit confused
07:18:31  <substack>source and json
07:26:24  <owen1>i saw maximum call stack size exceeded
07:26:32  <fotoverite>And I just killed the server by cursing myself
07:26:54  <fotoverite>Owen1: are you owen barnes?
07:27:17  <owen1>fotoverite: no
07:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 30]
07:28:30  <fotoverite>I don't get casting yet. So you redo the codex to make new functions right?
07:31:50  <substack>I have a sweet tree loudspeaker
07:32:06  <substack>fotoverite: your code gets run once
07:32:24  <substack>to have it run continuously you put code in self.hear() xor self.think()
07:33:17  <fotoverite>but what does the codex do. Does it not contain spells and functions you create to cast via the main bar
07:34:30  * defunctzombiejoined
07:34:32  <substack>no
07:34:40  <substack>the codex is just the code that runs on the objects
07:34:55  <substack>click an object
07:40:25  <owen1>i clicked on one of the wizards, hit 'cast', and it execute whatever in the codex?
07:41:07  <substack>click anything
07:41:12  <substack>it will run for that object
07:42:38  <owen1>so as soon as i click on anything, it will run whatever in it's codex?
07:42:47  <owen1>and i can modify anyone's codex?
07:42:55  * defunctzombiequit (Ping timeout: 260 seconds)
07:44:04  <substack>yes
07:44:09  <substack>anything's codex
07:44:14  <substack>everything has a codex
07:44:20  <substack>rocks, trees, monsters, wizards
07:45:51  * anoemijoined
07:55:18  <substack>made a crappy movie
07:55:43  <substack>I'll try again on localhost
07:56:00  <substack>as soon as take1 finishes encoding
08:03:12  <substack>ok this take was better on localhost
08:05:05  <substack>encoding...
08:05:13  <substack>then I'll splice it up to cut out some of the pauses
08:05:17  <owen1>is there a link to the other projects during the competition? who won?
08:05:26  <substack>voting is ongoing
08:06:05  * anoemiquit (Quit: anoemi)
08:07:20  <substack>http://nodeknockout.com/
08:27:57  <rowbit>Hourly usage stats: [developer: 0, free: 23]
08:29:40  <substack>doing another take
08:29:54  * anoemijoined
08:30:30  <substack>oh shit I know why!
08:30:37  <substack>it's using the build-in mic not my external
08:30:39  * anoemiquit (Client Quit)
08:35:45  * mikealquit (Quit: Leaving.)
08:41:44  * mikealjoined
08:49:29  <substack>ok had a good take this time
08:56:01  <substack>84%
08:56:16  <substack>88%
08:57:28  <substack>100%
09:00:57  <substack>watched, seems good
09:00:58  <substack>uploading
09:01:28  <substack>go go gadget youtube upload
09:05:14  * devaholicquit (Ping timeout: 260 seconds)
09:07:23  <substack>http://www.youtube.com/watch?v=5COW63KXEcU
09:08:18  <substack>profile updated
09:11:05  <substack>dominictarr, Raynos ^^^
09:16:40  <substack>also http://foojs.nko3.jitsu.com/
09:17:55  <substack>crdt/scuttlebutt but with stronger consistency
09:18:03  <substack>he's also writing a zookeeper with it
09:18:13  <substack>will be interesting to see how that compares to seaport with crdt
09:26:36  * shuaibquit (Ping timeout: 240 seconds)
09:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 47]
09:28:45  * shuaibjoined
10:27:56  <rowbit>Hourly usage stats: [developer: 6, free: 39]
10:29:38  * jiang-plusjoined
10:42:30  * st_lukequit (Remote host closed the connection)
11:28:00  <rowbit>Hourly usage stats: [developer: 0, free: 30]
11:30:48  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
11:40:19  * defunctzombiejoined
11:45:07  * defunctzombiequit (Ping timeout: 260 seconds)
12:10:12  * dominictarrquit (Ping timeout: 252 seconds)
12:27:14  * AvianFlujoined
12:27:56  <rowbit>Hourly usage stats: [developer: 1, free: 23]
13:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 41]
13:48:26  * AvianFluquit (Remote host closed the connection)
14:18:26  <rowbit>/!\ ATTENTION: (default-local) uk-account@... successfully signed up for developer browserling plan ($20). Cash money! /!\
14:18:26  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
14:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 44]
14:33:19  * AvianFlujoined
14:38:09  * defunctzombiejoined
14:59:15  * defunctzombiequit (Remote host closed the connection)
14:59:17  * jiang-plusquit (Quit: leaving)
15:02:46  * AvianFluquit (Remote host closed the connection)
15:12:05  * hij1nxjoined
15:17:25  * saijanai_joined
15:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 37]
15:31:16  * jibayjoined
15:37:09  * anoemijoined
15:46:45  * st_lukejoined
15:48:00  * hij1nxquit (Quit: leaving)
15:49:28  * st_luke_joined
15:51:17  * st_luke_quit (Remote host closed the connection)
16:08:31  * _sorensenjoined
16:20:38  * ITproquit (Read error: Connection reset by peer)
16:21:37  * ITprojoined
16:27:56  <rowbit>Hourly usage stats: [developer: 1, free: 50]
16:39:59  * jibayquit (Remote host closed the connection)
16:45:11  * jibayjoined
16:55:25  * dominictarrjoined
16:58:44  <dominictarr>substack, Raynos wizardz is broken
16:59:02  <dominictarr>An error has occurred: {"bytesParsed":0,"code":"HPE_INVALID_CONSTANT"}
16:59:13  <dominictarr>can we put an old version up?
17:00:53  * AvianFlujoined
17:21:54  * AvianFluquit (Ping timeout: 240 seconds)
17:23:28  * ITproquit (Ping timeout: 246 seconds)
17:24:31  * ITprojoined
17:27:57  <rowbit>Hourly usage stats: [developer: 9, free: 53]
17:35:17  * juliangruber_joined
17:40:06  * juliangruber_quit (Ping timeout: 276 seconds)
17:40:07  <substack>dominictarr: fixing
17:40:31  <substack>jitsu restart fixes it
17:40:32  * juliangruber_joined
17:40:34  <substack>you can just run that
17:40:54  * fotoveritequit (Quit: fotoverite)
17:41:00  <dominictarr>was just thinking... we (i.e. planet earth) need some sort of programming env for smart phones
17:41:13  <dominictarr>like a new "basic"
17:41:47  <dominictarr>something fun, rather than something useful.
17:42:07  <substack>problem: typing input on smartphones is really difficult
17:42:36  <substack>perhaps something where you read more code than you wrote
17:43:15  <dominictarr>yes, but the thing is smartphones are really cheap ($100 bottom end) and have everything, screen, networking, and good battery life
17:43:58  <dominictarr>maybe just need an IDE?
17:47:36  <dominictarr>also... hard typing a great incentive for code reuse!
17:47:42  <substack>truth
17:49:48  <dominictarr>is a promise a monad?
17:52:12  <substack>why should it matter?
17:53:53  <dominictarr>I'm trying to figure out what a monad is
17:54:01  <substack>" A pithy description, referring to the syntax for statements in several languages, is that monads are a "programmable semicolon"—that is, a monad specifies what a statement is."
17:54:09  <substack>best description
17:54:29  <substack>fancy ivory tower word for semicolon
17:54:37  <substack>(>>) in haskell is basically just a semicolon
17:54:47  <dominictarr>so... a monads are just nonsense?
17:54:51  * juliangruber_quit (Quit: juliangruber_)
17:55:10  <substack>they are something that academics get all excited about that aren't important
17:55:19  <substack>we just call them "statements" everywhere else
17:55:38  <dominictarr>right, but I still want to know what they are, so than I can be sure whether I am using them or not.
17:55:41  <substack>it has some largely unimportant underpinnings to category theory
17:55:56  <substack>so if you are a category theorist they might be useful in your proofs
17:56:27  <substack>monads in haskell let you have different categories of procedural statements
17:56:37  <dominictarr>right, people always say "category theory" when they talk about monads
17:56:46  <dominictarr>but no one can explain that either
17:56:54  <substack>so in the IO monad you can do IO
17:57:21  <substack>which means that functions that `-> IO (...)` will work in an IO monad
17:57:25  <dominictarr>so far, monads seems like a kind of mysticism.
17:58:17  <chrisdickinson>i think a programming environment suited to touch would do wonders for development on smartphones / "consumption-only" devices
17:58:27  <substack>but there are other monads like the STM monad that let you build up steps in a shared memory transaction, operating only on shared memory
17:58:31  <chrisdickinson>possibly something based on manipulating ASTs directly
17:58:34  <chrisdickinson>(belatedly.)
17:58:48  <dominictarr>chadskidmore, VisualLisp
17:58:58  <dominictarr>sorry chrisdickinson VisualLisp
17:59:29  * chrisdickinsonchecks it out
17:59:32  <substack>you could just make it easy to write javascript without much typing and a lot of fingery touch events
17:59:44  * anoemiquit (Quit: anoemi)
17:59:57  <dominictarr>chrisdickinson, I don't think it's real, I just made that up then.
18:00:04  <chrisdickinson>ah, haha
18:00:54  <dominictarr>Turns Out, visual lisp is part of auto desk
18:00:58  <chrisdickinson>substack: i was sort of thinking along those lines: being able to open a JS file in this IDE and manipulate it -- for instance, dragging two fingers down from an expression to turn it into a binary expression (with the original expression on the left/right hand side)
18:01:08  <dominictarr>hahaha http://www.afralisp.net/visual-lisp/images/ribbon.png
18:01:20  <chrisdickinson>or pulling a blank statement and doing a quick clockwise motion to turn the empty statement into a for loop
18:02:04  <dominictarr>like touch sign language.
18:02:32  <dominictarr>maybe make a touch charades app?
18:02:40  <dominictarr>like draw-something but realtime
18:03:06  <dominictarr>(remember - you are also building a really great training set for ML)
18:03:16  <chrisdickinson>hmm
18:04:34  * wiwilliajoined
18:05:22  <chrisdickinson>the part i got sort of stuck on (which was sort of tangential to the main idea) is writing that "undecidable" module that would take a function and inputs and return either the result or another function if it got to a point in execution that was undecidable based on the given params.
18:05:58  <chrisdickinson>so that if a user provided example data, it could potentially show that data as it flows through the AST (including where it needs to prompt the user for another value to complete execution)
18:06:51  * tphummeljoined
18:10:58  * ITproquit (Ping timeout: 245 seconds)
18:18:43  * wiwilliaquit (Ping timeout: 265 seconds)
18:20:43  <substack>check out this spell https://gist.github.com/4060961
18:20:44  <substack>orbit
18:23:32  <dominictarr>nice
18:26:20  * _sorensenquit (Quit: _sorensen)
18:26:38  <substack>running it on wizards.jit.su right now
18:26:49  <substack>at (235,20)
18:26:56  * fotoveritejoined
18:27:56  <rowbit>Hourly usage stats: [developer: 2, free: 20]
18:29:07  * zz_shykeschanged nick to shykes
18:32:01  * yorickjoined
18:36:56  * wiwilliajoined
18:38:15  <substack>ok so
18:38:24  <substack>the SECRETPORT thing is breaking deploys on nodejitsu
18:39:40  <substack>dominictarr: deploys break because the magic listener looks at your SECRETPORT thing
18:39:54  <substack>there's a race condition where it hits net or http
18:40:14  <dominictarr>yeah, maybe we should use a unix socket for that?
18:40:39  <substack>it should have just been a route over http
18:40:49  <substack>but we can't fix it fuck
18:40:53  <substack>the app will just stay broken
18:41:06  * ITprojoined
18:41:14  <dominictarr>well, we could, we'd just forfit the compettiton
18:41:43  <dominictarr>or, we can rollback to an old version...
18:41:55  <dominictarr>agree route over http is best.
18:42:01  <substack>it's a nodejitsu issue I say
18:42:03  <substack>magic is bad
18:43:31  <dominictarr>agree.
18:44:05  <dominictarr>like they should just set a PORT env and that is the port the app must listen on
18:44:09  <substack>yes
18:44:11  <dominictarr>how hard is that?
18:44:13  <substack>like every other hosting provider
18:44:20  <substack>they could even make it "easy"
18:44:47  <substack>by warning you if you don't refer to process.env.PORT in your app
18:44:49  <dominictarr>they could have a regexp to check that you have it, too.
18:44:54  <substack>yes
18:44:54  <dominictarr>exactly.
18:45:14  <substack>or jitsu app configure port NNNN
18:46:09  <dominictarr>I suggested this all a year ago, but so much effort had been put into the elaborate monkey patch that they didn't want to back out
18:46:47  <dominictarr>I should have remembered this when I was writing the spell process
18:47:52  * _sorensenjoined
18:52:24  <substack>dominictarr: got the go-ahead from visnu to disable the other listener in a deploy
18:52:50  <dominictarr>okay cool! so we get to fix it?
18:52:55  <substack>2-byte change to fix it
18:53:04  <substack>yes already deployed
18:53:33  <dominictarr>what was the "other listener"?
18:53:54  <substack>you wrote it
18:54:01  <substack>git blame says
18:54:08  <substack>.listen(SECRETPORT, start)
18:54:28  <substack>oh wait fuck
18:54:40  <substack>start()?
18:54:54  <owen1>404
18:55:01  <owen1>is the game up?
18:55:17  <substack>no
18:55:25  <substack>the old version I checked out had the old subdomain
18:55:39  <substack>fuck all this should be in jitsu conf not package.json
18:56:06  <dominictarr>start() starts the spells process
18:57:15  <substack>ok it's up http://wizardz.jit.su/
18:57:28  <dominictarr>substack, it opens the server, and then starts the child process.
18:57:38  <substack>yes
18:57:49  <dominictarr>yup thats working
18:58:10  <dominictarr>oh, monsters are dead
18:58:21  <substack>>_<
18:58:32  <dominictarr>can't cast spells if the spell process isn't running
18:58:50  <substack>I changed it to just call start()
18:59:13  <substack>oh fuck
18:59:17  <dominictarr>that won't work, because it's not communicating with main server
18:59:18  <substack>init.js needs the port to work
18:59:21  <substack>fuck
18:59:32  <substack>ok doing this
18:59:38  <substack>setTimeout(...)
18:59:41  <dominictarr>comment out the connection, and just start init.js
18:59:43  <dominictarr>that will work
18:59:55  <substack>didn't work because init.js connects to it
19:00:06  <dominictarr>hey!
19:00:09  <dominictarr>idea!
19:00:16  <owen1>i am writing a blog post about your game on our engineering website - can i get a nice 10,000 overview of the tech u use. i saw the package.json but i am not familiar with most of the packages.
19:00:33  <substack>dominictarr: I just put it in a setTimeout
19:00:45  <owen1>i saw shoe. doest it mean it's web sockets?
19:00:45  <substack>so that nodejitsu's magic port sniffer will pick the http server
19:00:45  <dominictarr>disable the init
19:01:31  <dominictarr>and we'll run it in another service and connect via the mux-demux over shoe.
19:01:33  <substack>shit doesn't even work http://wizardz.jit.su/
19:02:39  <dominictarr>that is weird
19:03:02  <dominictarr>is that without the spells process?
19:03:19  <substack>no with
19:03:21  <substack>in a setTimeout
19:03:26  <substack>to trick nodejitsu's magic
19:03:36  <dominictarr>oh, right.
19:03:50  <dominictarr>hmm, what about a unix port?
19:03:58  <substack>I see, trying
19:04:16  <dominictarr>or, just make it use shoe & mux-demux
19:04:23  <dominictarr>like the clients.
19:04:29  <substack>impossibly hard
19:05:29  <dominictarr>owen1, mainly, we use a streaming data replication module, crdt, and then connect it up over mux-demux (stream multiplexer) and shoe.
19:05:39  <dominictarr>shoe provides a stream api over websockets
19:05:53  <dominictarr>mux-demux provides multiple streams over a single stream
19:06:11  <substack>ok the unix socket worked
19:06:24  <dominictarr>and crdt provides a data model that can be updated from either end, and is eventually consistent.
19:06:33  <dominictarr>substack, sweet!
19:07:01  <substack>oh wait I think the monsters are dead because they don't have any source
19:07:31  <substack>nope it's just down
19:09:48  <substack>fuck now it's doing the same thing
19:10:06  <substack>bah I'll just revert to the somewhat working old version
19:10:13  <dominictarr>yeah
19:13:47  * defunctzombiejoined
19:14:45  <juliangruber>it's soo down :(
19:15:52  <juliangruber>HPE_INVALID_CONSTANT
19:15:57  <substack>ok I see now, the net.connect() was also unnecessary
19:16:09  <substack>the whole net secretport thing just spanned multiple files
19:16:18  <substack>I thought it was necessary to make the game work
19:16:30  * shykeschanged nick to zz_shykes
19:17:25  <substack>dominictarr: so it works now but all the items have empty state
19:17:25  * mikealquit (Quit: Leaving.)
19:17:48  <dominictarr>stop calling them items, they are creatures.
19:18:42  * mikealjoined
19:19:27  * defunctzombiequit (Remote host closed the connection)
19:21:59  <substack>bah I killed all the creatures it seems
19:24:37  <substack>so I guess that part was actually necessary to sync the model state across init and server
19:24:45  <substack>can't just disable it
19:25:27  <substack>so even when the net server is in a timeout it still fucks up
19:25:51  <substack>I'll put it in a 10 second timeout
19:26:04  <substack>maybe the port punching magic is async
19:26:57  <substack>it works!
19:27:03  <substack>ok a 10 second timeout fixed it finally
19:27:43  <st_luke>magic magic magic magic magic
19:27:56  <rowbit>Hourly usage stats: [developer: 8, free: 60]
19:28:13  <substack>a wizard game buckles under too much magic
19:29:12  * tilgovijoined
19:32:12  <pkrumins>wrote a short article http://www.catonmat.net/blog/my-favorite-regex/
19:33:25  <substack>running again http://wizardz.jit.su/
19:35:01  <substack>juliangruber: it's back
19:35:29  <substack>issues with nodejitsu port ordering and ports getting stored in the db
19:36:04  <CoverSlide|TPFR>because who cares about non-latin characters
19:37:24  <pkrumins>yeah
19:47:50  <dominictarr>pkrumins, nice!
19:48:01  <pkrumins>thanks!
19:48:33  <st_luke>kind of want to just make my resume in markdown and print it on a printer from 20 years ago
19:48:45  <st_luke>and anyone that appreciates that type of thing is someone I can probably get along with in a professional environment
19:49:07  <dominictarr>and make the email attachment .txt
19:49:30  <pkrumins>hehe
19:50:23  <dominictarr>st_luke, make it a dot matrix printer with preferated edges,
19:50:32  <st_luke>dominictarr: exactly what I'm thinking
19:50:56  <owen1>other than dominic and substack, who else worked on this?
19:50:58  <st_luke>let me ask my current coworkers if anyone has a dot matrix printer
19:51:15  <dominictarr>and for total max retro points, that paper with the alternating brown lines
19:51:18  <substack>owen1: Raynos
19:51:25  <owen1>substack: thanks
19:51:26  <substack>dominictarr: line-feed?
19:52:01  <dominictarr>st_luke, I think only government departments have printers like that.
19:52:06  <substack>http://www.trs-80.com/images/hw-printer-dmp200x400.jpg
19:52:54  <dominictarr>oh yeah, that is what I'm talking about
19:52:59  <dominictarr>there is still people who collect retro computers, one of them probably has a printer
19:52:59  <substack>http://farm3.static.flickr.com/2087/2379281153_9cac2d2633.jpg
19:53:31  <dominictarr>or maybe you can just print a dot matrix font with inkjet.
19:54:18  <juliangruber>substack: awzom
19:54:28  <substack>I remember using an old apple line feed printer in elementary school in 1993
19:54:38  <substack>the school computer lab had apple iis and iiis
19:55:13  <substack>juliangruber: try this spell https://gist.github.com/4060961
19:55:29  <substack>with your own id instead of wizard:f91e
19:55:35  <dominictarr>st_luke, that or build your own dot matrix printer with arduino and solenoids.
19:55:56  <juliangruber>substack I guess wizard:f91e is you
19:56:01  <substack>yes
19:57:09  <substack>hahaha
19:57:12  <substack>you put a wizard in orbit
19:57:45  <juliangruber>but i don't see you
19:57:58  <juliangruber>dammit
19:58:04  <substack>I'm at (540,130)
19:58:07  <juliangruber>i didn't change the id
19:58:36  <substack>you can teleport by clicking your wizard and then adjusting your json in the "tome" tab
20:00:11  * shuaibjoined
20:00:45  <juliangruber>arrived
20:00:46  <juliangruber>nice
20:00:59  <juliangruber>I soo enjoy the big eyes
20:06:38  <juliangruber>dominictarr: any plans on making scuttlebutt work with async methods in .applyUpdates and .history?
20:06:47  <juliangruber>need that because I can't store all in memory
20:07:18  <juliangruber>and started implementing...but you have to compensate for async lag in timestamps and stuff gets complicated
20:07:44  <dominictarr>juliangruber, the better approach is to syncronize the clocks.
20:07:53  <dominictarr>this is on my todo list
20:08:02  <juliangruber>I get situations where updates happen not in order, like, 1,2,4,3 and 3 gets deleted
20:08:28  <dominictarr>if 4 updates the same key as 3 then that is correct.
20:08:45  <dominictarr>updates from a single node will always be in order.
20:09:42  <dominictarr>I don't really want to make applyUpdates and history async (although, if you can make a convincing case...) can you split your thing into multiple documents instead?
20:10:02  <juliangruber>4 updates key 4, 3 key 3
20:10:50  <juliangruber>i want to do replication between timeseries databases, so I have many many keys, get like 120000 writes per seconds
20:11:50  <juliangruber>i guess scuttlebutt isn't right for that as there are no conflicts...
20:15:16  <dominictarr>substack, okay, that is deffinately wrong.
20:15:45  <dominictarr>juliangruber, yeah, that is more like a stream
20:16:08  <dominictarr>I've been thinking about building that too, but I don't think I'd use scuttlebutt directly
20:16:22  <dominictarr>it's quite different to scuttlebutt
20:16:45  <dominictarr>maybe it would turn out the same, or turn out as a better base class
20:17:33  <dominictarr>juliangruber, would the strict order matter - would you go back and insert another more recent key into it's place?
20:22:28  <juliangruber>dominictar, no, inserts always happen with the current timestamp, no updates
20:23:07  <juliangruber>dominictarr, no, with updates, for aggregation and min/max etc.
20:23:51  <dominictarr>will more than one node be writing to the stream? or are there many readers and one writer?
20:24:08  <juliangruber>one writer and x readers
20:24:14  <dominictarr>cool, that is easier
20:24:16  * ITproquit (Ping timeout: 246 seconds)
20:24:32  <juliangruber>not sure yet how many nodes should receive writes
20:25:09  <juliangruber>or just all, then there is only need for transmission of initial state, if a node joins
20:25:31  <dominictarr>yes, and to replay stuff that it might have missed.
20:25:47  <juliangruber>and I use my leveldb binding for fs stuff, that can handle > 120000 writes per second
20:26:12  <dominictarr>cool, also I have a thing for reading an fs stream backwards
20:26:16  <dominictarr>fs-reverse
20:26:23  <juliangruber>but perhaps automatic sharding with guaranteed redundancy would prove well also
20:26:24  * zz_shykeschanged nick to shykes
20:26:48  <dominictarr>juliangruber, okay, if we can build this, I think we could refactor scuttlebutt to use it.
20:27:13  <juliangruber>cool
20:27:38  <juliangruber>so i can kill my almost working scuttlebutt async branch :D
20:27:57  <rowbit>Hourly usage stats: [developer: 4, free: 47]
20:28:46  <juliangruber>fs-reverse would be cool for transmission of initial state because newer entries are queried more frequently
20:29:06  <juliangruber>no, it's already in leveldb...
20:30:56  * shykeschanged nick to zz_shykes
20:30:58  <juliangruber>dominictarr: I had a look at kv and your other projects but always run into emfile / performance issues, leveldb was the first to do the job
20:31:09  <dominictarr>emfile?
20:31:13  <dominictarr>too many files?
20:31:18  <juliangruber>yep
20:31:26  <dominictarr>leveldb could handle a stream abstraction
20:31:41  <dominictarr>maybe make a level db back end for kv
20:31:56  <juliangruber>yeah, a kv-compliant wrapper is on my todo list
20:32:12  <dominictarr>someone made a redis one during nko
20:32:16  <dominictarr>cool!
20:32:23  <dominictarr>oh, what are you using this for?
20:32:46  <juliangruber>replacing the mysql cluster at my job
20:32:47  <dominictarr>it's always nice to know the concrete applications
20:33:05  <dominictarr>but what sort of data is it holding?
20:33:14  <juliangruber>we have like 12 nodes and it's mostly suffering from the timeseries stuff
20:33:33  <dominictarr>oh, timeseries... so like user-logs?
20:33:35  <juliangruber>many many time series and some borign profile / blog / data
20:33:40  <juliangruber>for financial data
20:33:43  <dominictarr>got it, cool.
20:34:00  <juliangruber>and I want to just solve the timeseries problem
20:34:40  <dominictarr>12 recording nodes? but a single source?
20:34:53  <juliangruber>and it needs to be very fast, there are queries that need 25,000 rows at once
20:35:11  <juliangruber>one master and the rest slaves
20:35:17  <dominictarr>right, leveldb can do that though, I understand
20:35:24  <dominictarr>it's just the very heart of a database
20:35:49  <dominictarr>mysql is the same stuff... but with queries and shit on top
20:36:00  <juliangruber>since it's only inserts and range queries the architecture can be very simple
20:37:16  <dominictarr>right
20:37:20  <juliangruber>the basic implementation fits on 1 page of code, without replication
20:37:24  <dominictarr>and it's only appends
20:37:31  <juliangruber>mhm
20:37:57  <dominictarr>because each insert is always after what was before
20:38:48  <juliangruber>I initially tried one append-only file per instrument and use seek with fs.create{Read,Write}Stream but then wrote to too many files at once
20:38:49  <dominictarr>so, each node just needs to remember when it last got something, and then to replicate, tell the new one "give me everything since T"
20:39:24  <dominictarr>juliangruber, you can reconfigure to allow more open files.
20:39:33  <juliangruber>that's not the problem
20:39:40  <juliangruber>the performances degraded too much
20:39:47  <dominictarr>right.
20:40:05  <dominictarr>so, if the fs isn't good at that, the solution is probably level-db
20:40:20  <juliangruber>would you write to one, some or all nodes at the same time?
20:40:45  <dominictarr>either of those options are okay.
20:40:46  <juliangruber>a in-mem approach obviously doesn't work either
20:41:00  <juliangruber>ok
20:41:01  <dominictarr>no, not at this scale.
20:41:30  <juliangruber>my initial implementation is faster then redis with a factor of 6
20:41:57  <juliangruber>query 25000 rows: redis 300ms leveldb 50ms
20:42:20  <juliangruber>using sorted sets in redis, which basically is the same as leveldb
20:42:28  <substack>sweet
20:43:21  <dominictarr>sweet!
20:43:55  <juliangruber>leveldb is such a powerhouse
20:43:58  <dominictarr>juliangruber, what does your api look like? I'm about to build something like an observer-stream
20:44:10  <dominictarr>I want to go observe(set)
20:44:20  <juliangruber>https://github.com/juliangruber/node-leveled
20:44:31  <dominictarr>and it returns a stream that emits the objects in a stream, and then streams the changes.
20:44:40  <dominictarr>[click]
20:45:45  <dominictarr>juliangruber, I meant for the timeseries thing
20:45:49  <juliangruber>ah
20:46:11  <juliangruber>what to you mean exactly with api?
20:46:30  <dominictarr>user interface
20:46:38  <dominictarr>programmer interface
20:47:17  * tilgoviquit (Read error: Connection reset by peer)
20:48:33  <juliangruber>you mean how to query and insert? or how the db implementation looks like?
20:50:15  <juliangruber>there is no need for a abstraction for timeseries, instead of ts.set(k,v) or ts.get(k) or ts.range(from,to) it is just db.*
20:50:22  <juliangruber>https://gist.github.com/8728c398418b73fa5ec9
20:52:57  <dominictarr>I thought you where talking about a module for replicated timeseries
20:53:18  <dominictarr>you'd want that for the replication part
20:53:27  <juliangruber>ah
20:53:33  <juliangruber>sec
20:54:02  <dominictarr>juliangruber, is leveldb sorted my the keys?
20:54:11  <juliangruber>yup
20:54:24  <juliangruber>you can pass custom comparator functions
20:54:51  <dominictarr>and does that sort from the value?
20:54:56  <juliangruber>key only
20:55:02  <dominictarr>right
20:55:48  <dominictarr>can you change the sort at query time? or do you have to set it before you start saving data?
20:56:01  <juliangruber>that is an initial configuration
20:56:40  <dominictarr>okay, cool.
20:58:27  * ITprojoined
21:01:59  <juliangruber>dominictarr: like https://gist.github.com/4061867 ? would that work?
21:02:42  <juliangruber>no, doesn't handle the case where the db already has data
21:02:49  <pkrumins>ascii tees! http://teespring.com/ascii
21:03:31  <juliangruber>dominictarr: updated
21:03:57  <juliangruber>pkrumins: xD
21:04:21  <pkrumins>:)
21:05:08  <dominictarr>juliangruber, does isAt(ts) start start emitting 'update' events?
21:05:18  <dominictarr>juliangruber, does isAt(ts) start state emitting 'update' events?
21:05:52  <juliangruber>dominictarr: no, that is the T you mentioned earlier
21:06:22  <juliangruber>thats easier than iterating over all keys like you do with scuttlebutt
21:06:46  <juliangruber>if i got you right
21:06:47  <dominictarr>right, so doing that should tell state to give you everything since that time.
21:07:05  <pkrumins>substack: ping
21:07:06  <dominictarr>yeah, this is kinda like a scuttlebutt but with only one key
21:10:00  <juliangruber>dominictarr: hm...changes need to be replicated before they are saved to disk, in order to avoid the problems i had with scuttlebutt
21:10:04  <pkrumins>ping ping ping
21:10:40  <dominictarr>juliangruber, if they are connected, then replicate live, if disconnected, then replicate when they connect.
21:13:04  <juliangruber>dominictarr: gist update
21:16:47  <juliangruber>dominictarr: i feel that a single timestamp per node won't work
21:17:16  <dominictarr>well, you need a timestamp per writer
21:17:28  <dominictarr>if there is only one writer, then one timestamp is okay
21:18:02  <pkrumins>Altreus: i know you'll like this http://teespring.com/ascii
21:19:35  <juliangruber>dominictarr: true!
21:20:28  <juliangruber>dominictarr: nodes will have to know whether a node receives writes directly or needs data to be replicated to
21:21:12  <dominictarr>alternatively, you could give each writer it's own series, and merge them when you read the timeseries.
21:21:34  <dominictarr>that will commute, you just do N queries, and merge them in node.
21:21:38  <dominictarr>or, client side
21:21:50  <dominictarr>hmm, node would be better.
21:26:08  <juliangruber>gist update
21:27:56  <rowbit>Hourly usage stats: [developer: 3, free: 66]
21:28:46  <dominictarr>juliangruber, I just want to see what the external api would look like, not the implementation, like the example you would put in the readme.
21:31:45  <juliangruber>dominictarr https://gist.github.com/4062042 ?
21:32:12  <juliangruber>or ts.createStream().pipe ...
21:32:41  <dominictarr>createStream !
21:33:29  <juliangruber>fixed
21:33:29  <dominictarr>there could be things that want the same api, and to hook into the replication stream
21:33:56  <dominictarr>like a map-reduce server
21:34:46  <dominictarr>right, so set should probably not take a key, because the key is the timestamp, right?
21:35:21  <juliangruber>ticks need to be exact, if apple pushes a quote at ts1, it should be in the db with ts1
21:36:11  <juliangruber>that makes it unnicer
21:36:18  <juliangruber>the ts could be optional
21:36:19  <dominictarr>right, so the source determins the timestamp
21:36:46  <dominictarr>do they quotes come in with timestamps on them?
21:37:29  <juliangruber>jap
21:38:07  <juliangruber>there are several values per ts, max. 6, which just can be serialized together
21:38:30  <juliangruber>you might want to store custom values to, like min/max per instrument
21:38:42  <juliangruber>fuck, forgot that we have several instruments
21:39:21  <juliangruber>dominictarr updated
21:42:55  <dominictarr>right, that looks good.
21:43:48  <dominictarr>you could make this a stream createSeries(ID).write(data)
21:44:25  <juliangruber>?
21:44:25  <dominictarr>and then do range queries like series.createRangeStream(start, end).pipe(...)
21:46:34  <dominictarr>because a timeseries is basically the same shape as a stream.
21:47:06  <juliangruber>added an example for feeding data into a realtime chart
21:49:44  * ITproquit (Read error: No route to host)
21:51:37  * yorickquit (Remote host closed the connection)
21:55:13  <substack>restarting the game
21:55:22  <substack>there we go all better
22:00:16  * yorickjoined
22:00:16  * yorickquit (Changing host)
22:00:16  * yorickjoined
22:13:01  * yorickquit (Remote host closed the connection)
22:15:15  * yorickjoined
22:16:49  <dominictarr>juliangruber, sweet, this will fit with other stuff I am building. actually, this might be useful for something I am working on
22:17:21  <dominictarr>it's extra cool, because, since you are using leveldb, and that is just basically indexdb,
22:17:35  <dominictarr>then stuff built with this will work in the browser
22:18:03  <juliangruber>did you know that chrome uses leveldb for localStorage?
22:25:57  <chrisdickinson>sooo. thinking of writing up a little library to expose https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events as a writable stream from node.
22:26:25  <chrisdickinson>(in the hopes of adding another module on top that exposes an xhr / sse pair as a duplex stream.)
22:26:39  <chrisdickinson>(since my experience with websockets has been… less than sterling.)
22:27:56  <rowbit>Hourly usage stats: [developer: 3, free: 40]
22:44:52  * thatguydanjoined
22:46:35  * ITprojoined
22:48:34  * zz_shykeschanged nick to shykes
22:52:20  <Raynos>oh hi
22:52:53  <Raynos>isaacs: https://github.com/isaacs/redsess/pull/5#issuecomment-10307954
23:00:58  * yorickquit (Remote host closed the connection)
23:12:26  <Raynos>dominictarr, substack: we can use the wizard game to teach people programming
23:12:42  <Raynos>like https://gist.github.com/4060961
23:12:46  <Raynos>explains the idea of an orbit
23:12:49  <Raynos>and shows you how to do
23:12:55  <Raynos>and its fun because you make your friends orbit around you
23:14:33  * thatguydanquit (Quit: thatguydan)
23:15:28  <pkrumins>make a special character can draw traces
23:15:44  <pkrumins>make a special character [that] can draw traces
23:15:59  * thatguydanjoined
23:16:01  <pkrumins>then you can do drawings
23:17:12  <pkrumins>but only in a special drawing region
23:17:47  <pkrumins>so that the map doesnt get filled with random crap
23:20:00  * CoverSlide|TPFRquit (*.net *.split)
23:20:01  * jden|awayquit (*.net *.split)
23:21:10  * tomshredsjoined
23:22:35  * tilgovijoined
23:27:56  <rowbit>Hourly usage stats: [developer: 3, free: 38]
23:28:52  <dominictarr>pkrumins, nah! fill the map with random crap!
23:29:17  * jden|awayjoined
23:29:17  * CoverSlide|TPFRjoined
23:29:18  <pkrumins>i will write hilbert curve then
23:29:23  <dominictarr>make it so you can lay a trail, and then you can make other things that follow the trail
23:29:54  <dominictarr>basically, make massively multiplayer logo.
23:30:23  <dominictarr>man, we should have just done that....
23:30:30  <dominictarr>way simpler
23:35:23  <substack>people are having a lot of fun with the game we built still
23:41:17  <dominictarr>how many people? we should have added some logging...
23:46:23  <dominictarr>we could deff do massive logo...
23:51:56  * mikealquit (Quit: Leaving.)
23:53:14  * wiwilliaquit
23:57:55  <Raynos>At some point I stopped reading docs
23:58:09  <Raynos>And started diving into index.js or /lib/bullshit.js
23:58:21  <Raynos>Node community why you suck @ docs