00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:03:17  * thl0quit (Ping timeout: 248 seconds)
00:03:31  <dominictarr>mbalho: just rewatching your lxjs talk
00:03:36  <dominictarr>at one point you say
00:04:12  <dominictarr>javascript rules at everthing except matrix transformations, "but nobody uses those anyway"
00:04:17  <mbalho>dominictarr: :P
00:04:31  <jesusabdullah>I use those
00:04:51  <dominictarr>mbalho: uses them now that he does 3d stuff
00:05:12  <mbalho>yea i appreciate them
00:05:34  <jesusabdullah>I actually haven't used them in quite a long time, not since school
00:05:37  <mbalho>also mikolalysenko probably knows a way to achieve the same results
00:05:58  <dominictarr>vector operations are coming to gpu
00:06:08  <dominictarr>and getting bigger and bigger
00:06:21  <dominictarr>js will have to absorb that to keep up
00:06:27  <mbalho>this is the bench i was referring to https://github.com/JuliaLang/julia/blob/master/test/perf/perf.js#L373-L393
00:07:52  <mbalho>dominictarr: also re: your question yesterday about flood fill... you can build towers by looking down and jumping and placing blocks :)
00:08:01  <jesusabdullah>yeah, that's a cool benchmark
00:08:10  <jesusabdullah>I'm still disappointed in how the julia dudes did their package management
00:08:43  <jesusabdullah>packages are github repos which have to be named <Package>.jl
00:09:03  <jesusabdullah>Then the central listings of packages are in another github repo, you "publish" by pull requesting a manifest
00:09:15  <jesusabdullah>installation happens in the repl a la R
00:09:18  <jesusabdullah>ಠ_ಠ
00:13:16  * stlsaintjoined
00:16:37  * jxson_joined
00:17:16  <dominictarr>mbalho: unfortunatly, at the end of your talk, no body knew "log structured merge tree"
00:17:56  <dominictarr>jesusabdullah: oh my god. that is aweful
00:18:07  <rvagg>dominictarr: yeah, that was sad, but I'd hope that if he repeated the talk today it might get a better response
00:19:17  * jxsonquit (Ping timeout: 248 seconds)
00:19:39  <dominictarr>I think so, he basically forsaw level-* by 6 months
00:20:25  <mbalho>i needed the level-* stuff for a project i was working on a year or so ago
00:20:44  <mbalho>and i got excited about it and sent a talk proposal and they let me blab
00:21:12  <dominictarr>jesusabdullah: what a package manager can do is tightly linked to what the lang's module system is like.
00:21:14  <mbalho>im gonna stay up late tonight hacking on levelidb or some other incarnation of it
00:21:25  <mbalho>cause i need it for my minecraft thing
00:21:39  <dominictarr>jesusabdullah: what is julia's like?
00:32:53  * vitor-brjoined
00:36:03  * dominictarrquit (Quit: dominictarr)
00:36:30  * tmcwjoined
00:40:58  * tmcwquit (Ping timeout: 245 seconds)
00:45:27  * fallsemoquit (Quit: Leaving.)
00:57:05  * jxson_quit (Remote host closed the connection)
01:01:11  <mikeal>never used githubs edit/fork/pull request web flow
01:01:14  <mikeal>kinda nice :)
01:05:17  <jesusabdullah>dangit mr. tarr
01:05:53  <jesusabdullah>for those of you watching at home, it's similar to python in terms of namespaced imports, and I think similar to R in that they're global per-user in the home directory
01:06:48  * mikealquit (Quit: Leaving.)
01:07:47  <jesusabdullah> lol someone tried to fix a bug in require.extensions
01:14:53  * thl0joined
01:16:36  * tmcwjoined
01:25:13  * dguttmanquit (Quit: dguttman)
01:26:53  * shuaibquit (Ping timeout: 256 seconds)
01:28:47  <Raynos>isaacs: what would node look like if you forked and cleaned it up?
01:45:31  <jesusabdullah>Raynos: like ynode? :v
01:46:14  <Raynos>whats ynode?
01:46:15  <Raynos>yahoo node?
01:48:07  <jesusabdullah>yeah, Doug Crock in some keynote at a yahoo event said that if HE were in charge HE'd fork node jay ess and call it ynode because joyent "couldn't be trusted" or something like that
01:48:15  <jesusabdullah>also I mentioned you in a tweet, TAKE THAT
01:48:31  <rvagg>Raynos: do you have or use a package like 'after' for an async map operation?
01:49:06  <substack>imagine what ynode would look like
01:49:08  <substack>wow.
01:49:19  <jesusabdullah>probably suspiciously like mojito
01:49:24  <substack>it would have first-class yui support
01:49:27  <jesusabdullah>YES
01:49:35  <jesusabdullah>YUI === enterprise-grade
01:49:36  <rvagg>YNODE.fileSystem.reads.readFileSync()
01:50:02  <jesusabdullah>substack: Horatio Caine found YOUR MODULE inside RAYNOS's package.json SO HOW DO YOU EXPLAIN THAT
01:50:25  * jibayquit (Remote host closed the connection)
01:51:57  <rvagg>Raynos: nmind, found it, map-async, perfecto
01:52:31  <Raynos>rvagg: I also have iterators which is a kitchen sink
01:52:35  <Raynos>rvagg: also execute
01:52:44  <rvagg>Raynos: if I wanted kitchen sink I'd go for async
01:53:01  <rvagg>Raynos: btw, 'after' is becoming my new crutch, thanks
01:53:02  * mikealjoined
01:53:17  <Raynos>i prefer https://github.com/Colingo/execute
01:53:48  <Raynos>jesusabdullah: what?
01:54:08  <rvagg>Raynos: mm.. execute is like async.parallel, iterators is good tho
01:54:10  <jesusabdullah>Raynos: H just FOLLOWED THE EVIDENCE
01:54:20  <jesusabdullah>Raynos: watching CSI: Miami
01:54:22  <Raynos>rvagg: execute is map-async for objects
01:54:32  <rvagg>mm
01:54:34  <Raynos>i barely need the array version
01:54:41  <rvagg>all good! shall add them to my list of goto packages
01:54:53  <Raynos>Also I started doing continuables so I have hash and list functions that do nice things like
01:55:00  <jesusabdullah>you've not seen CSI: Miami Raynos ?
01:55:15  <Raynos>hash := (Object<key, Continuable<T>>) => Continuable<Object<key, T>>
01:55:25  <jesusabdullah>brohonestly that's not javascript
01:55:29  <jesusabdullah>4 shame
01:55:31  <Raynos>list := ([Continuable<T>]) => Continuable<[T]>
01:55:38  <jesusabdullah>NO HASKLES ALLOWED
01:55:50  <Raynos>dude https://github.com/jden/jsig
01:56:06  <jesusabdullah>basically I just can't handle static typing
01:56:27  <rvagg>Object<key, Continuable<T>> = legal java
01:56:29  <jesusabdullah>(that's actually not true)
01:56:43  <Raynos>something just clicked in my head when I realized that things like map async were just returning arrays of continuables into a continuable containing an array
01:56:48  <jesusabdullah>(big has built-in method argument schemas which are basically type signatures for input)
01:56:57  <jesusabdullah>yeah those are words
02:01:51  <rvagg>Raynos: this is unfortunately verbose -> map = require('iterators/lib/async/map')
02:02:05  <Raynos>oh
02:02:11  <Raynos>require("iterators").map works
02:02:18  <Raynos>or require("iterators").mapAsync
02:02:36  <rvagg>yeah, doesn't look quite as sexy tho!
02:02:49  <Raynos>agreed
02:02:55  <Raynos>but iterators is deprecated async-map works
02:03:22  * shuaibjoined
02:03:34  <Raynos>feel free to PR it so it dumps all the files into the root folder :D
02:03:36  <rvagg>oh, so all the extra fluff in iterators, are they available as separate modules?
02:03:49  <rvagg>or you're going for simpler patterns these days?
02:03:49  <Raynos>half of them are
02:03:55  <Raynos>i didnt bother to do all of them
02:04:17  <Raynos>I use https://github.com/Raynos/continuable#maplambdasource
02:04:24  <Raynos>also https://github.com/dominictarr/through
02:06:21  <rvagg>nice
02:07:35  <rvagg>Raynos: so what is continuable in npm? https://npmjs.org/package/continuable is creationix's
02:07:43  <Raynos>yeah
02:07:52  <Raynos>I have yet to finish fighting with him over the name
02:07:56  <Raynos>for now `npm i Raynos/continuable`
02:07:58  <rvagg>ahhh
02:08:46  * stlsaintquit (Quit: leaving)
02:09:06  <Raynos>rvagg: https://gist.github.com/Raynos/5486218
02:09:50  <Raynos>so if you want map over an array just map each value to a continuable that will do the async computation and the use list to parallelize it and then just grab the answer
02:10:12  <Raynos>im not sure whether this is actually better
02:10:27  <Raynos>but it might lead to some useful higher order abstractions eventually
02:12:23  <rvagg>mm, it's possibly a nicer way to think about the problem
02:12:36  <rvagg>a bit verbose but I guess that can be reduced easily enough
02:12:50  <jesusabdullah>I need more CSI: Miami jokes
02:12:56  <jesusabdullah>oh also I told the goog I'd talk to them :/
02:13:01  <jesusabdullah>on one hand, it's the goog
02:13:09  <jesusabdullah>on the other hand, it could lead to stable, lucrative employment
02:13:14  <jesusabdullah>:/ :\
02:13:54  <no9>mbalho I had a look at the levelidb stuff but there is no support for mobile browsers so it didn't fit my purpose
02:14:48  <Raynos>https://gist.github.com/Raynos/5486231#file-async-filter-js-L5
02:15:08  <Raynos>you can implement async filtering with map & list in 12 lines
02:15:19  <Raynos>so I think it's not a bad abstraction on which other things can be build
02:15:56  <jesusabdullah>hmmm
02:15:57  <Raynos>rvagg: ^ Of course the biggest advantage is that interop with everything that does cb's is trivial one line wrappers
02:16:01  <jesusabdullah>what's the coding version of "uncrop" ?
02:16:15  <jesusabdullah>also how come you guys don't stress about teh futar and I do?
02:18:47  * mikolalysenkoquit (Ping timeout: 245 seconds)
02:20:19  <isaacs>Raynos: we'd do promises from the start, and only support JavaScript and C++ for extensions
02:20:26  <jesusabdullah>this very special episode of CSI Miami is about gay action stars
02:20:35  <isaacs>Raynos: and no streams, just monads
02:20:46  <jesusabdullah>someone told me that vin diesel was gay but according to the internet they were a liar
02:21:07  <jesusabdullah>that said, hearing that proved to me that really I wouldn't give a shit
02:23:11  <rvagg>Raynos: the real problem you have is that it's so hard to grok what's going on with that code unless your head is deep in it
02:24:02  <rvagg>actually, that's probably the case with any sufficiently advanced FP library
02:28:50  <jesusabdullah>oh you guys
02:28:54  <jesusabdullah>so distracted by theory
02:29:05  <jesusabdullah>totally missing the human element of software
02:29:22  <jesusabdullah>whereas I'm so buried in the so-called "human element" that I don't even have strong opinions about software anymore
02:29:29  <jesusabdullah>what a world
02:29:36  <rvagg>unhinged!
02:29:53  <jesusabdullah>that's me alright
02:31:24  * mikealquit (Ping timeout: 268 seconds)
02:32:09  <jesusabdullah>hmmm
02:32:19  <jesusabdullah>s2e16, yea or nay
02:33:26  <jesusabdullah>You know what's interesting?
02:33:35  <jesusabdullah>The Anchorage Bowl is roughly the size of San Francisco
02:33:44  <jesusabdullah>surrounded by not a whole fucking lot
02:33:47  <jesusabdullah>but still
02:33:55  <jesusabdullah>a lot less dense though
02:36:42  * no9quit (Ping timeout: 264 seconds)
02:37:07  <jesusabdullah>rvagg: what do you do for job these days anyway?
02:37:13  * mikealjoined
02:40:40  <rvagg>jesusabdullah: same stuff, animal genetics, horse nutrition
02:40:54  <jesusabdullah>I actually never knew what you did for work
02:41:31  <rvagg>yeah, been doing this stuff, mainly genetics, for far too long, 15 years or so
02:41:50  * isaacs&
02:42:03  <rvagg>but on the plus side, give me a population of animals and good pedigree information and I can calculate the inbreeding and coancestry of each animal for you!
02:42:17  <jesusabdullah>so
02:42:23  <jesusabdullah>can you tell me how inbred my parakeet is?
02:42:26  <rvagg>and implement a genetic algorithm that'll generate a suitable mating set to maximise genetic gain and minimise inbreeding
02:42:29  <jesusabdullah>I can tell you he's male and that he's blue
02:42:35  <jesusabdullah>and kind of an asshole
02:43:08  <rvagg>jesusabdullah: when I had an office back at the university where we started this stuff, we had a work experience girl from a local highschool, she bred small parrots (australian budgies) for fun
02:43:39  <rvagg>jesusabdullah: we were able to take her records and work out the genetic probabilities of the various traits she was after (particularly blue feathers), so she could pair them up better
02:43:45  <rvagg>jesusabdullah: that was amusing
02:44:06  <rvagg>jesusabdullah: we've also done stuff for the entire world's captive bengal tiger population via a PhD student who was into that
02:44:27  <rvagg>but anyway, I'm a programmer with far too much genetic crud taking up space in my brain
02:44:28  <jesusabdullah>rvagg: "parakeet" is American for "Australian Budgie"
02:44:50  <rvagg>crikey, you're right
02:44:51  <rvagg>didn't know that
02:44:56  <jesusabdullah>^__^
02:45:34  <rvagg>I believe "budgerigar" (budgie) means "good to eat" in local aboriginal language
02:45:38  <jesusabdullah>hahaha
02:45:53  <jesusabdullah>not a lot of meat on his bones XD
02:46:05  <rvagg>and also google "budge smugglers" for a fun colloquial australianism
02:46:16  <rvagg>anyway, off to lunch
02:46:43  <jesusabdullah>lulz
02:47:03  <jesusabdullah>lolol that was worth it
02:47:13  * thl0quit (Remote host closed the connection)
02:53:16  * mikealquit (Quit: Leaving.)
03:05:39  <Raynos>isaacs: you still need streams. But thankfully streams are just at type of monad.
03:06:38  * st_lukejoined
03:07:38  <mbalho>rvagg: if i were to call a client side leveldb "level.js" would it annoy you?
03:09:16  <Raynos>rvagg: would this api version help? ( https://gist.github.com/Raynos/5486231 )
03:09:42  <Raynos>i think prefixing anything with .js is really annoying
03:09:49  <Raynos>its like the node-foo prefixes
03:09:51  <Raynos>redundant
03:10:07  <mbalho>i disagree with you
03:10:09  <mbalho>:)
03:10:31  <Raynos>but maybe
03:10:37  <Raynos>this is why you can market and popularize your modules
03:10:39  <Raynos>better then me :D
03:10:44  * defunctzombiechanged nick to defunctzombie_zz
03:10:55  <chapel>could call it frontlevel
03:18:43  <jesusabdullah>hello chapel ltns
03:18:52  <chapel>:D
03:18:55  <chapel>I know rite
03:20:20  <chapel>hows alaska?
03:23:30  * mikealjoined
03:36:06  * thatguydanjoined
03:37:02  <jesusabdullah>chapel: not bad
03:37:13  <jesusabdullah>chapel: anchorage is a fun drinking town
03:37:24  <jesusabdullah>chapel: small but fun tech community too
03:37:26  * thatguydanquit (Client Quit)
03:37:28  <chapel>cool
03:37:38  <jesusabdullah>very .net-focused though
03:37:50  <jesusabdullah>biggest employers are big oil and they looooove microsoft
03:39:26  <chapel>sounds like here (spokane)
03:39:30  <chapel>very .net focused
03:42:31  * thatguydanjoined
03:48:37  <jesusabdullah>yeah sounds plausible
03:48:46  <jesusabdullah>I half-participated in a local civic hackathon
03:49:29  <jesusabdullah>I was feeling sick, and the project I was working on ended up being a "set them up with salesforce" situation
03:50:01  <jesusabdullah>anyways, there was another group I was thinking about working with and it was like
03:50:12  <jesusabdullah>"oh hey these guys need some serious database lovin' what are you thinking"
03:50:31  <jesusabdullah>"microsoft sql server, some c sharp" "oh yeah man I do visual basic dot net blah blah"
03:50:35  <jesusabdullah>and I'm like
03:50:41  <jesusabdullah>"...I do linux. Buy guise g'luck"
03:50:44  <rvagg>mbalho: whatever, I have leveljs in npm and that's all I care about!
03:50:44  <jesusabdullah>"ohohohoho"
03:51:09  <rvagg>mbalho: I plan to modularise it (when I magically find time to complete it) into packages like: leveljs-sst, leveljs-log, leveljs-iterator, etc.
03:52:23  <rvagg>Raynos: I have no idea if that's better cause it's still quite opaque
03:52:43  <rvagg>give me some time to wrap my head around it and use it and i'll give feedback
03:53:28  * mikealquit (Ping timeout: 260 seconds)
03:54:01  <rvagg>mbalho: in summary: since I don't have a properly implemented LevelJS I have no right to complain about naming, so if you get something working browser-side and you think it makes sense to have that name then whatever
03:56:01  <rvagg>Raynos: jsig isn't helping.. it's so unnatural
04:01:09  * tmcwquit (Remote host closed the connection)
04:02:58  <mbalho>chrisdickinson: hmm... is beefy from npm working for you? if i type beefy entry.js it does nothing
04:05:08  <mbalho>chrisdickinson: rolling back to 0.1.1 works for me but 0.2.0 and 0.2.1 just exit imediately
04:09:08  * mikealjoined
04:09:11  * mikealquit (Client Quit)
04:16:35  * mikolalysenkojoined
04:17:22  <rvagg>Raynos: why isn't list() in a module? it seems to be a pretty important component of what you can do with this stuff?
04:17:35  <rvagg>Raynos: i.e. https://gist.github.com/Raynos/5486205
04:20:51  <mbalho>rvagg: fyi https://github.com/rvagg/node-abstract-leveldown/commit/6b6d23f9192aad5896a7bcede2db6739745a2d23
04:21:18  <rvagg>
04:22:06  <rvagg>mbalho: do I need to publish a new release?
04:22:34  <mbalho>rvagg: nah i might have more fixes
04:22:53  * thatguydanquit (Read error: No route to host)
04:23:27  * thatguydanjoined
04:23:40  * thatguydanquit (Client Quit)
04:23:55  <rvagg>k
04:31:40  * tmcwjoined
04:38:08  * timoxleyjoined
04:39:43  * tmcwquit (Ping timeout: 245 seconds)
04:44:54  * shamaquit (Remote host closed the connection)
04:48:48  <Raynos>Rvagg: its really new stuff
04:48:57  * AvianFluquit (Remote host closed the connection)
04:48:59  <Raynos>Only been doing it for a week
04:50:22  <rvagg>Raynos: ok, I'm sort of getting the hang of it
04:50:27  <rvagg>stick list in there
04:50:50  * shuaibquit (Ping timeout: 252 seconds)
04:52:05  <rvagg>Raynos: function X takes argument type A and returns object type B (async, on a callback).. what if I want to get something like { a: A, b: B } instead cause I don't want to lose my A when I map a bunch of stuff together
04:52:35  <rvagg>Raynos: like, I have an fs.stat() but I lose the original file/path name to that call, I want both the stat & the file/path at the end
04:53:23  <chrisdickinson>mbalho: `beefy entry.js` doesn't autoopen yet
04:56:59  <mbalho>chrisdickinson: yea but shouldnt it start a server/
04:57:06  <chrisdickinson>oooh
04:57:09  <chrisdickinson>yes
04:57:13  <chrisdickinson>it really really should
04:57:14  <chrisdickinson>:|
04:57:19  <mbalho>chrisdickinson: cause it doesnt for me anymore, does it for you?
04:57:44  <chrisdickinson>no! good catch.
04:58:07  * chrisdickinsonis sorry.
04:58:12  <mbalho>haha its okay
04:58:48  <mbalho>someone play this with me i wanna see if its good
04:58:49  <mbalho>http://openfu.com/ld26/current/client/
04:59:24  <mbalho>waaa server connection lost?
04:59:28  <chrisdickinson>yeah ):
04:59:35  <mbalho>LAME
04:59:37  <chrisdickinson>and again
04:59:38  <chrisdickinson>boo
04:59:48  <mbalho>givin up
05:04:28  * timoxleyquit (Quit: Computer has gone to sleep.)
05:05:17  <mbalho>rvagg: http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=6781
05:06:12  <rvagg>mbalho: ?
05:06:49  <mbalho>rvagg: STUNTS!!!
05:07:01  <rvagg>mbalho: !
05:07:21  <mbalho>rvagg: werent you there at campjs when they were trying to implement stunts in js?
05:07:44  <rvagg>mbalho: tweet @ @alexdickson, he's still working on it
05:07:48  <mbalho>lol
05:08:23  <mbalho>his last tweet about stunts was 3 hours ago hahaha
05:08:42  <rvagg>yeah, I've been encouraging him to give a talk at melbjs about stunts
05:08:56  <mbalho>haha
05:09:07  * shuaibjoined
05:11:12  * mikealjoined
05:11:24  * ins0mniajoined
05:13:41  <rvagg>Raynos: your continuables are making me feel like a complete n00b! stumbling around in the dark with a confused look on my face waiting for the output to not be an error
05:15:23  * jxsonjoined
05:15:42  <rvagg>it's like first learning the async mind-trip, waiting for it to *click*
05:16:20  * jxsonquit (Read error: Connection reset by peer)
05:16:45  * jxsonjoined
05:19:16  * jxsonquit (Remote host closed the connection)
05:19:32  <Raynos>rvagg: ok so
05:23:41  <Raynos>rvagg: https://gist.github.com/Raynos/5486730
05:24:00  <Raynos>you can just return objects
05:24:11  <Raynos>everything you can do with callbacks you can do with continuabvles
05:24:26  <Raynos>the only difference is that continuable is a thing that you can return or pass to other functions. i.e. its a value
05:24:36  <Raynos>its easier to write higher order functions over values then over CPS
05:24:41  <Raynos>I'm sure the latter could be done
05:26:48  * jcrugzzquit (Ping timeout: 256 seconds)
05:26:59  <rvagg>hrm
05:27:01  <Raynos>rvagg: I was really hoping continuable's were close enough to callbacks that it would be easy to pick up
05:27:13  <rvagg>keep hoping
05:27:16  <Raynos>:D
05:27:36  <Raynos>i need more real world usage before I can start giving good examples
05:28:00  <Raynos>I also wrote a `cache` function which turns a continuable into a promise-like thing. i.e. if you call it multiple times it gives you the same value back
05:28:09  <Raynos>best of both worlds!
05:30:15  <jesusabdullah>wat is continuabul
05:32:16  * tmcwjoined
05:35:09  <Raynos>https://github.com/Raynos/continuable
05:36:48  * tmcwquit (Ping timeout: 245 seconds)
05:40:00  * mikealquit (Quit: Leaving.)
05:42:33  <rvagg>Raynos: https://gist.github.com/rvagg/f35c8fb674621d428fb0
05:42:49  <rvagg>I'm not sure that's any better than an alternative method, quite verbose in fact, can you improve?
05:48:36  <st_luke>america - http://boston.cbslocal.com/2013/04/29/nh-man-loses-life-savings-on-carnival-game/
05:50:50  <jesusabdullah>lol
05:50:54  <jesusabdullah>$2600?
05:50:56  <jesusabdullah>that's it?
05:50:57  <jesusabdullah>I mean
05:51:13  <jesusabdullah>At that point I wouldn't call it a "life savings" so much as a "buffer"
06:07:56  <Raynos>sec
06:07:59  <Raynos>ill look at it
06:09:38  <Raynos>god I cant read that
06:14:49  <jesusabdullah>ugh what the fuck kind of recruiter sends out email blasts for serious
06:14:57  <jesusabdullah>even the skeeviest at least fake one-on-one
06:15:01  <jesusabdullah>ಠ_ಠ
06:15:10  * mikolalysenkoquit (Ping timeout: 272 seconds)
06:16:54  <Raynos>rvagg: https://gist.github.com/Raynos/e312c81ac46b96135517#file-index-js-L11
06:17:27  <Raynos>the improvement here is hash function and only using continuables when needed and using normal objects / arrays when not needed
06:18:53  <rvagg>Raynos: ok, so we're closer to a vanilla implementation, does that mean the value of continuables is limited?
06:19:55  <rvagg>oh yea, toPath() was meant to be something a bit more complex initially, the callback is unnecessary so that does change things
06:20:20  <rvagg>tho the err is handy as a callback
06:29:41  * jxsonjoined
06:29:50  <rvagg>Raynos: I'm inclined just to go with this version: https://gist.github.com/rvagg/f35c8fb674621d428fb0
06:30:05  <rvagg>much simpler, sans continuables
06:30:46  <rvagg>what I'd really like to do is string functions together arbitrarily, like streams, it'd be nice if contibuables allowed that
06:31:20  <jesusabdullah>still dun noe wat contunuabul is :C
06:31:22  <rvagg>['foo','bar'].map(toPath(mappify(stat)))
06:32:03  <rvagg>jesusabdullah: it's ok, you'll find out when you grow up
06:32:48  * tmcwjoined
06:34:59  * jxsonquit (Ping timeout: 255 seconds)
06:37:58  * tmcwquit (Ping timeout: 272 seconds)
06:39:21  <jesusabdullah>rvagg: ur so mean 2 me
06:39:33  <jesusabdullah>;_;
06:40:11  <jesusabdullah>ahhh, config code
06:40:31  <jesusabdullah>part of me thinks that config stuff was 100% solved with dominic's config-chain and rc modules
06:41:38  <jesusabdullah>same part of me that things require('./config.json') is sufficient for most cases
06:41:51  <jesusabdullah>another part of me thinks nconf fucked it up but was a half-truth
06:42:00  <jesusabdullah>what do you think rvagg?
06:42:17  <jesusabdullah>if you had to choose between require('./config.json') and a hypothetical rewrite of nconf......
06:43:26  <rvagg>jesusabdullah: nconf, a little like the rest of the stuff that comes out of nodejitsu, is kind of over the top, all-things-to-all-apps bloatware
06:43:44  <rvagg>jesusabdullah: which is sad cause there's so much good stuff in there, it's just bloated by trying to be generic
06:47:08  <jesusabdullah>yeah rvagg
06:47:25  <jesusabdullah>like 80% right, 20% nodjatso
06:47:36  <jesusabdullah>and that 20% is kind of a deal breaker
06:48:22  <jesusabdullah>or maybe a different cut, wherein I can't figure out the exact cut
06:49:03  <jesusabdullah>Nexxy: didn't you and tasha get engaged ages ago? or did the gubmint say no for nebulous reasons?
06:49:12  <jesusabdullah>Nexxy: facebro teh confuzzles
06:51:39  <jesusabdullah>obtw rvagg budgie smuggler was lulz
06:52:05  <rvagg>jesusabdullah: yeah, we have a ton of euphemisms for those
06:53:58  <rvagg>jesusabdullah: "lolly bags" is my fave tho
06:54:02  <jesusabdullah>haha
06:54:03  * shuaibquit (Ping timeout: 260 seconds)
06:54:10  <jesusabdullah>naw "budgie smuggler" is the best
06:55:08  * shuaibjoined
06:55:26  * ins0mniaquit (Ping timeout: 245 seconds)
06:55:33  <jesusabdullah>dangit why did this tweet get retwatted it makes NO SENSE
07:08:44  * ins0mniajoined
07:11:01  * jcrugzzjoined
07:14:52  * wolfeidauquit (Remote host closed the connection)
07:19:56  * stagasjoined
07:20:47  * mikolalysenkojoined
07:23:08  * nicholasfjoined
07:25:43  * mikolalysenkoquit (Ping timeout: 264 seconds)
07:33:11  * tmcwjoined
07:35:33  * jcrugzzquit (Ping timeout: 248 seconds)
07:38:02  * tmcwquit (Ping timeout: 256 seconds)
07:38:15  * wolfeidaujoined
07:50:12  <Raynos>rvagg: i also want to string functions together
07:50:22  <Raynos>thats why map returns a fn(cont) => cont
07:50:35  <Raynos>so you can do compose([ map(f), map(g), map(h) ]) and it does the correct thing
07:50:44  <Raynos>but I have yet to figure out how to use it effectively
08:25:58  * dominictarrjoined
08:28:45  * ins0mniaquit (Read error: Operation timed out)
08:30:04  * dominictarrquit (Client Quit)
08:33:47  * tmcwjoined
08:38:28  * tmcwquit (Ping timeout: 245 seconds)
08:40:33  * mcollinajoined
08:42:11  * jcrugzzjoined
08:46:50  * jcrugzzquit (Ping timeout: 255 seconds)
08:56:29  <rvagg>Raynos: another variation: https://gist.github.com/rvagg/f35c8fb674621d428fb0
08:59:54  <rvagg>Raynos: it seems that the goal, at least as far as I see it, is to have better reusable functions that can be pieced together in flexible ways
09:00:44  * yorickjoined
09:34:21  * tmcwjoined
09:38:02  * no9joined
09:38:53  * tmcwquit (Ping timeout: 245 seconds)
09:47:52  * no9quit (Ping timeout: 246 seconds)
09:51:54  * st_lukequit (Remote host closed the connection)
09:59:22  * vitor-brquit (Quit: Saindo)
09:59:39  * vitor-brjoined
10:07:40  * dominictarrjoined
10:11:44  * dominictarrquit (Client Quit)
10:13:59  * jan____quit (Changing host)
10:13:59  * jan____joined
10:23:55  * tim_smart|awayquit (Ping timeout: 246 seconds)
10:25:15  * kanzurequit (Ping timeout: 276 seconds)
10:25:58  * kanzurejoined
10:27:17  * tim_smart|awayjoined
10:27:17  * tim_smart|awaychanged nick to tim_smart
10:27:27  * dominictarrjoined
10:31:27  * st_lukejoined
10:34:51  * tmcwjoined
10:37:14  * st_lukequit (Remote host closed the connection)
10:39:18  * tmcwquit (Ping timeout: 245 seconds)
10:44:27  * st_lukejoined
10:48:14  <dominictarr>mbalho: substack idea for game: you are playing along, and then suddenly, you accidentally hit a key, and go into code edit mode (and can see things, like strings the characters will say)
10:48:29  <dominictarr>and you have to use that to solve a puzzel
10:48:56  <dominictarr>but then, the some other character, some wizard guy
10:49:10  <dominictarr>when you tell him about it
10:49:20  <dominictarr>is like: no no no, that was nothing
10:49:32  <dominictarr>you just had a fit of insanity
10:49:37  <dominictarr>you where dreaming
10:49:57  <dominictarr>and trys to expel you and send you to the mental asylum
10:50:13  <dominictarr>but then in the asylum, you meet another guy who can do it
10:50:25  <dominictarr>and he starts to teach you more programming
10:50:40  <dominictarr>and introduce you to a secret society of programmers
10:51:08  <dominictarr>maybe it's not a wizard character
10:51:13  <dominictarr>maybe it's a priest
10:51:31  <dominictarr>it's a non magic world - except you discover magic
10:52:05  <dominictarr>and all the powerful people are trying to suppress it and cover it up
10:54:00  <tanepiper>sounds a bit like Dreamweb http://en.wikipedia.org/wiki/DreamWeb
10:56:55  <substack>I just had some really vivid abstract art and music in my dream
11:00:00  <st_luke>substack: draw it before you forget it!
11:03:37  <st_luke>since i changed my twitter i get a lot of spam from justin bieber fans
11:03:42  <st_luke>this must be what happiness feels like
11:09:37  * st_lukequit (Remote host closed the connection)
11:09:37  * thl0joined
11:21:03  * ins0mniajoined
11:35:20  * tmcwjoined
11:35:59  * dominictarrquit (Quit: dominictarr)
11:36:03  * st_lukejoined
11:40:04  * dominictarrjoined
11:40:42  * tmcwquit (Ping timeout: 272 seconds)
11:58:16  * jibayjoined
12:07:57  * keslajoined
12:19:54  * ins0mniaquit (Ping timeout: 264 seconds)
12:22:02  * st_lukequit (Remote host closed the connection)
12:29:13  * timoxleyjoined
12:35:50  * tmcwjoined
12:40:52  * tmcwquit (Ping timeout: 272 seconds)
12:44:19  <juliangruber>substack: you dropped the hash fallback in single-page but also removed the check for window.addEventListener
12:44:21  * keslaquit (Ping timeout: 276 seconds)
12:44:31  <juliangruber>so you won't support older browsers?
12:45:54  * keslajoined
12:46:59  <substack>I did that because it wasn't working with hash urls on pushstate urls
12:49:41  <juliangruber>oh
12:50:10  * tmcwjoined
12:56:11  * thl0quit (Remote host closed the connection)
13:01:05  <juliangruber>having to support ie8 and firefox 3.6 sucks so hard
13:03:34  * AvianFlujoined
13:04:39  * jcrugzzjoined
13:07:21  * tmcwquit (Remote host closed the connection)
13:13:21  * jcrugzzquit (Ping timeout: 268 seconds)
13:20:46  <juliangruber>in ie8: typeof el.appendChild === 'object'
13:20:59  <dominictarr>wtf
13:21:10  * kevino80joined
13:21:17  <juliangruber>that's so wrong
13:21:19  <dominictarr>typeof el.appendChild.call ?
13:21:48  <juliangruber>object
13:21:55  <juliangruber>typeof function() {} == 'function'
13:22:00  <juliangruber>weirdo
13:22:16  <dominictarr>what about in ie9 ?
13:22:29  <juliangruber>seems to be fixed there
13:22:56  <dominictarr>recently in v8, typeof /regexp/ === 'function'; but now: it's object
13:23:11  <dominictarr>changed when we switched to 0.8
13:23:56  <juliangruber>makes more sense?
13:24:15  <dominictarr>it was a function, but you couldn't call it.
13:24:22  <dominictarr>which was silly
13:24:43  <dominictarr>or maybe you could? can't remember...
13:24:47  * dominictarrquit (Quit: dominictarr)
13:25:20  <juliangruber>now, how do we fix typing
13:26:45  * keslaquit (Ping timeout: 256 seconds)
13:27:29  * ins0mniajoined
13:28:09  * thl0joined
13:29:20  <juliangruber>in ie8: typeof NodeList == 'object'
13:29:25  <juliangruber>so you can't do instanceof checks
13:29:35  <juliangruber>can I hire someone to fix my ie8 bugs?
13:29:48  * keslajoined
13:33:35  * no9joined
13:40:31  * ins0mniaquit (Ping timeout: 260 seconds)
13:42:41  * ins0mniajoined
13:43:38  * jcrugzzjoined
13:48:38  * jcrugzzquit (Ping timeout: 256 seconds)
13:52:43  * ins0mniaquit (Ping timeout: 264 seconds)
13:55:52  * ins0mniajoined
13:55:58  * timoxleyquit (Quit: Computer has gone to sleep.)
14:05:07  * ins0mniaquit (Ping timeout: 246 seconds)
14:09:03  * ins0mniajoined
14:13:16  * fallsemojoined
14:13:24  * ins0mniaquit (Ping timeout: 252 seconds)
14:15:23  * defunctzombie_zzchanged nick to defunctzombie
14:22:58  * tmcwjoined
14:28:21  * kanzurequit (Remote host closed the connection)
14:28:57  * kanzurejoined
14:47:00  * dominictarrjoined
15:07:54  * dguttmanjoined
15:22:27  <tanepiper>Yes, but it'll cost you a lot :p
15:22:51  * shuaibquit (Ping timeout: 268 seconds)
15:24:36  * shuaibjoined
15:27:23  * jxsonjoined
15:31:20  * jxson_joined
15:31:42  * jxsonquit (Ping timeout: 245 seconds)
15:34:28  <defunctzombie>substack: version 1.0.0 of browser-resolve has no shims
15:34:53  <defunctzombie>substack: I can do a pull on browserify for those if you want
15:36:36  * jcrugzzjoined
15:36:47  * jxson_quit (Read error: Connection reset by peer)
15:37:20  * jxsonjoined
15:37:38  * keslaquit (Ping timeout: 252 seconds)
16:28:11  * shamajoined
16:32:09  * jxsonquit (Remote host closed the connection)
16:47:07  * mikolalysenkojoined
16:49:07  * no9quit (Ping timeout: 256 seconds)
16:53:48  * tmcwquit (Remote host closed the connection)
16:58:25  * mcollinaquit (Quit: mcollina)
16:59:13  <mbalho>rvagg: hmm i think the only thing keeping me from being able to use abstract leveldown for client side is the Buffer.isBuffer. i dunno a good interop pattern for buffers/typed arrays though :(
16:59:28  <mbalho>rvagg: how does levelup handle storing typed arrays?
17:04:38  * tmcwjoined
17:07:59  * jxsonjoined
17:08:51  * jxsonquit (Read error: Connection reset by peer)
17:09:19  * jxsonjoined
17:09:42  * keslajoined
17:23:51  * shuaibquit (Ping timeout: 276 seconds)
17:25:38  * shuaibjoined
17:34:19  * shuaibquit (Ping timeout: 252 seconds)
17:37:37  * shuaibjoined
17:39:34  * mikolalysenkoquit (Ping timeout: 256 seconds)
17:46:24  * shuaibquit (Ping timeout: 252 seconds)
17:47:16  * ins0mniajoined
17:47:39  * shuaibjoined
17:51:54  * shuaibquit (Ping timeout: 252 seconds)
17:55:16  * shuaibjoined
18:00:33  * ins0mniaquit (Ping timeout: 240 seconds)
18:01:21  * shuaibquit (Read error: Operation timed out)
18:01:27  * ins0mniajoined
18:02:08  * shuaibjoined
18:05:19  * thl0quit (Remote host closed the connection)
18:06:08  * ins0mniaquit (Ping timeout: 252 seconds)
18:06:34  * shuaibquit (Ping timeout: 252 seconds)
18:07:09  * evboguejoined
18:09:08  * shuaibjoined
18:09:26  * ins0mniajoined
18:11:05  * mikolalysenkojoined
18:13:32  * shuaibquit (Ping timeout: 252 seconds)
18:14:56  * ins0mniaquit (Ping timeout: 252 seconds)
18:15:40  * shuaibjoined
18:19:56  * st_lukejoined
18:22:18  * jxsonquit (Ping timeout: 268 seconds)
18:22:29  <rowbit>/!\ GitHub user "no9" is supporting Testling with the testling_supporter_5 plan! $5/month. Cash money!
18:24:45  * shuaibquit (Read error: Operation timed out)
18:25:37  * shuaibjoined
18:25:44  * evboguequit (Ping timeout: 256 seconds)
18:30:58  <mbalho>rvagg: also indexeddb stores all JS data types natively so you dont have to do the whole stringify-all-the-things that leveldown seems to do now
18:32:07  * shuaibquit (Ping timeout: 245 seconds)
18:33:13  * jxsonjoined
18:33:16  * no9joined
18:33:38  * shuaibjoined
18:34:11  * jxsonquit (Read error: Connection reset by peer)
18:34:26  * jxsonjoined
18:35:41  * thl0joined
18:38:06  * shuaibquit (Ping timeout: 252 seconds)
18:41:11  * shuaibjoined
18:45:26  * shuaibquit (Ping timeout: 252 seconds)
18:46:02  * yorickquit (Remote host closed the connection)
18:46:38  * shuaibjoined
18:48:57  * defunctzombiechanged nick to defunctzombie_zz
18:50:56  * shuaibquit (Ping timeout: 252 seconds)
18:52:34  * thl0quit (Remote host closed the connection)
18:52:40  * thl0_joined
18:52:43  * shuaibjoined
18:54:04  <dominictarr>substack: defunctzombie_zz would you be able to do module-deps using just a tokenizer instead of parsing?
18:57:10  * shuaibquit (Ping timeout: 252 seconds)
18:57:56  <juliangruber>dominictarr: what laptop are you thinking of getting?
18:58:10  <dominictarr>for going back to linux?
18:58:14  <juliangruber>yes
18:58:14  <juliangruber>:)
18:58:26  <dominictarr>I'm just gonna try install something on the air
18:58:35  <dominictarr>nothing against the hardware
18:58:46  <dominictarr>some people seem to manage it!
18:58:52  <juliangruber>I was thinking of that 350$ samsung chromebook which has 3g built in
18:59:09  <dominictarr>oh yeah that looks really good too
18:59:18  <mbalho>if anyone has opinions on leveldb node/browser test suite compatibility: https://github.com/rvagg/node-abstract-leveldown/issues/2
18:59:22  <juliangruber>but 16gb ssd is tiny, my ~/git folder already has 16gb
18:59:42  <dominictarr>would be awesome not to have a phone for working from cafes
19:00:09  * shuaibjoined
19:00:16  * shuaibquit (Changing host)
19:00:16  * shuaibjoined
19:00:16  <mbalho>3g with a plan?
19:00:19  <dominictarr>I'm at 9bg
19:00:25  <dominictarr>fuck that
19:00:30  <dominictarr>prepay or nothing
19:00:32  <mbalho>i have 6gb
19:00:50  <dominictarr>my ~/.npm is also 0.9gb
19:02:09  <dominictarr>juliangruber: I was reading something that made we think I needed a intel chromebook
19:02:25  <dominictarr>think it was something about gcc working?
19:03:50  <dominictarr>but for only 350 it's not really a big deal
19:04:16  <juliangruber>hm tough call
19:04:30  * shuaibquit (Ping timeout: 252 seconds)
19:06:51  <dominictarr>I like the idea of the chromebook, but need a package manager for stuff, so it might be ubuntu in the end.
19:06:59  <dominictarr>until anarchy os is ready that is!
19:07:03  <juliangruber>:D
19:07:14  * shuaibjoined
19:07:30  <juliangruber>yeah, what's the advantage of chromeos over ubuntu or another linux distro?
19:11:28  * shuaibquit (Ping timeout: 252 seconds)
19:13:09  * shuaibjoined
19:13:52  <dominictarr>well the problem is ubuntu isn't that great
19:14:11  <juliangruber>with chromeos you have chrome and shell
19:14:18  <juliangruber>shouldn't be too hard with any other os
19:14:23  <dominictarr>choromeos sounds promising
19:14:24  <juliangruber>the boot is fast, thoguh
19:14:41  <dominictarr>ubuntu has a pretty good package manager.
19:15:00  <dominictarr>if you could install gcc with npm all my problems would be solved, though.
19:15:48  <juliangruber>dominictarr: why gcc with npm?
19:16:06  <dominictarr>well, gcc is just an example
19:16:15  <juliangruber>ah, I see what you mean
19:16:21  <dominictarr>the low level tools you always need eventually
19:16:31  <dominictarr>if not to use directly
19:16:42  <dominictarr>then to compile something like leveldown
19:16:58  <dominictarr>I don't want to have to go and install that stuff manually
19:17:02  <juliangruber>dominictarr: chromeos comes with portage as a package manager
19:17:11  <juliangruber>http://en.wikipedia.org/wiki/Portage_(software)
19:17:42  * shuaibquit (Ping timeout: 252 seconds)
19:19:08  * shuaibjoined
19:20:20  <dominictarr>hmm, that sounds pretty good
19:20:32  <Domenic_>where was that place where substack gave a good explanation of how you should handle excessive ..s
19:20:34  <CoverSlide>yeah it's based on gentoo
19:20:37  <Domenic_>(by creating new packages)
19:22:57  * nicholasfquit (Read error: Connection reset by peer)
19:23:23  * nicholasfjoined
19:23:47  * shuaibquit (Ping timeout: 256 seconds)
19:24:20  <dominictarr>juliangruber: downloading the virtual box thing to try it out http://chromeos.hexxeh.net/
19:24:38  <juliangruber>dominictarr: i think i tried that and it didn't work
19:24:44  <st_luke>Domenic_: jw, did you have izs go over that domains stuff you were demoing?
19:24:49  <dominictarr>the vm one?
19:24:53  <juliangruber>yes
19:24:55  <juliangruber>I'll try again
19:24:58  <dominictarr>hmm
19:25:10  <st_luke>Domenic_: idk if you can just wrap it in an ee and have the same benefit as actually ending the process
19:25:48  <Domenic_>st_luke: isaacs only commented on the promise slides :P
19:26:11  * shuaibjoined
19:27:23  * mikealjoined
19:30:40  * keslaquit (Ping timeout: 256 seconds)
19:31:24  <juliangruber>dominictarr: it booted but doesn't recognize the network interface
19:31:40  <dominictarr>in virtualbox?
19:31:48  <dominictarr>or on your computer?
19:31:49  <juliangruber>yes
19:31:52  <juliangruber>virtualbox
19:34:11  <juliangruber>http://www.howtogeek.com/128087/how-to-run-chrome-os-in-virtualbox-and-try-out-chrome-os-before-buying-a-chromebook/
19:34:56  * shuaibquit (Ping timeout: 251 seconds)
19:36:58  <juliangruber>dominictarr: it works :)
19:37:03  <dominictarr>!
19:37:41  <juliangruber>the mouse pointer moves strangely
19:44:33  <juliangruber>dominictarr: you get to a shell through ctrl+alt+T
19:44:47  <dominictarr>still downloading....
19:49:20  * defunctzombie_zzchanged nick to defunctzombie
19:50:35  <defunctzombie>dominictarr: module deps on just source without a location doesn't produce any useful output
19:50:44  <defunctzombie>since module-deps needs to then load the other files
19:54:51  <dominictarr>the keyboard shortcuts suck
19:55:07  <dominictarr>sometimes I am changing tabs with the keys
19:55:25  <dominictarr>and the focus gets stuck in the location bar
19:56:48  <dominictarr>and you have to hit tab and then it will work again...
19:56:55  <juliangruber>dominictarr: when you're at the shell, username and password are chronos and facepunch
19:56:55  <juliangruber>vim in the chrome shell behaves strangely...or the display doesn't update when doing some thing
19:56:55  <juliangruber>s
19:57:39  * keslajoined
19:57:46  <dominictarr>unless there is a auto suggest there… which means I have to press esc then tab
19:58:27  <juliangruber>in chromeos?
19:58:41  <dominictarr>yeah
19:58:49  <dominictarr>I always change tabs by keys
19:59:06  <dominictarr>that is essential - also I want the same controls for browser as for terminal
19:59:20  <juliangruber>I use CMD+LARR/RARR
19:59:33  <juliangruber>i mean cmd + alt + larr/rarr
20:00:04  <juliangruber>never had the problem of hitting that with the address bar focused
20:00:37  <dominictarr>in chrome os?
20:00:53  <juliangruber>in mac os
20:01:23  * shuaibjoined
20:01:56  <dominictarr>on mac it's okay
20:02:04  <juliangruber>I think the browser shouldn't have tabs at all, that should os level
20:02:11  <juliangruber>+be
20:02:25  <dominictarr>on linux it's best! you can also reposition tabs with keys!
20:02:33  <dominictarr>I kinda agree
20:02:56  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
20:02:56  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
20:02:59  <dominictarr>I think I'll go to a tile based windows manager like substack
20:03:38  <juliangruber>I've been on those but some apps couldn't be forced into tiles...maybe I won't have that problem anymore
20:04:05  <juliangruber>it would be cool to go to browser + terminal only, absolutely nothing else
20:04:06  <dominictarr>I got to a term, but there are no commands?
20:04:22  <juliangruber>which term are you in?
20:04:23  * keslaquit (Ping timeout: 252 seconds)
20:04:37  <dominictarr>crosh
20:04:51  <juliangruber>ctrl+alt+fn+f1
20:05:55  <dominictarr>aha I found it
20:06:05  <dominictarr>the command is `shell`
20:06:09  <juliangruber>oh
20:06:19  <juliangruber>yeah sry forgot that
20:06:20  <mbalho>typing this from chromeos WOOP WOOP
20:06:50  <dominictarr>there is no man command!
20:07:01  <juliangruber>WOOP WOOP
20:07:06  <mbalho>why man when you can google
20:07:24  <mbalho>i wouldnt not expect chromeos to have anything except chrome on it
20:07:26  <CoverSlide>LOUDBOT: tweetlast
20:07:27  <guybrush>because you dont need tobe online :D
20:07:29  <mbalho>oops meant to say 'would not'
20:07:54  <mbalho>i wonder what the meta key is mapped to...
20:08:16  <juliangruber>mbalho: but it has a package manager!
20:08:49  <juliangruber>maybe I'll just order the cheap samsung chromebook and use the 30d return policy
20:20:14  * yorickjoined
20:29:33  * jxson_joined
20:33:20  * jxsonquit (Ping timeout: 272 seconds)
20:39:38  <dominictarr>nah, fuck this.
20:40:05  <dominictarr>I don't want to use something that is working against me hacking so hard.
20:44:11  <dominictarr>chromeos is too badly crippled.
20:45:36  <mbalho>its not crippled, you just had your own expectations :)
20:47:03  <dominictarr>yes. and they are unreasonably high.
20:47:20  <dominictarr>if a computer can't compile it's just a toy
20:47:59  <dominictarr>if you can only use a web browser and email then you arn't computer literate
20:48:12  <dominictarr>literate is being able to read and write programs.
20:48:22  <CoverSlide>chromeos is basically an ipad with a keyboard
20:48:28  <dominictarr>yeah.
20:48:36  <mbalho>javascript is programming
20:48:52  <mbalho>you guys just want unix
20:48:54  <dominictarr>maybe when js git is ready.
20:49:06  <CoverSlide>well sure there's c9
20:49:09  <dominictarr>well, it is unix
20:49:17  <mbalho>its chrome
20:49:24  <dominictarr>it's gentoo
20:49:26  <CoverSlide>iOS is unix too
20:49:37  <mbalho>its not unix if you cant get to the unix
20:49:48  <CoverSlide>true
20:50:19  <dominictarr>Anyway, I object to the idea of apps that only work when signed by a central authority
20:50:28  <dominictarr>that is completely the wrong approach
20:50:59  <dominictarr>the right approach is to install untrusted apps into a sandbox - a la the web
20:52:04  <juliangruber>-> firefox os
20:52:15  <juliangruber>everyone can host a firefox os marketplace
20:52:31  <dominictarr>oh really? that sounds much better
20:52:34  <juliangruber>but I don't think you can get to a shell easily
20:52:38  <juliangruber>yeah
20:53:46  <dominictarr>someone said once, if you arn't programming the computer, the computer is programming you.
20:55:02  * dominictarrquit (Quit: dominictarr)
20:56:56  <juliangruber>we program browsers, so if the browser is the lowest accessible level that's ok, right? :)
20:59:51  <mbalho>juliangruber: what does the over-the-wore protocol of multilevel look like?
20:59:55  <mbalho>juliangruber: wire*
21:00:16  <mbalho>juliangruber: is it a binary stream?
21:03:46  <juliangruber>mbalho: it currently uses rpc-stream and mux-demux
21:04:19  <mbalho>juliangruber: i think mux demux is just strings, right?
21:04:41  <mbalho>juliangruber: so it converts binary to string and back?
21:04:45  <juliangruber>it might have problems with binary data atm, mux-demux could be configured to use msgpack or redis-protocol-stream
21:05:34  <juliangruber>ah
21:05:51  <juliangruber>mux-demux uses JSON.stringify/parse by default
21:05:55  <mbalho>:(
21:06:33  <juliangruber>mbalho: should be a quick fix :)
21:07:03  <mbalho>juliangruber: to use msgpack? is there a fast pure js implementation that works reliably in node + client?
21:07:14  <mbalho>i havent used it in JS
21:07:35  <juliangruber>I'll have a look
21:07:41  <mbalho>i wanna say chrisdickinson was writing one
21:08:04  <mbalho>we could also just get dominictarr to write a binary version of mux demux
21:08:12  <mbalho>and then we could just use a binary transport like tcp/websockets etc
21:11:19  <mbalho>cause js already has native binary support, msgpack seems like the wrong way to get binary support for multilevel
21:12:47  * shuaibquit (Ping timeout: 258 seconds)
21:12:51  <juliangruber>hmm
21:13:09  <juliangruber>maybe https://github.com/dominictarr/redis-protocol-stream
21:14:55  * shuaibjoined
21:17:42  <juliangruber>a binary mux-demux is the solution
21:19:25  * shuaibquit (Ping timeout: 252 seconds)
21:19:44  <wolfeidau>yeah you still need to decide on a encoding for the data though :)
21:20:01  <wolfeidau>You could go retro and use ASN.1 :P
21:20:38  * dominictarrjoined
21:20:39  <chapel>is anyone working on a sharded distributed leveldb implementation?
21:20:56  * shuaibjoined
21:21:11  <juliangruber>chapel: I started with sharding
21:21:36  <juliangruber>but there are different ways to approach that problem and I don't really have a usecase atm...
21:21:45  <chapel>mostly just curious, honestly don't think I know enough atm to do something production ready, but wanted to see if anyone had tackled it
21:21:51  <chapel>yeah
21:22:25  <chapel>Ive been reading and playing with everything node + level db
21:22:38  <wolfeidau>mbalho: There is an article around comparing the different binary data encoding methods, message pack is fast but a bit black box in my view
21:22:39  <chapel>definitely like the potential
21:23:06  <chapel>reminds me of the excitement I had when I started using node in the first place
21:23:43  <mbalho>wolfeidau: i wonder how much slower it is than sending a buffer between 2 tcp servers or sending a typed array over a binary websocket to a node websocket server
21:24:28  <Raynos>isaacs: https://github.com/isaacs/redsess/pull/5
21:24:35  <wolfeidau>mbalho: well it depends on the header size, tcp service you get to choose ws is 2 byte header for the message
21:25:04  <wolfeidau>mbalho: issue with tcp service is you lose all the control messages and stuff
21:25:04  <Raynos>oh wait
21:25:07  <Raynos>you already solved that
21:25:48  <wolfeidau>mbalho: You pretty much build your own protocol, which can get complicated unless your just doing simple stuff
21:25:51  <mbalho>wolfeidau: yea but i was thinking more along the lines of the fact that node + browsers already have natively implemented binary encoders/decoders
21:26:30  <mbalho>wolfeidau: so it makes the most sense to me to just use those instead of tryign to write your own binary encoder in JS
21:26:48  <wolfeidau>mbalho: Yeah I think it depends on message size, you will probably see little diff in small messages, especially given ws is going to gzip it anyways
21:27:24  <juliangruber>mbalho: mux-demux is only 180loc, maybe it's not that hard to move it to a binary protocol
21:27:29  * shuaibquit (Ping timeout: 252 seconds)
21:27:29  <mbalho>wolfeidau: ill be sending medium sized binary messages (500kb - 1mb)
21:27:38  <mbalho>juliangruber: ah cool
21:27:56  <mbalho>i commented here https://github.com/dominictarr/mux-demux/issues/14
21:28:01  <juliangruber>yeah I saw
21:28:25  * mcollinajoined
21:28:54  * shuaibjoined
21:28:58  <wolfeidau>mbalho: o ok so the bottle neck you need to test is the serialisation speed of the various methods in said browsers for your message sizes
21:29:58  <juliangruber>wolfeidau: streaming serialization for all data types is kinda unsolved in node right now
21:30:30  <juliangruber>atm mux-demux only supports object-streams
21:30:30  <mbalho>thats why i just want a pure binary protocol
21:30:33  <dominictarr>mbalho: what about the redis protocol?
21:30:51  <guybrush>there is also https://github.com/binaryjs/binaryjs its based on npm.im/binarypack which is based on npm.im/buffercursor
21:30:55  <mbalho>i dont care what the protocol is as long as it can efficiently replicate a leveldb :)
21:31:07  <dominictarr>there is already an optimized parser from voxer
21:31:10  <CoverSlide>i do like the redis protocol
21:31:28  <dominictarr>chapel: there are two problems: replication and sharding
21:31:47  <dominictarr>I have a basic master-slave replication already
21:32:33  <dominictarr>you could use that to do something like a master (transactor) in the middle that handles all writes, and fan it out to many slaves that handle reads.
21:32:49  <chapel>dominictarr: yeah, Ive been reading your code in your various level/scuttlebutt repos
21:33:04  <dominictarr>you'll need quite a serious amount of data before you need sharding
21:33:07  <mbalho>dominictarr: is the redis protocol text or binary?
21:33:17  <dominictarr>it can do binary
21:33:37  <chapel>yeah, can't help thinking about the possibilities, but master <-> master should be more than capable for node + level
21:33:38  <CoverSlide>it's similar to http chunked encoding.
21:33:44  <CoverSlide>though not really
21:33:54  <dominictarr>chapel: yeah that is on my list
21:34:06  <chapel>isn't redis binary with known delimiter bits?
21:34:12  <dominictarr>I might start on that soon.
21:34:19  <dominictarr>redis is like
21:34:46  <dominictarr>1*\r\n5$\r\nhello
21:34:50  <st_luke>NAS IS LIKE NAS IS LIKE
21:34:52  <chapel>yeah
21:34:55  <dominictarr>(or something)
21:34:59  <chapel>you're right
21:35:02  <chapel>its very similar to that
21:35:06  <chapel>super simple
21:35:14  <chapel>conceptually at least
21:35:27  <mbalho>dominictarr: if you can make mux-demux use redis protocol then that seems like a win
21:35:33  * shuaibquit (Ping timeout: 252 seconds)
21:35:34  <chapel>dominictarr: are you familiar with elasticsearch?
21:35:42  <dominictarr>chapel: so, there are a bunch of approaches to master master it really depends on your application
21:35:47  <dominictarr>I've heard of it.
21:36:02  <chapel>it has very flexible sharding with automatic failover
21:36:30  <dominictarr>interesting.
21:36:31  <chapel>e.g. master is usually the first instance up, it transitions based on who is the most trusted
21:36:44  <dominictarr>yeah you need sharding + replication
21:36:46  <chapel>so you can boot one instance, load another, close the first, and the 2nd will be the new master
21:37:00  <dominictarr>what does the master do?
21:37:01  <chapel>anyways, its interesting and I'd love to see something like that for node
21:37:15  <chapel>tbh, I think its not that important
21:37:22  * shuaibjoined
21:37:23  <dominictarr>seems like master could be masterless
21:37:50  <chapel>I tried to look for any academic or similar setups I could reference, but its all new to me
21:37:50  <dominictarr>I have a module for full text search, that is a start.
21:38:28  <wolfeidau>mbalho: Using a common protocol is handy as you can then crack it open in wireshark if something goes awry
21:38:30  <chapel>I just think the flexible nature of how it is built would be interesting for node servers
21:39:04  <chapel>so Im sure its a gossip protocol, but I don't know the specifics
21:39:19  <wolfeidau>mbalho: And the redis protocol is mature and has been out in the wild for a while
21:40:00  <dominictarr>chapel: you should read the dynamo paper
21:40:13  <chapel>dominictarr: yeah, that and bigtable/mr papers
21:40:36  <dominictarr>that has a really interesting discussion of a masterless replication and sharding based architecture
21:41:39  <chapel>conceptually I could see masterless replicated node servers using leveldb being a very awesome architecture
21:42:10  <dominictarr>workin' on it!
21:42:14  <chapel>:D
21:42:31  <chapel>keep it up, love the streams work as well
21:42:33  <mbalho>i am not the qualified person to hook up leveldb replication with the redis protocol but i happily delegate that task to dominictarr
21:42:53  <chapel>mbalho: +1
21:44:12  <wolfeidau>dominictarr: you had a look at the raft paper?
21:44:18  <dominictarr>mbalho: you need to arrange someone to cook for me so I have more time to code
21:44:29  <dominictarr>wolfeidau: no - I havn't heard of it
21:44:30  * thl0_quit (Remote host closed the connection)
21:45:10  <wolfeidau>dominictarr: http://www.youtube.com/watch?v=YbZ3zDzDnrw and https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf
21:45:45  <dominictarr>cool - will watch while I eat dinner
21:45:58  * chapelis watching
21:46:13  * shuaibquit (Ping timeout: 248 seconds)
21:46:37  <wolfeidau>It is nice to see a lot of different ideas in this area being so openly presented
21:47:09  <wolfeidau>A lot of this stuff used to hide behind the walls of corporations now we all get to hack on it
21:47:24  <chapel>yeah for sure wolfeidau
21:47:36  <isaacs>Raynos: replied
21:47:38  <chapel>very exciting times, increasing tech knowledge for everyone
21:47:55  * shuaibjoined
21:48:02  <Raynos>isaacs: will fix
21:48:07  <isaacs>Raynos: thanks
21:54:38  * shuaibquit (Ping timeout: 256 seconds)
21:55:51  * kevino80quit (Remote host closed the connection)
21:56:52  * shuaibjoined
21:59:26  <juliangruber>dominictarr: does redis-protocol-stream support buffers?
21:59:52  <dominictarr>yes!
22:00:00  <juliangruber>sweet
22:01:28  <dominictarr>what I would do, is just get rid of the createStream message from mux-demux
22:01:37  <juliangruber>dominictarr: I'm doing just this
22:01:41  <juliangruber>so it's just arrays
22:01:42  <dominictarr>(which was an object)
22:01:47  <juliangruber>and redis-protocol-stream can wrap it
22:02:05  <dominictarr>very good!
22:02:06  <juliangruber>I just JSON.stringify the object
22:02:32  * keslajoined
22:06:27  * mikealquit (Quit: Leaving.)
22:06:48  * keslaquit (Ping timeout: 245 seconds)
22:08:16  <Raynos>isaacs: I may have to patch your redis.conf file :/
22:10:02  <isaacs>Raynos: k
22:10:10  <isaacs>Raynos: oh, yeah, i think there's a config option that changed recently or something?
22:10:22  <Raynos>redis removed vm
22:10:22  <isaacs>Raynos: someone sent me a patch for npm-www for something or other
22:10:24  <isaacs>don't remember what
22:10:24  <isaacs>right
22:10:25  <Raynos>and they changed hash thing
22:10:25  <isaacs>that
22:10:39  <Raynos>http://redis.io/topics/memory-optimization
22:10:45  <Raynos>also different names for 2.6 and < 2.6 >_<
22:10:47  <Raynos>bullshit
22:12:17  <juliangruber>dominictarr: does redis-protocol-stream handle arrays in arrays?
22:13:07  <dominictarr>no, it can only be an array on buffers|strings
22:13:12  <juliangruber>ok
22:13:46  <juliangruber>I fixed mux-demux's new event
22:13:51  <juliangruber>now rpc-stream
22:14:07  <juliangruber>we said [id, method, args...], right?
22:14:25  <juliangruber>atm it is [method, [arg,...], id]
22:19:10  <juliangruber>[arg..., method, id] is better
22:19:23  * yorickquit (Remote host closed the connection)
22:20:21  * wolfeidauquit (Remote host closed the connection)
22:21:42  * dominictarrquit (Ping timeout: 245 seconds)
22:30:27  * dominictarrjoined
22:30:36  <Raynos>isaacs: how do I squash things?
22:33:11  <isaacs>git remote add isaacs git://github.com/isaacs/redsess; git fetch -a isaacs; git rebase -i isaacs/master
22:33:19  * tmcwquit (Remote host closed the connection)
22:33:25  <isaacs>Raynos: then in the editor, you set the comits to `s` like it says to in the comment
22:33:30  <isaacs>Raynos: all but the first one
22:33:46  <isaacs>Raynos: or just skip the squash, and only do the rebase
22:34:07  <Raynos>if I reorder the lines
22:34:10  <Raynos>does hell break lose?
22:34:15  <isaacs>Raynos: Best to have one commit forthe cookie-options stuff, and one for the redis conf changes
22:34:21  <isaacs>Raynos: no, reordering just reorders the commits
22:34:26  <isaacs>Raynos: so... maybe.
22:34:35  <isaacs>Raynos: you might get back-and-forth conflicts.
22:34:41  <isaacs>Raynos: but usually easy enough to resolve.
22:35:12  <Raynos>mother of god
22:35:17  <Raynos>ill see what happens
22:35:20  <Raynos>i think itll just be worse
22:38:25  * wolfeidaujoined
22:42:24  <Raynos>Yeah its worse :D
22:42:44  <Raynos>this is why I dont use rebase
22:45:08  * shuaibquit (Ping timeout: 245 seconds)
22:46:24  * shuaibjoined
22:51:52  <chapel>wolfeidau: watched the raft video, not too bad (though youtube kept messing up lol)
22:52:55  * shuaibquit (Ping timeout: 252 seconds)
22:54:24  * shuaibjoined
22:54:46  * thl0joined
22:56:32  <Raynos>isaaacs: https://github.com/isaacs/redsess/pull/5 it will merge cleanly but I ruined the rebase
22:58:46  * shuaibquit (Ping timeout: 252 seconds)
22:59:04  <isaacs>Raynos: that's kind of awful.
22:59:09  <isaacs>r
22:59:12  <isaacs>Raynos: you cna fix it.
22:59:21  <Raynos>I'll try again
22:59:33  <isaacs>Raynos: `git rebase -i 010aac2`
22:59:48  * thl0quit (Ping timeout: 268 seconds)
22:59:57  <chapel>heh
23:00:16  <chapel><isaacs> I am disappoint. You can do better.
23:00:33  <chapel>:)
23:00:47  <isaacs>Raynos: delete the ones that are by me, since those are already there
23:00:57  <isaacs>ok, gotta run
23:00:59  <Raynos>Oh!
23:01:12  <isaacs>heading to a metup in paloalto
23:01:31  * isaacs&
23:01:59  * shuaibjoined
23:06:28  * shuaibquit (Ping timeout: 252 seconds)
23:08:56  * shuaibjoined
23:10:53  <juliangruber>dominictarr: I made mux-demux and rpc-stream use only flat arrays, will create pull requests as soon as it's working with multilevel
23:12:10  <defunctzombie>welp, so much for me hosting tryme and balabolka on nodejitsu
23:12:21  <Raynos>isaacs: ok first time rebase did want I wanted
23:12:49  * fallsemoquit (Quit: Leaving.)
23:13:26  * shuaibquit (Ping timeout: 252 seconds)
23:14:33  <dominictarr>cool - going to bed will merge in the morning!
23:14:40  * dominictarrquit (Quit: dominictarr)
23:15:21  * stagasquit (Quit: ChatZilla 0.9.90-rdmsoft [XULRunner])
23:15:24  * st_lukequit (Remote host closed the connection)
23:15:57  * shuaibjoined
23:16:49  <chapel>wolfeidau: looks like raft is more C than A in cap, where as dynamo (and similar) is more A than C
23:18:18  <wolfeidau>chapel: yeah I am not sure how it will behave, it was my understanding it is probably going to faster for small clusters of servers
23:18:36  <jesusabdullah>defunctzombie: why come?
23:18:54  <chapel>wolfeidau: well not sure about faster, since it is built to not respond unless a log entry is committed
23:18:55  <defunctzombie>jesusabdullah: ?
23:19:09  <defunctzombie>jesusabdullah: http://blog.nodejitsu.com/changes-in-nodejitsu-public-cloud
23:19:29  <wolfeidau>chapel: the reduction in gossip is what i am referring to speed wise
23:19:33  <chapel>so consistency is the first priority which would make the worst case speed slower than something like dynamo
23:19:37  <chapel>ah
23:19:42  <jesusabdullah>defunctzombie: ah, can't afford?
23:19:46  <defunctzombie>jesusabdullah: I was on the 3 drone plan at 9 USD monthly iirc or something like that
23:19:55  <defunctzombie>jesusabdullah: not worth it honestly
23:20:06  <defunctzombie>jesusabdullah: I can just do digitalocean for 5 USD month
23:20:07  <jesusabdullah>defunctzombie: yeah, I'm kinda surprised they never got 64mb machines
23:20:08  * mcollinaquit (Quit: mcollina)
23:20:12  <jesusabdullah>yeah defunctzombie
23:20:19  <chapel>wolfeidau: yeah, the node to node gossip is less in general since only one master will be talking
23:20:24  * shuaibquit (Ping timeout: 252 seconds)
23:20:38  <defunctzombie>jesusabdullah: I don't really care about "managing" my own server since once I set it up I basically leave it and it works
23:21:03  <defunctzombie>jesusabdullah: and with substack's git deployment stuff, I can probably make it even easier than what I do
23:22:56  * shuaibjoined
23:27:22  * shuaibquit (Ping timeout: 252 seconds)
23:28:25  * shuaibjoined
23:29:55  * jcrugzzquit (Ping timeout: 264 seconds)
23:30:52  <jesusabdullah>defunctzombie: yeah, I didn't use nodejitsu after I parted ways with them
23:35:08  <chilts>defunctzombie: I started a DigitalOcean server yesterday (by coincidence), and today confirms that I'll be moving stuff off Nodejitsu over to there
23:41:09  <mbalho>paul_irish: can you encode/save/export video in JS? either through emscripten or webm or <video> or webgl <canvas> or soemthing?
23:51:02  * mikealjoined