00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:00:52  * Domenic__joined
00:03:50  * thatguydan_joined
00:04:09  * thatguydanquit (Ping timeout: 245 seconds)
00:04:10  * thatguydan_changed nick to thatguydan
00:04:17  * fallsemoquit (Quit: Leaving.)
00:09:19  * shamaquit (Remote host closed the connection)
00:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 27]
00:26:12  * thl0joined
00:29:32  <jez0990>mikolalysenko: cool
00:29:40  <jez0990>how about Skip Lists, would they work?
00:33:46  * Domenic_joined
00:35:39  <jez0990>actually, I realise why that wouldn't be relevant to your problem space now :)
00:36:13  * Benviequit (Ping timeout: 240 seconds)
00:38:08  * Domenic_quit (Ping timeout: 255 seconds)
00:43:36  * Benviejoined
00:44:36  * ITproquit (Ping timeout: 245 seconds)
00:45:22  * ITprojoined
00:50:55  * dguttmanquit (Quit: dguttman)
00:54:13  * ITproquit (Ping timeout: 240 seconds)
00:57:52  <mikolalysenko>jez0990: skip list would be fine too, providing it properly implements lower/upper bounds
00:58:03  <mikolalysenko>and successor/predecessor queries
00:58:50  <mikolalysenko>though skip lists are usually much less efficient than red black or avl trees
00:59:57  <mikolalysenko>probably the optimal solution would be to implement cache oblivious b-trees
01:00:21  <mikolalysenko>which are sort of the ultimate ordered sequence data structure (as of today's understanding)
01:01:14  <mikolalysenko>though implementing them properly in javascript would be very difficult, at least until es6 hits and we get binary data types
01:21:42  <rowbit>Hourly usage stats: [developer: 6, free: 13]
01:23:17  * ehdjoined
01:23:30  * Domenic_joined
01:23:35  * ryanseddonjoined
01:23:41  * sveisveijoined
01:32:10  * nicholasfquit (Read error: Connection reset by peer)
01:32:29  * nicholasfjoined
01:43:46  * jiang_plusjoined
01:46:14  * stlsaintquit (Quit: Lost terminal)
01:50:15  <substack>any mistakes? http://www.reddit.com/r/javascript/comments/1c5q45/looking_for_a_more_vanilla_oriented_alternative/c9dgv5q
01:50:43  <substack>turning this into a blog post
01:59:29  * fotoveritejoined
02:08:31  <substack>http://substack.net/weaning_yourself_off_jquery
02:08:51  * dguttmanjoined
02:09:20  <substack>POW
02:13:29  <thl0>Did anyone ever see this on Safari ipad? Trying to access object from destroyed plug-in
02:13:52  <thl0>only thing that keeps scriptie-talkie work in that case
02:14:08  <thl0>works now in Firefox, desktop safari, IE and ipad chrome
02:14:32  <thl0>this problem is the last one -- so any help is greatly appreciated ;)
02:17:55  <Raynos>Domenic__: sorry the internet is a dick :(
02:21:42  <rowbit>Daily usage stats: [developer: 54, free: 863]
02:21:43  <rowbit>Hourly usage stats: [developer: 0, free: 18]
02:24:10  * jcrugzzquit (Ping timeout: 258 seconds)
02:24:36  <thl0>damn, chrome and safari on ipad have same report same useragent
02:25:22  <thl0>so I wouldn't even know when to downgrade - f-it safari ipad users will see an error message then
02:28:12  * fallsemojoined
02:29:02  * tmcwjoined
02:30:22  * ins0mniajoined
02:41:43  <substack>Raynos: [].slice.call(arrayThing) :p
02:41:52  <substack>if it quacks like an array...
02:42:54  <Raynos>false positives!
02:43:53  <substack>oh no my gittip is crashing https://www.gittip.com/substack/
02:43:57  <substack>was at 30.50 before
02:44:37  * tmcwquit (Remote host closed the connection)
02:47:47  * nicholasfquit (Ping timeout: 252 seconds)
02:48:16  <mint_xian>substack: probably shouldn't tie your gittip to bitcoins. Too volatile.
02:50:32  <Raynos>substack: someone was like "fuck im giving substack 24$ every month? shit"
02:51:10  <thl0>substack: maybe someone from the functional camp saw those Promises discussions and mistook you for Domenic_
02:52:06  <thl0>anyhoo, http://thlorenz.github.io/scriptie-talkie/ now alive and well in Firefox, Safari, IE9 and of course still in chrome
02:53:00  <thl0>substack: btw is it feasible/relatively easy to somehow make the iframe of the browserify-vm visible?
02:53:21  <thl0>would like to allow dom interactions whose results can be seen
02:56:29  <substack>thl0: it's not really made for that
02:56:59  <thl0>substack: I know :), but as you know, I like hacky things
02:57:32  <thl0>substack: actually dominictarr wanted that feature, I think it is hardly possible, but wanted to see if you prove me wrong there
02:58:16  <Domenic__>no bad, that should be a hidden implementation detail
02:58:26  <substack>yes
02:58:29  <Domenic__>so that one day you could replace vm-browserify with e.g. a pure-js sandboxing implementation
02:58:31  <substack>if you really want to hack at it
02:59:01  <substack>var s = document.querySelector('iframe').style; s.display = 'block'; s.width = 800; s.height = 400
03:01:08  <thl0>substack: thanks, will play with that
03:01:34  <thl0>Domenic__: I agree that in general it's a bad idea, but just for scriptie talkie it could be a neat feature
03:02:00  <thl0>Domenic__: and if later on vm changes then it will just break, but that is my fault at that point
03:04:46  <substack>Raynos: "category theory" is an answer looking for a question
03:05:13  <Raynos>substack: the notion of a functor & monad is useful though
03:05:20  <substack>it's really not
03:05:32  <Raynos>a functor simply says "this thing has a map function that makes sense"
03:05:35  <substack>monads are a really long-winded way of describing statements
03:06:03  <Raynos>it means that you can call `x.map` and it does something sensible whether x is an object, array, optionalValue, promise, stream, whatever
03:06:15  <substack>"functors" in js are just "has a .length" and "works with xs[i]"
03:06:15  * thl0quit (Remote host closed the connection)
03:06:20  <substack>they don't need to be things
03:06:32  <Raynos>that wont work with streams or promises
03:06:37  <Raynos>where as .map would work with those
03:06:38  <substack>whoc ares
03:06:42  <substack>*who cares
03:06:52  <substack>.map is not built for that
03:07:02  <Raynos>[].map is not
03:07:04  <substack>what is the benefit of making .map() work everywhere like that?
03:07:06  * thl0joined
03:07:15  <substack>fundamentally different things should behave differently
03:07:20  <Raynos>because then I can write a single function
03:07:27  <Raynos>well the benefit is polymorphic functions
03:07:33  <Raynos>which dont really work in javascript
03:07:35  <substack>that's not a benefit
03:07:37  <Raynos>but there are benefits!
03:07:43  <substack>then list the actual benefits
03:07:49  <Raynos>ok so for example
03:07:49  <substack>"polymorphic functions" doesn't mean anything to me
03:08:04  <Raynos>http://underscorejs.org/#pluck
03:08:19  <Raynos>pluck makes sense for objects & arrays
03:08:29  <Raynos>but pluck also "makes sense" for streams of JSON !
03:08:36  <Raynos>or streams of objects
03:08:42  <Raynos>it also makes sense for promises
03:08:50  <substack>JSONStream already does that
03:09:04  <Raynos>the idea is
03:09:15  <Raynos>that pluck could work on any input as long as "map" makes logical sense
03:09:17  <substack>stream.pipe(JSONStream.parse([ true, 'name' ])).pipe(through(function (name) { console.log('name=' + name) })
03:09:25  <substack>is already a thing that you can do
03:09:27  <Raynos>which means the author of pluck does not have to enumerate or white list all possible "mappable" things
03:09:43  <substack>but streams are fundamentally different
03:09:44  <Raynos>it means I can use someone's function with my custom types
03:09:48  <Raynos>without having to change their function
03:09:55  <Raynos>why
03:10:02  <Raynos>map(someStream) = anotherStream
03:10:10  <Raynos>that makes logical sense to me
03:10:33  <Raynos>now it would be hard to spec & implement functors in JS
03:10:35  <substack>I don't really get what the utility of this is
03:10:44  <substack>it's not even hard to implement this
03:10:50  <substack>I just don't see the utility
03:11:02  <Raynos>its a functional way of thinking about things
03:11:07  <substack>"functional way"
03:11:08  <Raynos>its the idea that you want a few functions
03:11:12  <Raynos>that work on a lot of data types
03:11:20  <Raynos>in js you tend to have a "single function works on single data type" thing
03:11:24  <substack>why should I care about that?
03:11:26  <Raynos>in OO you have "large hierachy chains"
03:11:32  <substack>like concretely what does that approach get me
03:11:39  * thl0quit (Ping timeout: 245 seconds)
03:11:40  <Raynos>it means i can use pluck
03:11:41  <mbalho>homomorphism
03:11:44  <Raynos>on promises, arrays, objects & streams
03:11:51  <Raynos>it means I dont need pluck, pluckPromise and pluckStream
03:11:53  <Raynos>I can use one function
03:11:55  <Raynos>instead of three
03:11:58  <Raynos>and think less and do more
03:12:10  <substack>but why would you even use pluck
03:12:11  <mbalho>well first you have to understand homomorphism
03:12:13  <Raynos>now obvouisly you can argue its too much magic to make one function work on all 4 of those things
03:12:14  <mbalho>then you can do less
03:12:16  <substack>just use JSONStream.parse()
03:12:17  <mbalho>but the investment up front is higher
03:12:29  <Raynos>substack: JSONStream.parse() doesnt work on arrays
03:12:32  <Raynos>it only works on streams
03:12:35  <substack>so use .map() on arrays
03:12:42  <Raynos>thats the problem
03:12:43  <substack>and use JSONStream.parse() on streams
03:12:45  <substack>done
03:12:48  <Raynos>you have to use either map or JSONStream.parse()
03:12:49  <substack>how is that a problem?
03:12:53  <Raynos>with functors you could use pluck for both
03:13:19  <substack>that benefit seems extremely marginal
03:13:26  * ins0mniaquit (Remote host closed the connection)
03:13:31  <Raynos>its less overhead for "the same idea"
03:13:39  <Raynos>and when you combine it with higher order functions its powerful
03:13:40  <Raynos>BUT
03:13:44  <Raynos>its 100% not idiomatic JS
03:13:49  <substack>I think where a lot of programming goes astray is when it gets too general like this.
03:14:10  <substack>haskell has this problem where you have no idea what's going on because it's too goddamned abstract everywhere
03:14:26  <substack>and c++ and java classes suffer a similar problem of architecture astronautery
03:14:33  <Raynos>that is a good point
03:14:35  <substack>just write really simple stupid specific code
03:14:37  <Raynos>thats a careful balance
03:14:39  <substack>it's much easier to reason about
03:15:12  <substack>and just publish all the hyper-specific tools to npm
03:15:13  <Raynos>gozala had some motiviation ( https://github.com/gozala/method/wiki/Motivation#2-solves-expression-problem )
03:15:14  <Raynos>for this idea
03:15:25  <substack>I don't want programming to be more abstract.
03:15:38  <substack>that just makes it harder to figure out how all the pieces fit together
03:16:03  * ralphtheninjaquit (Ping timeout: 256 seconds)
03:16:05  <substack>and harder to release reusable pieces because they need to worry about coupling to broad external generalizations
03:16:18  <substack>beware of premature generalization
03:16:38  <Raynos>I agree with those points
03:16:39  <Raynos>BUT
03:16:50  <jez0990>but... what if there is a perfect abstraction after all?
03:16:50  <Raynos>under the assumption that generalization IS useful then functors have their place
03:17:27  <substack>use that functors idea on in-memory structures where it belongs
03:17:40  <substack>time-invariant async event streams are too different
03:17:48  <substack>use a better-tailored abstraction like streams for those
03:17:55  * calvinfoquit (Remote host closed the connection)
03:18:11  <substack>Raynos: or what I think you actually want
03:18:21  <substack>is a way to reuse a function in both places
03:18:27  <Raynos>but a stream
03:18:30  <Raynos>is a superset of a functor
03:18:33  <substack>which is NOT the same as imposing a functor abstraction
03:18:43  <substack>it's just a problem of matching up the method signatures
03:19:07  <substack>suppose we have a function namer (obj) { return obj.name }
03:19:24  <substack>array.map(namer) works of course
03:19:50  <substack>so just write a through mapper:
03:20:18  <substack>function streamMap (fn) { return through(function (obj) { this.queue(obj.name) }) }
03:20:28  <substack>now you can stream.pipe(streamMap(namer))
03:21:07  <substack>the benefit that you gave was that the map function should be identical
03:21:08  <substack>there you go
03:21:12  <substack>BUT
03:21:23  <substack>there are actually more complications that you might possibly want
03:21:37  <substack>for instance, async map operations
03:21:42  <rowbit>Hourly usage stats: [developer: 1, free: 28]
03:22:11  <substack>these complications warrant separate abstractions, not a broadening of an over-arching generalization
03:22:24  <substack>because you will just get bogged down in a litany of special-cases
03:23:15  <substack>I think the flaw in addressing the "plucker" problem is that it starts from the wrong end
03:24:04  <Raynos>substack: however
03:24:20  <substack>the function plucking function (obj) { return obj.name } code is what you want to fix in place
03:24:25  <Raynos>what if I want a function namer(functor) { return map(functor, function (o) { return o.name }) }
03:24:28  <substack>NOT the plubming
03:25:01  <substack>Raynos: what is the benefit of writing code that way? It just looks more needlessly complication.
03:25:07  <substack>*complicated
03:25:23  <substack>you ALREADY have a function (o) { return o.name } in there
03:25:41  <substack>I contend that is the only thing you should be forcing module consumers to write
03:25:44  <substack>the rest is just boiler-plate
03:26:28  <substack>http://c2.com/cgi/wiki?PrematureGeneralization
03:27:14  <Raynos>i dont know what the benefit is
03:27:20  <Raynos>its not idiomatic JS
03:27:29  <Raynos>I presume code like that has lots of benefits in clojure, haskell & scala
03:27:43  <Raynos>because i would assume its idiomatic in those languages and enables function composition
03:27:56  <Raynos>especially in languages that are point free or have `.` as a function composition operator
03:29:08  <substack>the reason why haskell, scala, and clojure have this kind of bullshit is because they have a static type system
03:29:28  <substack>a type system that FORCES you to write your code using these kinds of contortions
03:29:34  <substack>it's not something you should actually WANT
03:29:42  <Raynos>i dont have enough experience to be able to tell you whether its useful
03:29:58  * substack<-- written a lot of haskell
03:30:00  <substack>fuck haskell
03:30:30  <substack>function composition is neat but fuck static types
03:30:43  <substack>it's so much yak shaving to make the simplest changes
03:31:13  <Raynos>i like the idea of types for documentation
03:31:19  <Raynos>i dont think I would like them in code
03:31:21  <Raynos>maybe optional types
03:31:34  <substack>I don't like types.
03:31:35  <substack>at all
03:31:39  <substack>ever for anything
03:31:51  <substack>primitives is a much better approach
03:31:54  <substack>like js has
03:32:26  <Raynos>what about ternjs
03:32:26  <substack>once you start doing things like `instanceof` something has gone horribly wrong
03:32:34  <Raynos>http://ternjs.net/
03:32:43  <Raynos>oh manual type checking is stupid
03:32:58  <Raynos>i just think types are cool for understanding, documentation & comments
03:33:04  <Raynos>enforcing types is a pain in the ass
03:33:59  <substack>docs usually already imply the types
03:34:01  <substack>and naming helps
03:34:12  <substack>something called cb or f is a function most probably
03:34:21  <substack>a parameter called str is probably a string
03:34:25  * jcrugzzjoined
03:34:35  <substack>n, i, j, k are all numbers most of the time
03:34:47  <substack>xs is an array
03:35:00  <substack>obj and opts are plain objects
03:35:39  <chilts>x,y,z are also numbers, probably co-ordinates
03:35:47  <chilts>fn is also a function :)
03:35:51  <substack>depends on the context
03:35:58  <substack>it's really easy to imply the type of a thing
03:36:10  <substack>human brains are great at that kind of rapid contextual inference
03:36:12  <chilts>what else would you have fn be?
03:36:28  <Raynos>sure
03:36:29  <substack>x could be an element when it appears next to an xs
03:36:32  <Raynos>but given any function reference
03:36:36  <Raynos>without jumping to its definition
03:36:38  <Raynos>or callign toString
03:36:40  <chilts>true
03:36:41  <Raynos>i cant see arguments
03:36:50  <Raynos>also
03:36:54  <Raynos>I use `source` and `sink` a lot
03:37:00  <Raynos>for streams1 , streams2 & pull streams
03:38:29  <gozala>substack: clojure does not has types
03:38:49  <substack>isn't it jvm based?
03:39:05  <gozala>substack: yes, but it does not has types
03:39:12  <gozala>it has type inference
03:39:22  <gozala>so compiler does all the work
03:39:26  <gozala>you never write types
03:39:41  <gozala>it's like all other lisps
03:40:07  <gozala>it also compiles to JS btw
03:41:18  <gozala>Raynos: I agree with substack in regard that I think functors and monads are doomed
03:41:33  <substack>ug type inference
03:41:34  <gozala>they imply perfect world where everything is designed with them in mind
03:41:34  <Raynos>due to not being useful or due to not idiomatic JS
03:41:41  <gozala>and every one understands them
03:41:59  <substack>I guess if the type inference is entirely automatic that could work
03:42:08  <gozala>The reason of clojure protocols and my port is exactly realisation
03:42:15  <gozala>that you ideal world won't happen
03:42:22  <substack>I hate how in haskell the type inference often can't differentiate the correct types, so you need to annotate the signatures explicitly
03:42:34  <gozala>but if you could imply what specific verb means on specific noun
03:42:48  <gozala>you still can get all the benefits of functional composition
03:43:10  <gozala>substack: inference in clojure is similar to JS
03:43:54  <Raynos>well if I ever have to manually annotate types
03:43:57  <Raynos>to get my code to compile
03:44:00  <Raynos>then ragequit
03:44:07  <Raynos>if types are 100% optional then maybe
03:44:32  <gozala>Raynos: also I don't think clojure really falls into haskell / scala family
03:44:45  <Raynos>its functional :D
03:45:07  <gozala>well in that regard ok
03:45:49  <gozala>Also I think it's hard to see value of abstractions if you've seen it nicely done across the language
03:46:10  <gozala>I don't think anyone succeeded there except clojure
03:46:46  <gozala>there was good post about that recently actually
03:46:47  <gozala>http://programming-puzzler.blogspot.com/2010/08/racket-vs-clojure.html
03:58:50  * jiang_plusquit (Ping timeout: 255 seconds)
04:06:08  * shamajoined
04:21:42  <rowbit>Hourly usage stats: [developer: 1, free: 37]
04:43:24  * rook2pawnquit (Read error: Operation timed out)
04:43:41  * rook2pawnjoined
05:00:27  * AvianFluquit (Read error: Connection reset by peer)
05:00:59  * AvianFlujoined
05:04:04  * jxsonquit (Remote host closed the connection)
05:10:28  * calvinfojoined
05:15:03  * sveisveiquit (Ping timeout: 260 seconds)
05:15:41  <mikolalysenko>towards better binary search trees in javascript: https://github.com/mikolalysenko/bfs-tree-layout
05:15:53  <mikolalysenko>and: https://github.com/mikolalysenko/inorder-tree-layout
05:16:08  <mikolalysenko>next step is to build packed memory arrays
05:16:19  <mikolalysenko>and then a layer on top of them to handle queries
05:16:33  <mikolalysenko>and then it will be cache oblivious b-trees in js!
05:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 44]
05:36:43  * shamaquit (Remote host closed the connection)
05:37:13  * Domenic__quit (Ping timeout: 240 seconds)
05:48:10  <chrisdickinson>i wish there was an equivalent of browserify's "browser" shimming directive for node versions
05:56:54  * fallsemoquit (Quit: Leaving.)
06:09:59  * dguttmanquit (Quit: dguttman)
06:10:28  * saijanai_joined
06:11:38  * saijanai_quit (Excess Flood)
06:20:53  * dguttmanjoined
06:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 27]
06:25:09  * AvianFluquit (Remote host closed the connection)
06:52:38  * dguttmanquit (Quit: dguttman)
07:00:48  * fotoveritequit (Read error: Connection reset by peer)
07:02:29  * stagasjoined
07:02:33  * fotoveritejoined
07:06:45  * fotoveritequit (Read error: Connection reset by peer)
07:07:46  * fotoveritejoined
07:15:05  * sveisveijoined
07:16:08  * Domenic__joined
07:18:12  * fotoveritequit (Ping timeout: 252 seconds)
07:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 14]
07:29:09  * Domenic__quit (Ping timeout: 248 seconds)
07:31:09  * Domenic__joined
08:05:18  * jiang_plusjoined
08:12:53  * defunctzombiechanged nick to defunctzombie_zz
08:21:04  * jibayjoined
08:21:43  <rowbit>Hourly usage stats: [developer: 0, free: 33]
08:26:44  * dominictarrjoined
08:28:07  * jiang_plusquit (Ping timeout: 264 seconds)
08:30:03  * dominictarrquit (Client Quit)
08:44:43  * dominictarrjoined
08:45:49  * thatguydanquit (Quit: thatguydan)
08:51:08  * slaskisjoined
09:14:33  <substack>dominictarr: http://www.youtube.com/watch?v=Kue_gd8DneU
09:14:59  <dominictarr>heh
09:15:10  <substack>something very jarring yet fitting about an academic in a sweater vest talking about new wave and cyberpunk
09:15:25  <dominictarr>yes, totally
09:16:11  <dominictarr>I always love seeing people's home decor in the background of youtube
09:16:50  <dominictarr>"science-fiction, the most important of the fantastic genres"
09:16:58  * fotoveritejoined
09:21:35  * no9joined
09:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 29]
09:39:36  * jibayquit (Quit: Leaving)
09:44:03  * spionjoined
09:50:08  <jesusabdullah>know-your-http is trending on github
09:50:10  <jesusabdullah>XD
09:54:03  <rvagg>jesusabdullah: congrats! top of the list
09:56:01  <jesusabdullah>inorite
09:56:04  <jesusabdullah>sad thing is
09:56:16  <jesusabdullah>it has more stars than our framework :C
09:56:26  <jesusabdullah>but maybe this will make people notice big
09:56:31  <jesusabdullah>WE'LL SEE
09:56:31  <LOUDBOT>OH I WISH I KNEW HIM, HE'S SO COOL
09:56:41  <jesusabdullah>BUT LOUDBOT YOU DO KNOW ME
09:56:41  <LOUDBOT>FIRST OFFENSE IN IA IS LIKE SIX MONTHS OR SOMETHING
09:56:51  <jesusabdullah>yeah probably I mean it's Iowa
10:09:54  * tanepiperquit (Remote host closed the connection)
10:11:03  * tanepiperjoined
10:11:48  <rvagg>I've been saying "Mt.Gox" wrong in my head all this time... http://en.wikipedia.org/wiki/Mtgox#History not sure where this leaves my the voice in my head now
10:19:39  <jesusabdullah>rvagg: interesting! I'm still gonna say it "mount gox" though
10:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 31]
10:36:07  * thl0joined
11:00:40  * ralphtheninjajoined
11:10:32  * fotoveritequit (Quit: fotoverite)
11:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 30]
11:48:27  * yorickjoined
11:56:41  * ralphtheninjaquit (Quit: leaving)
12:08:12  * jan____quit (Changing host)
12:08:12  * jan____joined
12:10:07  * mikolalysenkoquit (Ping timeout: 264 seconds)
12:17:23  * slaskisquit (Ping timeout: 256 seconds)
12:19:28  <rowbit>SubStack, pkrumins: At least 5 people waiting in the queue for free servers! (Waiting: 20)
12:19:36  <pkrumins>chaddap
12:21:13  * slaskisjoined
12:21:42  <rowbit>Hourly usage stats: [developer: 2, free: 37]
12:44:10  <pkrumins>hey guys, another latvian startup asked me if i knew anyone who could do JS development for them. they just raised money and have a team in sf and latvia. they're doing this http://froont.com/
12:44:24  <pkrumins>if interested, i can intro. that's all.
12:55:58  <dominictarr>pkrumins: I know someone who might be right for that
12:56:09  * thatguydanjoined
12:57:33  <dominictarr>I'll see if he's interested
12:57:41  <pkrumins>dominictarr, oh cool!
12:58:37  <dominictarr>pkrumins: it looks like there is lots happening in latvia!
12:59:10  <pkrumins>yes, looks like it.
13:11:46  * thl0quit (Remote host closed the connection)
13:15:09  * ralphtheninjajoined
13:16:41  * nrknjoined
13:17:02  <nrkn>Hi
13:20:24  * AvianFlujoined
13:21:42  <rowbit>Hourly usage stats: [free: 41]
13:23:26  <dominictarr>pkrumins: meet my friend nrkn, he's been working on a pretty similar thing as froont as a side-project
13:23:45  * defunctzombie_zzchanged nick to defunctzombie
13:24:14  <dominictarr>and he's done a variety of interesting js stuff like graph-layout, and compile to js
13:24:16  <nrkn>Hello pkrumins
13:24:38  <nrkn>And horrific js golfing
13:24:54  * fotoveritejoined
13:25:00  * fallsemojoined
13:27:35  * ralphtheninjaquit (Quit: leaving)
13:30:37  <slaskis>pkrumins: the website says sf/helsinki, that would be finland, right?
13:39:15  * thl0joined
13:42:12  * jcrugzzquit (Ping timeout: 264 seconds)
13:42:43  * tmcwjoined
13:44:55  <substack>jesusabdullah: http://www.youtube.com/watch?v=fk6q_Wfihu0
13:57:56  * thl0quit (Read error: Connection reset by peer)
13:58:15  * fallsemoquit (Quit: Leaving.)
13:58:17  * thl0joined
13:58:42  * nrknquit
14:08:22  * jcrugzzjoined
14:16:10  * fotoveritequit (Ping timeout: 252 seconds)
14:16:47  * jcrugzzquit (Ping timeout: 256 seconds)
14:18:44  * fotoveritejoined
14:21:42  <rowbit>Hourly usage stats: [free: 52]
14:22:36  * Domeni___joined
14:23:14  * mikolalysenkojoined
14:23:20  * fotoveritequit (Client Quit)
14:23:49  * stagas_joined
14:24:58  * thl0quit (Remote host closed the connection)
14:26:50  * stagasquit (Ping timeout: 252 seconds)
14:26:55  * stagas_changed nick to stagas
14:28:05  * thl0joined
14:37:46  * yorickquit (Remote host closed the connection)
14:37:57  * fallsemojoined
14:43:25  * thl0quit (Remote host closed the connection)
14:45:01  * thl0joined
14:46:17  * thl0quit (Remote host closed the connection)
14:50:15  * Domeni___quit (Read error: Connection reset by peer)
14:50:57  * Domeni___joined
14:52:50  * Benviequit (Quit: Benvie)
15:02:24  * thl0joined
15:04:26  * thl0quit (Remote host closed the connection)
15:04:50  * Benviejoined
15:06:53  * Benviequit (Client Quit)
15:07:19  * dguttmanjoined
15:07:21  * Benviejoined
15:21:42  <rowbit>Hourly usage stats: [free: 67]
15:28:18  <pkrumins>slaskis: they raised money in helsinki i think
15:28:22  <pkrumins>dominictarr: thanks!
15:28:41  <pkrumins>dominictarr: oh it looks like your friend left, i had irc minimized
15:29:09  <dominictarr>pkrumins: he's probably gone to bed
15:29:19  <pkrumins>slaskis: helsinki, sf, and latvia it should say. as they're in all those places.
15:29:20  <dominictarr>he's in nz, where is it now 3am
15:29:30  <pkrumins>dominictarr: got it! okay, i'll talk with him later
15:41:29  * jcrugzzjoined
15:52:00  * thl0joined
15:52:28  * thl0quit (Remote host closed the connection)
15:55:37  * jibayjoined
15:58:08  * mikolalysenkoquit (Ping timeout: 252 seconds)
16:05:36  * jcrugzzquit (Quit: leaving)
16:07:02  * jcrugzzjoined
16:09:42  * mikolalysenkojoined
16:21:42  <rowbit>Hourly usage stats: [developer: 3, free: 76]
16:24:48  * thatguydanquit (Quit: thatguydan)
16:29:18  * tmcwquit (Remote host closed the connection)
16:33:26  * tilgovijoined
16:34:04  * tmcwjoined
16:47:10  * tmcwquit (Remote host closed the connection)
16:48:00  * thl0joined
16:48:29  * tmcwjoined
16:51:29  * tilgoviquit (Ping timeout: 252 seconds)
16:55:05  * st_lukejoined
16:56:13  * thl0quit (Ping timeout: 240 seconds)
16:56:15  * tilgovijoined
16:57:52  * jxsonjoined
17:01:24  * mikolalysenkoquit (Ping timeout: 264 seconds)
17:01:57  * dominictarrquit (Quit: dominictarr)
17:12:28  * thl0joined
17:15:22  * thl0_joined
17:16:39  * thl0quit (Ping timeout: 245 seconds)
17:17:54  * thl0joined
17:19:09  * thl0_quit (Read error: Connection reset by peer)
17:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 25]
17:23:52  <mbalho>'latvia' doesnt have hipster startup cred yet
17:23:57  <mbalho>tallinn maybe
17:35:07  * thl0quit (Remote host closed the connection)
17:36:22  * thl0joined
17:38:23  * thl0_joined
17:38:42  * thl0quit (Read error: Connection reset by peer)
17:39:22  * spionquit (Ping timeout: 246 seconds)
17:47:32  * coffeecuppart
18:03:29  <pkrumins>mbalho: yes agreed.
18:15:37  * shuaibjoined
18:21:42  <rowbit>Hourly usage stats: [developer: 2, free: 21]
18:30:27  <Domeni___>thl0_: why isn't this throwing errors: http://thlorenz.github.io/scriptie-talkie/?code=%27use%20strict%27%3B%0A%0Avar%20o%20%3D%20Object.create%28{a%20%3A%201}%29%0Ao.a%20%3D%202%3B%0AObject.freeze%28o%29%0Ao.a%20%3D%201%3B%20%0Ao%0A
18:31:09  <thl0_>didn't get the entire link, but I guess you are talking about use strict?
18:31:20  <thl0_>it's because each snippet is evaluated separately
18:31:45  <Domeni___>:(
18:31:47  <thl0_>Domeni___: its on my todo list to inject 'use strict' into each snippet
18:32:56  <thl0_>Domeni___: should be trivial - once I see 'use strict' on top, I'll prefix all future snippets with it before evaluating
18:36:29  * dominictarrjoined
18:36:48  <Domeni___>+1
18:37:41  <thl0_>Domeni___: other problem I discoverd is putting a comment on top - causes code to be listed twice (also on todo list)
18:37:43  * dominictarrquit (Client Quit)
18:38:41  <thl0_>Domeni___: the goal is to get it fairly solid, and finish scriptie-talkie-embed and then do a blog series going through all of the effective JavaScript book's snippets with live scriptie-talkie examples
18:45:50  * dominictarrjoined
18:50:27  * ryan_stevens1joined
19:01:28  * ryan_stevensjoined
19:04:39  * ryan_stevens1quit (Ping timeout: 256 seconds)
19:21:42  <rowbit>Hourly usage stats: [developer: 2, free: 24]
19:28:36  * slaskisquit (Ping timeout: 276 seconds)
19:35:26  * ryan_stevensquit (Quit: Leaving.)
19:38:31  * st_lukequit (Remote host closed the connection)
19:38:38  * ryan_stevensjoined
19:44:08  * ryan_stevensquit (Quit: Leaving.)
20:03:54  * ryan_stevensjoined
20:19:35  <dominictarr>juliangruber: https://github.com/dominictarr/level-manifest
20:19:49  <dominictarr>part 1 of my multilevel PR
20:21:42  <rowbit>Hourly usage stats: [developer: 0, free: 45]
20:22:38  * st_lukejoined
20:27:29  <Raynos>Domenic___: I started thinking more about the Promise<Promise> problem
20:29:15  <dominictarr>Raynos: a typed promise?
20:29:30  <dominictarr>or, a promise that resolves to a promise?
20:29:37  <Raynos>A promise that resolves to a promise
20:29:45  <Raynos>the same issue exists with streams of streams
20:29:51  <Raynos>specifically
20:30:11  <dominictarr>which issue?
20:30:45  <Raynos>monadic behaviour
20:30:58  <Raynos>somethign feels really wrong about being able to construct streams of streams
20:31:03  <Raynos>and even more so about flattening them out
20:31:21  <dominictarr>well, cat does that.
20:31:49  <dominictarr>Raynos: yesterday I wrote a pull-stream you can revert = mark()
20:32:12  <dominictarr>and later you can call rever() and it goes back to the point it was when you called mark()
20:32:28  <Raynos>sounds like timeline :D
20:32:36  <dominictarr>timeline?
20:32:52  <Raynos>var tstream = timeline(stream)
20:32:57  <Raynos>tstream.go(-5)
20:33:15  <Raynos>the ability to offset a stream in the past / future by a certain index
20:33:20  <Raynos>which allows replaying of streaming data
20:33:54  <dominictarr>npm.im/timeline is a different thing
20:33:59  <dominictarr>is this a module?
20:34:02  <Raynos>no
20:34:04  <Domeni___>promises can resolve to promises; they just can't fulfill to promises ;)
20:34:14  <dominictarr>Raynos: I need this for a parser
20:34:24  <dominictarr>writing a streaming parser for regular languages
20:34:31  <FireFly>hrm, what's this about streams of streams?
20:34:33  <Raynos>Domeni___: whats the difference between resolve & fulfill ?
20:35:45  <Domeni___>Raynos: resolve means run the resolution algorithm, which if given a thenable seals the fate of the original promise to follow that other thenable. If given a non-thenable, it just fulfills.
20:36:04  <dominictarr>FireFly: it's just a theoretical possibility that stream scientists speculate about
20:36:21  * fallsemoquit (Quit: Leaving.)
20:36:28  <Raynos>well a stream of streams is a TCP server
20:36:38  <Raynos>dart models a HTTP server as a stream of streams
20:36:45  <dominictarr>oh, really?
20:36:53  <Raynos>anyway if you have a promise that fulfills to a promise or a stream of streams then you have a monad
20:36:59  <Raynos>I am wary of this behaviour
20:37:01  <Raynos>I feel it's bad :(
20:37:07  <Domeni___>indeed
20:37:11  <Raynos>I feel that monads & streams do not fit well
20:37:17  <Raynos>I dont know about monads & promises though
20:37:20  <Domeni___>my personal opinion is that in javascript monads should collapse themselves
20:37:27  <Domeni___>maybe the array example belies that
20:37:37  <Raynos>Domeni___: monads shouldn't collapse themself
20:37:38  <Domeni___>but i think M<M<T>> should be impossible in JS
20:37:42  <st_luke>are there any haskell programmers that build world software?
20:37:48  <Raynos>you should simply state that promises are not monads
20:37:54  * st_lukechanged nick to luk
20:37:55  <Domeni___>M1<M2<T>> is fine, but M1<M1<T>> doesn't seem legit
20:38:01  <Raynos>Domeni___: Array<Array<T>> is fine
20:38:04  <Domeni___>right
20:38:06  <Raynos>thats called a matrix
20:38:18  * lukchanged nick to st_luke
20:38:36  <Domeni___>but arrays aren't great as monads since they can hold values of any type
20:38:38  <dominictarr>what about a promise that resolves to it self?
20:38:42  <dominictarr>npm install catch22
20:38:53  <Raynos>dominictarr: I had that problem
20:39:01  <Raynos>I was trying to write a circular infinitely recursive thing
20:39:04  <Domeni___>dominictarr: a promise fulfilled with itself is actually an exception we need to include in the spec
20:39:06  <Raynos>and I was like "WHY DOESN TI END "
20:39:22  <Domeni___>fulfilled with itself should be allowed as it allows certain use cases like promises for remote objects
20:39:34  <Domeni___>you can't retrieve the value directly since the value is remote
20:43:38  <st_luke>Domeni___: when you work with windows people new to node do you have a link you usually send them for that gitbash thing?
20:44:46  <Domeni___>st_luke: yeah it comes with git for windows, let me find...
20:45:12  <Domeni___>st_luke: http://code.google.com/p/msysgit/downloads/list?q=full+installer+official+git
20:45:21  <st_luke>thanks
20:46:44  <Domeni___>we need a nice error message for git being missing
20:49:03  <st_luke>there's an issue open for that
20:49:22  <CoverSlide>wonderful how it needs msys for git, but doesn't support building with mingw
20:50:04  <st_luke>just be happy any of this stuff works on windows at all :)
20:50:49  <guybrush>isnt there already a git compiled to js? :D
20:51:27  <st_luke>unfortunately, we only raised enough money for `git init`
20:51:39  <guybrush>oh :/
20:51:47  <guybrush>chrisdickinson will fix it
20:52:32  <chrisdickinson>oh yeah, i guess that's one potential application of this js git stuff i've been doing, haha
20:52:35  <chrisdickinson>:D
20:52:37  <chrisdickinson>yay, reasons!
20:52:48  <guybrush>hahaha
20:53:09  <chrisdickinson>unfortunately that means i'll have to test on windows at some point
20:53:10  <CoverSlide>so npm will dep on js-git just like it did node-tar?
20:53:17  <chrisdickinson>potentially
20:53:23  <chrisdickinson>this only really just occurred to me
20:53:24  * CoverSlidestrokes his chin
20:53:35  <CoverSlide>interesting ...
20:54:00  <chrisdickinson>i mean, you wouldn't even have to go through the full git clone ceremony
20:54:22  <chrisdickinson>the bits that spout of objects are already in place, as well as the bits that walk a commit's tree and emit entries
20:54:40  <chrisdickinson>with an adaptor you could probably pipe what's there to `node-tar`
20:54:55  <chrisdickinson>without having to do anything particularly special
20:55:00  <chrisdickinson>which would be, you know, neat
21:06:25  <jesusabdullah>uuugh zazzleeeee
21:06:39  <jesusabdullah>instead of doing the sane thing and using relational database queries to show your store
21:06:47  <jesusabdullah>they use their SEARCH ENGINE
21:07:00  <jesusabdullah>so in order for your store to look right you have to WAIT FOR THE SEARCH ENGINE TO INDEX IT
21:14:43  * yorickjoined
21:17:13  <jez0990>jesusabdullah: yeah that seems to be a common trend in the big ecommerce platforms, I suspect it's because "faceted navigation" would be more difficult without it
21:17:52  <dominictarr>jesusabdullah: use leveldb
21:18:25  <dominictarr>we have continious inverted (full text) indexes
21:19:05  <dominictarr>jesusabdullah: or do you mean wait for google to index it?
21:21:42  <rowbit>Hourly usage stats: [developer: 5, free: 38]
21:22:06  <jez0990>dominictarr: does that work with the level abstraction over indexeddb? ...can I search my scuttlebutts with that, in my browser?
21:22:35  <dominictarr>jez0990: it would. the level abstraction is out of date
21:22:47  <dominictarr>needs to be rewritten to fit leveldown
21:23:12  <dominictarr>if we do an sql polyfill too, then it will work with phonegap too.
21:23:13  <jesusabdullah>dominictarr: I mean, wait for zazzle to index it with whatever the fuck they're using internally (solr? elasticsearch? ihnfi)
21:23:36  <dominictarr>that was what I thought you meant
21:23:59  <jesusabdullah>jez0990: Yeah I mean, I get that. I guess I feel like they should be able to use both
21:24:07  <dominictarr>jesusabdullah: we need more modular businesses that accept pull-requests.
21:24:12  <jesusabdullah>dominictarr: lol yeah
21:24:24  <jesusabdullah>I wonder how hard it is to run a print-on-demand business
21:24:27  <dominictarr>or at least take proper issues!
21:25:06  <dominictarr>you need a printer and some envelopes?
21:26:07  <jesusabdullah>well, a plotter, some poster rolls, some kind of system for automatically dispatching the jobs in a sane way to minimize number of employees...and employees
21:26:10  <jesusabdullah>I guess
21:26:32  <jesusabdullah>biggest thing if you're pumping out that volume, I think, is to not lose track of what needs to happen to which printout
21:27:03  <dominictarr>question should be: how much volume do you need to get a sweet lifestyle
21:27:23  <jesusabdullah>A lot I would assume
21:27:25  <dominictarr>a big part of that is a generic problem
21:27:40  <dominictarr>the job dispatch part
21:28:01  <jesusabdullah>yeah
21:28:46  <jesusabdullah>pandora's trying to convince me to join the army
21:29:49  <dominictarr>listen to spotify instead then
21:31:30  * nicholas_joined
21:32:51  <jesusabdullah>lol
21:32:53  <jesusabdullah>yeah maybe
21:33:00  <jesusabdullah>I don't really care I just think it's funny
21:33:22  <thl0_>jesusabdullah: any feedback on scriptie-talkie - trying to clean up any remaining bugs this weekend
21:34:04  * thl0_changed nick to thl0
21:39:51  <jesusabdullah>thl0: haven't had time to actually try and use it! But this looks sick for debugging
21:39:56  <jesusabdullah>GREAT NEWS EVERYONE https://twitter.com/jesusabdullah/status/322826256162885635
21:40:46  <thl0>jesusabdullah: cool, for debugging you'll most likely wanna use it integrated with replpad (that's coming soon)
21:41:02  <jesusabdullah>replpad, eh? :)
21:41:09  <jesusabdullah>what's that?
21:41:20  <thl0>the web thing is more for simple things and in order to help understanding javascript - great teaching tool
21:41:58  <jesusabdullah>web thing?
21:41:59  <thl0>jesusabdullah: replpad, well: it's that node repl on steroids thing: http://thlorenz.github.io/replpad/
21:42:08  <thl0>scriptie-talkie browser app
21:42:11  <jesusabdullah>neato
21:43:08  <thl0>jesusabdullah: I'm planning to get s-t solid enough so you can embed it on your blog instead of code samples
21:43:26  <thl0>these codesample then would be alive and readers could play with it
21:43:31  <jesusabdullah>that's cool
21:44:11  <thl0>btw the webthing I was talking about: http://thlorenz.github.io/scriptie-talkie/
21:45:09  <jesusabdullah>oh yeah I messed with this last night
21:46:09  <jesusabdullah>man that's cool thl0
21:46:13  <thl0>jesusabdullah: I think it could be useful for linking Javascript samples (i.e. gotchas)
21:46:19  <thl0>thanks
21:46:53  <jesusabdullah>yeah totes
21:47:16  <jesusabdullah>you know what would be cool? Is a widget I can copypasta into my github blog that takes a gist url
21:47:23  <jesusabdullah>and instead of showing the lamesauce "gist" box
21:47:29  <jesusabdullah>it would show this interactive son-of-a-gun
21:47:36  <thl0>well I got something planned for gists too ;)
21:47:55  <thl0>i.e like a chrome extension or bookmarklet that makes it come alive as scriptie-talkie
21:48:30  * thl0is sad there is not enough time
21:48:56  <jesusabdullah>thl0: :(
21:49:07  <jesusabdullah>actually that extension would also be sick
21:49:25  <jesusabdullah>yeah my posters are still trending what of it
21:49:33  <jesusabdullah>I should get these posted to reddit
21:49:58  <thl0>jesusabdullah: I'm working on s-t-embed now that will find any textarea with '.scriptie-talkie' and make it come alive
21:50:29  <jesusabdullah>cool
21:50:56  <thl0>so something similar could be done for gist urls in a github blog
21:51:40  <jesusabdullah>I was thinking something like, <script>walkieTalkieThatGist('https://gist.github.com/12345');</script>
21:52:48  <thl0>jesusabdullah: cool idea, could you file as a enhancement reequest? https://github.com/thlorenz/scriptie-talkie-embed/issues
21:52:55  <thl0>wanna track these ideas ;)
21:56:28  <thl0>jesusabdullah: <script>walkieTalkieThatGist('https://gist.github.com/12345');</script> may not be enough since I'd need to know where to show it in the page
21:56:58  <thl0>how about: <script>walkieTalkieThatGist('https://gist.github.com/12345', attachTo);</script> where attachTo is an html element or 'id'
21:58:25  <thl0>jesusabdullah: or how about <div class='scriptie-talkie-gist' data-url='https://gist.github.com/12345'> (you'd have to include s-t-embed in your page of course)
22:00:58  * mikolalysenkojoined
22:12:41  <jesusabdullah>thl0: more betters
22:12:44  <jesusabdullah>thl0: the latter I mean
22:13:36  <thl0>ok - I'll try that - I assume that I can pull in the gist via a JSONP request?
22:13:39  <Raynos>dominictarr: https://github.com/pufuwozu/fantasy-land in case you've been living under a rock
22:14:03  * AvianFluquit (Read error: Connection reset by peer)
22:14:17  <thl0>otherwise this would depend on a server which I'm trying to avoid
22:14:36  * AvianFlujoined
22:15:32  <jesusabdullah>thl0: I actually don't know D:
22:15:54  <thl0>np - I got the weekend - lets see how far I get with all this
22:16:02  <thl0>thanks for the cool idea though
22:16:41  <jesusabdullah>:3
22:16:48  <jesusabdullah>I'm just saying, I would definitely use that
22:17:01  * Domeni___quit (Remote host closed the connection)
22:17:35  <st_luke>Raynos: is that a troll?
22:17:40  <st_luke>I can't tell if people are serious anymore with that stuff
22:17:58  <Raynos>st_luke: no
22:18:00  <jesusabdullah>probably trollful yet serious
22:18:06  <Raynos>there is a ton of serious collaboration around it
22:18:07  <st_luke>lately it seems like the trend is js people being dicks to each other on the internet
22:18:21  <Raynos>st_luke: the naming of the project is because someone told them "to take their monads back to typed fantasy land"
22:18:58  <jesusabdullah>now pandora's trying to sell me tips for chatting up women
22:19:00  <jesusabdullah>and I'm like
22:19:06  <jesusabdullah>womena ALREADY love talking to me GEEZ
22:19:09  * ryan_stevenspart
22:19:13  <st_luke>can we start differentiating between people who like to argue about abstractions and people who like to write software
22:19:24  * thl0quit (Remote host closed the connection)
22:19:40  <jesusabdullah>XD
22:19:44  <jesusabdullah>st_luke++
22:20:30  <st_luke>jesusabdullah: you used my old twitter name
22:20:32  <st_luke>the new one is @luk
22:21:23  <dominictarr>Raynos: it would be nice if they provided some examples of why-i-should-care or implemented something cool with it.
22:21:42  <rowbit>Hourly usage stats: [developer: 1, free: 49]
22:22:04  <jesusabdullah>you have a new twitter name??
22:22:05  <jesusabdullah>wat
22:22:09  <Raynos>dominictarr: agreed https://github.com/pufuwozu/fantasy-land/issues/3
22:22:17  <st_luke>jesusabdullah: yea got it changed, 3 letters ftw
22:22:24  <jesusabdullah>huh!
22:22:33  <dominictarr>st_luke:
22:22:57  <dominictarr>I'm all for crazy abstractions, but the ultimate test is to build something cool with it
22:24:09  <dominictarr>Raynos: but I do like how small the documentation is
22:24:10  <st_luke>dominictarr: im not for or against crazy abstractions
22:24:32  <dominictarr>that is an even better position
22:26:49  <st_luke>you have to consider the cost/benefit of the abstraction to you and the people you're working with, and your program
22:27:20  <st_luke>however the argument I end up seeing is about the cost of using the abstraction for other people and other peoples' software teams
22:28:27  * no9quit (Remote host closed the connection)
22:35:16  <dominictarr>and abstractions are something that usually only pay off in the longer term
22:35:59  <dominictarr>still waiting for someone to show me what a monad is useful for in practice.
22:36:34  <jesusabdullah>lol
22:36:44  <jesusabdullah>idk man, I just write things
22:37:08  <jesusabdullah>I need someone to write a monad in javascript without using types jargon
22:37:44  <jesusabdullah>Oh it's just a functor wiggle -> riggledogg -> ( ronald -> raygun )
22:37:45  <jesusabdullah>suuure
22:38:18  <dominictarr>jesusabdullah: I think I've figured out what monads are
22:38:42  <dominictarr>so, budhist monks arn't allowed to touch money, because it's evil
22:39:17  <dominictarr>so when they go down to the village in the morning to receive rice from the villagers
22:40:14  <dominictarr>they have a jar, so that if any villager doesn't have rice, and wants to give money, then they can put the money in the jar, instead of touching it
22:40:24  <dominictarr>which would defile their holyness
22:40:40  <jesusabdullah>hmmmmm
22:40:47  <dominictarr>THEN, they have these non-holy assistant monks
22:41:00  <jesusabdullah>I like this story, go on
22:41:04  <Raynos>dominictarr: they mentioned that both optional values & promises are monads
22:41:15  <Raynos>and that you can design your functions to take promises for production & optional values for tests
22:41:18  <dominictarr>so, when something needs to be brought, they can give the money-jar to the assistants
22:41:25  <Raynos>so in my head its about aggressive polymorphic functions
22:41:32  <jesusabdullah>see that's another word we don't need
22:41:40  <jesusabdullah>;)
22:41:58  <dominictarr>so, pretty much, the monks can go around pretending that they don't ever touch money
22:42:00  <jesusabdullah>function (bro, honestly) {}
22:42:12  * cianomaidinjoined
22:42:23  <jesusabdullah>dominictarr: Now all you have to do is write some javascript simulating monks, jars and assistants
22:42:29  <jesusabdullah>dominictarr: and you have a great blog post
22:42:56  <jesusabdullah>dominictarr: I'd retweet the shit out of that especially if you have sketches of monks and jars and assistants, or at least images from like avatar or bleach or something
22:43:25  <jesusabdullah>his monadic holiness
22:43:48  <dominictarr>hmm, incidentially, when accepting donations the monks never say "thank you" because it is the MONK who is giving the favor by allowing the villager to improve their karma!
22:43:57  <dominictarr>jesusabdullah: maybe tomorrow!
22:52:34  <jesusabdullah>nice
22:52:44  <jesusabdullah>http://www.reddit.com/r/programming/comments/1c8k48/know_your_http_a_series_of_a0sized_posters_about/ Upvote, comment, whichever you like
22:54:45  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
22:54:45  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
22:54:53  <yorick>whoa
22:55:49  <jesusabdullah>sup yorick
22:55:54  <jesusabdullah>?
22:56:05  <jesusabdullah>dominictarr: yes ^__^
22:57:28  <dominictarr>jesusabdullah: nice one
22:57:50  <yorick>jesusabdullah: not much, not really proud of my university, we had a computer exam but they had 3 bugs so they sent us home to do it from home, and then just cancelled it completely :/
22:57:58  <yorick>yes, good computer sciencing
22:58:15  <jesusabdullah>lulz
22:58:20  <jesusabdullah>very good yorick
22:58:26  <jesusabdullah>yorick: extra credit for bugfixes? ;)
22:58:38  <yorick>jesusabdullah: no, they were just stupid and hadn't tested it
22:58:46  <jesusabdullah>yeah but I mean
22:58:50  <jesusabdullah>now that the cat's out of the bag
22:58:58  <jesusabdullah>they should offer extra credit for bugfixes
22:59:01  <yorick>jesusabdullah: they had bugs in their exam code not in the code they gave us, so the exam didn't work at all
22:59:09  <yorick>also in their firewall rules so nobody could login
22:59:37  <yorick>also in their login rules so that after 3 failed passwords attempts nobody of the 150 people taking the exam could login
23:00:19  <jesusabdullah>yorick: right so no access to the sauce?
23:00:25  <jesusabdullah>ugh what is this The Enterprise?
23:00:30  <jesusabdullah>noobs :(
23:00:37  <yorick>jesusabdullah: no
23:03:22  <dominictarr>yorick: ask for your money back!
23:03:39  <yorick>well I probably won't continue it
23:03:57  <yorick>so I'll have one year of university education, that's 3 years work experience on a H1B right :P
23:07:20  <substack>Raynos: https://twitter.com/substack/status/322847990832324608
23:12:48  * cianomaidinquit (Quit: cianomaidin)
23:16:26  <Raynos>whats a good browser based example
23:16:29  <Raynos>of an event that emits streams
23:16:37  <Raynos>WEBRTC!
23:17:25  * mikolalysenkoquit (Ping timeout: 248 seconds)
23:18:45  <substack>fuck github ruined their pull request ui
23:21:42  <rowbit>Hourly usage stats: [developer: 7, free: 17]
23:25:00  * stagasquit (Read error: Connection reset by peer)
23:29:48  * thl0joined
23:34:29  * thl0quit (Ping timeout: 248 seconds)
23:42:35  * yorickquit (Read error: Connection reset by peer)
23:54:57  <isaacs>substack: you don't just copy the url and do `curl <paste>.patch | git am` to apply pull reqs?
23:55:32  <isaacs>substack: i bet you could write a module that does this in like 10 minutes.
23:55:43  <isaacs>substack: and never see the github pr ui ever again
23:55:44  <py1hon>You must bring us...
23:55:46  <py1hon>A SHRUBBERY
23:55:46  <LOUDBOT>FOR EVERY COMPLEX PROBLEM, THERE IS A SOLUTION THAT IS SIMPLE, NEAT AND WRONG
23:55:55  <substack>I hate patchfiles
23:56:08  <isaacs>substack: well, but you don't actually see any patch file, you just pipe to git am
23:56:13  <substack>ok didn't know about this .patch thing
23:56:15  <substack>that is very handy
23:56:30  <py1hon>|git am from mutt
23:56:32  <isaacs>substack: do you actually like those absurd merge commit fetish approach that the green button causes?
23:56:39  <isaacs>substack: i can't stand that
23:56:42  <substack>no I hate that
23:56:48  <isaacs>clicking the green button in node = you lose your commit bit.
23:57:14  <py1hon>substack: what's haps?
23:57:24  <jesusabdullah>sup py1hon
23:57:28  <substack>py1hon: oh nothing, just github fucking up their ui again
23:57:33  <py1hon>sup jesusabdullah
23:57:45  <jesusabdullah>one of my projects is trending on github :3
23:57:47  * defunctzombiechanged nick to defunctzombie_zz
23:58:00  <dominictarr>substack: they have too many employees, but not enough problems
23:58:14  <substack>dominictarr: yes exactly
23:58:18  <dominictarr>so fix stuff that works fine
23:58:21  <py1hon>jesusabdullah: bcache has been getting more users since it finally went into linux-next. and I've been getting actual patches :D
23:58:21  <substack>same with google, yahoo, microsoft
23:58:48  <dominictarr>substack: hey, microsoft is pretty good at not fixing things!
23:59:14  <substack>isaacs: oh for fucks sake, git is warning me about whitespace "errors"
23:59:17  <substack>what the fucking fuck
23:59:32  <py1hon>that's configurable...
23:59:34  <substack>I never ever want to be "warned" about that ever
23:59:35  <jesusabdullah>py1hon: word
23:59:36  <isaacs>substack: yeah, you can turn that off in git.
23:59:39  <substack>why would that ever be turned on
23:59:44  <isaacs>substack: personally? i like it.
23:59:45  <jesusabdullah>because linus torvalds
23:59:52  <isaacs>because i think that linus is right on this point.
23:59:54  <substack>that is so out of scope