00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:02  * CryptoQuickquit (Client Quit)
00:00:08  * ircretaryjoined
00:05:50  * evboguequit
00:23:15  * thatguydanquit (Read error: Connection reset by peer)
00:29:04  * thatguydanjoined
00:34:54  * thatguydanquit (Read error: Connection reset by peer)
00:35:18  * thatguydanjoined
00:39:46  * thatguydan_joined
00:40:47  * thatguydanquit (Ping timeout: 260 seconds)
00:40:48  * thatguydan_changed nick to thatguydan
00:42:30  * dguttmanjoined
00:43:54  * yorickquit (Remote host closed the connection)
00:50:22  * timoxleyquit (Quit: Computer has gone to sleep.)
00:53:26  * dguttmanquit (Quit: dguttman)
00:57:37  * jxsonquit (Remote host closed the connection)
00:58:49  * dguttmanjoined
01:01:14  * mikealjoined
01:01:34  * dguttmanquit (Client Quit)
01:09:25  * timoxleyjoined
01:27:24  * marcello3djoined
01:28:29  * fallsemoquit (Quit: Leaving.)
01:29:03  * CryptoQuickjoined
01:32:59  * mikealquit (Quit: Leaving.)
01:39:41  * thatguydanquit (Quit: thatguydan)
01:42:03  * rolnaabaquit (Read error: Connection reset by peer)
01:48:01  * CryptoQuickquit (Read error: Connection reset by peer)
01:48:20  * CryptoQuickjoined
01:53:10  * CryptoQuickquit (Client Quit)
01:59:56  * CryptoQuickjoined
02:00:28  * thl0joined
02:05:54  <jesusabdullah>Nexxy: sup bro
02:08:35  <jesusabdullah>Nexxy: <3
02:09:01  * evboguejoined
02:09:01  * evboguequit (Client Quit)
02:09:25  <Raynos>are promises actually a good idea?
02:09:27  <Raynos>They might be
02:12:49  <st_luke>Raynos: maybe in certain cases
02:13:15  <st_luke>HEY LOUDBOT
02:13:15  <LOUDBOT>GIVE ME YOUR FUNNY BONE! I WANT TO SEE IF I CAN REMOVE ALL OF THE HUMOROUS-JUICE OUT OF IT!
02:13:20  * st_lukequit (Remote host closed the connection)
02:13:22  <Raynos>Well the question is thunks or CPS
02:14:01  <Raynos>substack: we should have a haskell bot that kicks me out of #stackvm every time I mention a haskell word
02:14:16  <jesusabdullah>haskles
02:15:13  <substack>Raynos: it looks like promises make it harder to factor out components as separate modules
02:15:24  <Raynos>why so?
02:15:29  <substack>because they introduce coupling on the promise api
02:15:37  <Raynos>lets pretend that instead of callbacks we had promises
02:15:43  <Raynos>they are isomorphic to an extend
02:15:57  <substack>what does that mean?
02:16:03  <substack>oh I see in context it makes sense
02:16:07  <substack>except it's false
02:16:15  <substack>you need callbacks to implement promises
02:16:46  <jesusabdullah>pretend we're working with a language that isn't bullshit but implements promises as a core language construct
02:17:13  <substack>jesusabdullah: but I've never even seen a language with some core foundational concept called a "promise"!
02:17:20  <substack>makes it hard to imagine
02:17:22  <jesusabdullah>PRETEND FOR FIVE MINUTES
02:17:23  <LOUDBOT>THE BONER IMPRESSION WILL BE A REAL CONVERSATION STARTER
02:17:28  <substack>I guess generators are basically that
02:17:37  <substack>Raynos: maybe you just want generators
02:17:53  <Raynos>substack: lol true xd
02:18:11  <substack>in which case
02:18:17  <substack>browserify -t es6ify
02:18:27  <substack>( no idea if that actually has generators )
02:18:34  <substack>no idea what the syntax even is
02:18:41  <Raynos>i dont think es6ify can have generators
02:18:42  <jesusabdullah>I think es6 might?
02:18:57  <jesusabdullah>due to python fans in tc-riggledogg
02:19:22  <jesusabdullah>part of me really wants to like python :(
02:19:39  <substack>jesusabdullah: they didn't get their package-management act together fast enough
02:19:43  <substack>that ship has sailed
02:19:46  <substack>forever doomed now
02:19:53  <substack>the hollow husk of a platform runtime
02:20:05  <jesusabdullah>yeah well
02:20:18  <jesusabdullah>I've seen worse tooling I guess
02:20:22  <jesusabdullah>not that this is an excuse
02:22:59  * tim_smart|awayquit (Ping timeout: 246 seconds)
02:25:04  * tim_smart|awayjoined
02:25:06  * tim_smart|awaychanged nick to tim_smart
02:37:06  * CryptoQuickquit (Quit: CryptoQuick)
02:37:28  <substack>Raynos: nevermind, generators seem like a syntax-level event-emitter
02:37:37  <substack>except it's less flexible because it's in syntax
02:37:47  <Raynos>really?
02:38:36  <substack>oh I guess they *do* stop until the consumer calls .next() at least
02:38:58  <substack>not really sure how that fits into being async
02:39:03  * jibayquit (Quit: Leaving)
02:41:54  * marcello3dquit (Remote host closed the connection)
02:48:18  * wolfeida_joined
02:50:13  <Raynos>im not sure either
02:50:18  <Raynos>I think it fits into coroutines xd
02:50:42  * dools_joined
02:52:58  <Nexxy>lol jesusabdullah
02:53:09  <Nexxy><3
02:55:58  * tim_smartquit (*.net *.split)
02:55:59  * ins0mniaquit (*.net *.split)
02:56:00  * wolfeidauquit (*.net *.split)
02:56:01  * doolsquit (*.net *.split)
02:57:38  * jcrugzzquit (Ping timeout: 255 seconds)
02:58:26  <thl0>Raynos: substack - hackety hack complete: https://github.com/thlorenz/proxyquireify/blob/master/adapt-prelude.js
02:58:34  <thl0>this works now as I wanted
02:59:03  <jesusabdullah>Nexxy: wat ur up 2 NEway?
02:59:24  <jesusabdullah>almost as good as baja blast + gin: baja blast + patron silver
02:59:34  <jesusabdullah>I'm calling the former a "baja blitz" and the latter a "taco hell"
03:00:08  * tim_smartjoined
03:03:17  <Nexxy>jesusabdullah, just helped ship the new ninja blocks client
03:03:29  <Nexxy>'tis now running in several hundred homes across teh globe
03:03:50  <jesusabdullah>ninja blocks eh? only vaguely familiar with it at best
03:03:55  <Nexxy>a lot of it is my code so I'm pretty happy, it's the first time having something I wrote get shipped out like this
03:03:58  <jesusabdullah>but knowing you're involved makes me much more interested in it!!
03:04:10  <Nexxy>it's pretty sweet in my completely and totally unbaised opinion
03:04:12  <jesusabdullah>that's awesome nexxy
03:04:17  <jesusabdullah>link?
03:04:23  <Nexxy>http://github.com/ninjablocks/client
03:04:37  <Nexxy>we need to work on documentation
03:05:38  <jesusabdullah>hmmmm
03:05:54  <jesusabdullah>maybe I should use ninjablocks to add bang-on bang-off to the apartment's heater
03:06:16  <Nexxy>yep!
03:06:27  <Nexxy>you can run the client on a raspberry Pi
03:06:29  <jesusabdullah>I see it has temp sensors, all I need is a relay unit
03:06:37  <Nexxy>yeah! you can make your own
03:06:40  <jesusabdullah>nice
03:06:46  <Nexxy>or you can buy a relay breakout
03:06:48  <Nexxy>from us
03:06:55  <jesusabdullah>I kinda like this idea
03:07:15  <jesusabdullah>will research moar
03:07:24  <Nexxy>yeah it's a lot of fun
03:07:26  <Nexxy>+ super useful
03:07:38  <Nexxy>I've got the whole house online with wireless motion detectors
03:07:39  <Nexxy>and door sensors
03:13:28  <jesusabdullah>very nice
03:14:23  <jesusabdullah>hmm
03:14:52  <jesusabdullah>ninja block + http://ninjablocks.com/collections/actuators/products/remote-control-socket-set-usa-socket-type + http://ninjablocks.com/collections/sensors/products/temperature-and-humidity-sensor + heater + ??!?! = pretty much what I need
03:19:12  * jcrugzzjoined
03:24:13  * thl0quit (Remote host closed the connection)
03:41:26  <Nexxy>jesusabdullah, yep!
03:41:44  <Nexxy>I still can't believe the pricing on that stuff
03:41:46  <Nexxy>it's so inexpensive
04:23:09  <substack>better go get tacos before it gets past midnight and taco purchases become impossible for another 8+ hours
04:23:40  <substack>I can finish these unit tests and integration work when I get back, as enthralling as those things can be
04:38:09  * tilgoviquit (Remote host closed the connection)
04:47:14  * defunctzombie_zzchanged nick to defunctzombie
04:52:42  * whatupderekquit (Quit: whatupderek)
04:53:35  * whatupderekjoined
04:53:48  * whatupderekquit (Client Quit)
05:16:23  * jcrugzzquit (Ping timeout: 245 seconds)
05:25:27  <jesusabdullah>haha I made up a haiku about you substack and it involved tacos
05:25:32  <jesusabdullah>I may have been feverish
05:28:54  * dguttmanjoined
05:29:03  <jesusabdullah>I don't remember it anymore
05:47:23  <substack>biked down to alameda too
05:47:29  <substack>need to explore down there more
05:47:32  <substack>it's really nearby now
05:54:32  * dguttmanquit (Quit: dguttman)
05:56:36  * stlsaintquit (Quit: Lost terminal)
06:08:47  * defunctzombiechanged nick to defunctzombie_zz
06:10:34  * timoxleyquit (Quit: Computer has gone to sleep.)
06:22:43  * jcrugzzjoined
06:26:48  * jcrugzzquit (Ping timeout: 245 seconds)
06:41:01  * owen1quit (Quit: WeeChat 0.4.0)
06:43:17  * owen1joined
06:45:23  * dominictarrjoined
06:48:36  <substack>dominictarr: things that need to exist: scuttlebutt-fs fuse-powered eventually consistent fs wrapper
06:48:49  <substack>and a bash to js transpiler/evaluator
06:48:58  <substack>so we can run bash scripts in windows and in the browser
06:49:21  <substack>and all the gnu/bsd userland tools too in pure js
06:49:23  <dominictarr>what is fuse?
06:49:40  <substack>it's a linux kernel module for writing file systems in userspace
06:49:42  <dominictarr>substack: ls needs a -r option
06:49:53  * nicholasfquit (Read error: Connection reset by peer)
06:49:54  <substack>so you don't need root to mount a custom fs
06:50:08  <dominictarr>ah
06:50:11  * nicholasfjoined
06:50:30  <dominictarr>so, scuttlebutt-fs would make a shared (replicated?) fs?
06:50:37  <substack>yep!
06:50:41  <dominictarr>because nfs sucks
06:50:47  <substack>that is basically "collaborative editing"
06:50:49  <substack>except awesome
06:50:59  <substack>AND
06:51:06  <substack>if we have a browser-based userland bash shell
06:51:11  <substack>with exterminate for rendering
06:51:26  <substack>then scuttlebutt-fs can use indexdb instead of fuse
06:51:30  <substack>in the browser
06:51:41  <dominictarr>yes, just polyfil the fs
06:52:02  <substack>basically dropbox, but distributed
06:52:08  <substack>and runs in the browser and on the local fs
06:52:11  <chrisdickinson>substack: any idea why the cursor is misaligned in exterminate?
06:52:17  <substack>chrisdickinson: yes
06:52:34  <substack>if you zoom then it gets confused
06:52:45  <substack>some small pixel calculation is off by a tiny amount
06:52:48  <chrisdickinson>hm
06:52:49  * dominictarrpart
06:52:51  <chrisdickinson>it's not zoomed at all
06:52:56  * dominictarrjoined
06:52:59  <dominictarr>http://mywiki.wooledge.org/BashParser
06:53:00  <substack>could be the font you're using
06:53:01  <chrisdickinson>it just gets further and further away from the right place on each newline
06:53:20  <chrisdickinson>just default osx monospace
06:53:40  <substack>dominictarr: another thing I was thinking of, when people want promises or async to structure some sequential operations
06:53:50  <substack>what they probably should actually be using is something like bash
06:53:58  <dominictarr>yeah
06:54:00  <substack>but bash doesn't interface well with js right now
06:54:07  <dominictarr>although, pull-streams work really well also
06:54:36  <substack>well for code that runs some git commands in sequence, makes some directories, moves things around
06:54:42  <substack>bash is just the best way to do that
06:54:57  <substack>node is bad at that but that's fine
06:55:05  <dominictarr>sure
06:55:48  <substack>every "control-flow library" is basically trying to be bash
06:55:55  <substack>but falling very short
06:56:09  <dominictarr>bash has so many qwerks though, to do anything more complicated than just a single command needs reading the documentation
06:56:36  <dominictarr>or searching the web.
06:57:08  <chrisdickinson>substack: have you tried exterminate on osx?
06:57:21  <dominictarr>chrisdickinson: I have, works for me
06:57:25  <chrisdickinson>huh
06:57:26  <chrisdickinson>weird.
06:57:31  <substack>chrisdickinson: I don't have osx
06:57:37  <substack>how could I possibly try it
06:57:48  <chrisdickinson>wasn't aware :)
06:57:51  <dominictarr>will try latest
06:58:14  <dominictarr>works
06:58:18  <substack>it's actually a 0.10 issue a lot of people are running into
06:58:24  <substack>because 0.10 is quirky as fuck as expected
06:58:40  <substack>https://github.com/chjj/pty.js/issues/32
06:58:42  <chrisdickinson>it works but i'm seeing weird cursor alignment issues & xtshow is barfing a bit when i try to show pngs.
06:58:57  <chrisdickinson>i'm on 0.8.22
06:59:07  <substack>oh ok
06:59:16  <substack>that's probably just the fonts acting up
06:59:26  <substack>dominictarr: have you tried the html rendering stuff yet?
06:59:36  <substack>exterminate show page.html
06:59:44  <chrisdickinson>wonder if it's just this version of osx, i'm still on 10.7
06:59:48  <substack>runs page.html in an iframe, inline in your terminal
06:59:55  <substack>you can even pass querystring params
07:00:07  <guybrush>hij1nx: levelweb looks very nice
07:00:09  <substack>and you can show images too
07:02:07  <chrisdickinson>very neat, though i'm getting 500's from the server hosting the iframe
07:02:19  <chrisdickinson>sorry for the bug reports
07:18:51  <dominictarr>substack: yes, seems to work!
07:19:20  <dominictarr>how does exterminate show work? does that send a message to the current exterminate instance/
07:19:22  <dominictarr>?
07:19:37  <substack>it's a special ansi escape sequence
07:19:54  <dominictarr>will that still work with multiple shells open?
07:19:57  <substack>an obscure ansi sequence that was being ignored by tty.js
07:20:03  <substack>so I just use it to send html
07:20:37  <substack>and exterminate show spins up an http server to host static content from
07:20:46  <dominictarr>right. works in the regular terminal too, although the HTML isn't rendered
07:21:52  * mikealjoined
07:21:58  <substack>what's really fun is how you can pass query paramters through the window.location.search
07:22:16  <substack>exterminate show 'page.html?foo=bar&beep=boop'
07:22:36  <substack>var params = require('querystring').parse(window.location.search.slice(1))
07:29:58  <jesusabdullah>ugh this headache is the worst
07:30:06  <substack>drink more coffee
07:31:15  <substack>dominictarr: I want to submit a talk to someplace about this javascript OS idea
07:31:33  <substack>scuttlebutt filesystem, exterminate shell, javascript bash implementation
07:31:47  <substack>and all of it runs in the browser or in node
07:31:52  <mbalho>i wanna do this http://www.youtube.com/watch?v=7-g-SJ-P9Wg
07:32:14  <jesusabdullah>no no more coffee not this time
07:32:15  <rvagg>you can now buy paracetamol tablets in Australia that have 2 cups worth of caffeine in them; apparently some vague suggestion that it can help with pain mitigation. Whatever! I'll take my caffeine in any form.
07:32:35  <jesusabdullah>I already took some ibuprofin
07:32:44  <jesusabdullah>for some reason nobody in my fam will do acetaminophen
07:32:52  <dominictarr>substack: haha. it's like ff os but anarchy
07:33:17  <dominictarr>we also need a gui for npm!
07:33:28  <mbalho>npm.app ftw
07:33:33  <rvagg>get hij1nx onto it, he seems to be doing well with guis atm
07:33:37  <dominictarr>except super fast not like synaptic
07:33:38  <jesusabdullah>substack any progress on making exterminate resizable y/n
07:34:21  <dominictarr>oh, yeah if it looked as good as levelweb even apple would be jelous
07:35:08  <dominictarr>sexy people could use linux then!
07:35:08  <rvagg>then us un-sexy would have to find a new home
07:35:26  <rvagg>Irish Breakfast time!
07:36:19  <jesusabdullah>ohey I figured out why there was a cop car at my house last night
07:36:26  <jesusabdullah>some dipshit accidentally their entire foot with a shotgun
07:36:50  <jesusabdullah>that's such an Alaska thing
07:36:50  <jesusabdullah>drunken gun accidents
07:37:14  <dominictarr>he's gonna be kicking him self for that
07:37:22  <dominictarr>WITH THE OTHER FOOT!
07:37:23  <LOUDBOT>DOES THIS PLACE LOOK LIKE A ZOO?
07:37:32  <jesusabdullah>yeah maybe
07:38:46  <dominictarr>substack: Raynos you guys are totally missing peer-conf! this stuff is totally awesome!
07:40:38  <Raynos>:)
07:41:04  <owen1>dominictarr: any idea if the videos will be available?
07:41:07  <substack>jesusabdullah: anarchy os is a perfect name
07:41:25  <substack>*dominictarr I meant
07:41:30  <dominictarr>owen1: yes they will be, I believe
07:41:39  <dominictarr>anarchy os. I like it
07:41:58  <dominictarr>substack: we've been talking about a peer-to-peer npm
07:41:59  <owen1>sweet!
07:42:14  <substack>rvagg: I noticed that caffeine in coffee form seems much more expensive in australia
07:42:22  <substack>about 2x the prices here in america
07:46:06  <substack>dominictarr: and once the userland part of it gets working well then somebody else can come along and start shipping "boot to anarchy"
07:47:26  <dominictarr>substack: yeah, we could swap out the underlieing distro once it's ready
07:47:54  <dominictarr>plus, we already have the coolest logo ever
07:48:16  <substack>but the main point would be you can run it inside of an existing OS
07:48:21  <substack>or as a standalone
07:48:25  <substack>do whatever the fuck you want
07:48:46  <dominictarr>yeah, even on windows
07:49:13  <substack>this one? https://a248.e.akamai.net/camo.github.com/2148a757410c252ff3f032fa566978b8efbfc63c/687474703a2f2f7374617469632e697a732e6d652f616e61726368792d7461636f636f6e662f616e61726368792d7461636f636f6e662e3030312e706e67
07:49:47  <dominictarr>yup, and variations
07:50:07  <substack>anarchy already has very good branding
07:50:19  <substack>even though nobody owns it
07:50:24  <substack>or has any control of it
07:50:26  <substack>shared culture
08:03:27  * dominictarrquit (Quit: dominictarr)
08:10:12  <rvagg>substack: the caffeine in coffee form in Australia is at least 2x the quality of that found in America, so that's fair
08:10:58  <rvagg>at least 4x when it comes out of my coffee machine!
08:11:04  * rvaggmisses his coffee machine
09:38:19  * dominictarrjoined
09:48:05  * dominictarrquit (Quit: dominictarr)
09:54:31  * dominictarrjoined
10:15:16  * dominictarrquit (Quit: dominictarr)
10:27:42  * ins0mniajoined
10:27:44  * jdiezquit (Changing host)
10:27:44  * jdiezjoined
10:29:07  * calvinfoquit (Ping timeout: 258 seconds)
10:46:08  * calvinfojoined
12:07:03  * Jan____joined
12:07:23  * Jan____quit (Changing host)
12:07:23  * Jan____joined
12:09:49  * Jan____changed nick to jan____
12:47:14  * ITprojoined
12:51:48  * ITproquit (Ping timeout: 245 seconds)
12:53:38  * dominictarrjoined
12:55:17  * dominictarrquit (Client Quit)
12:55:52  * ITprojoined
13:00:27  * ITproquit (Ping timeout: 260 seconds)
13:23:20  * yorickjoined
13:23:20  * yorickquit (Changing host)
13:23:20  * yorickjoined
13:31:47  * marcello3djoined
13:32:08  * marcello3dquit (Read error: Connection reset by peer)
13:32:37  * marcello3djoined
13:36:13  * nicholasfquit (Ping timeout: 240 seconds)
14:15:43  * defunctzombie_zzchanged nick to defunctzombie
14:16:42  * timoxleyjoined
14:19:34  * defunctzombiechanged nick to defunctzombie_zz
14:30:56  * thl0joined
14:51:49  * dguttmanjoined
14:53:21  * dguttmanquit (Client Quit)
14:59:35  * gwenbelljoined
15:14:20  * gwenbellquit (Quit: Computer has gone to sleep.)
15:17:59  * fallsemojoined
15:23:18  * timoxleyquit (Quit: Computer has gone to sleep.)
15:23:40  * marcello3dquit (Remote host closed the connection)
15:24:27  * marcello3djoined
15:28:44  * marcello3dquit (Ping timeout: 246 seconds)
15:48:17  * defunctzombie_zzchanged nick to defunctzombie
16:08:07  * AvianFlujoined
16:09:11  * ins0mniaquit (Ping timeout: 255 seconds)
16:12:06  * AvianFluquit (Remote host closed the connection)
16:27:36  * timoxleyjoined
16:33:12  * dominictarrjoined
16:34:03  * defunctzombiechanged nick to defunctzombie_zz
16:36:08  * dominictarrquit (Client Quit)
16:41:11  * ins0mniajoined
16:41:23  * kenperkinsquit (Ping timeout: 245 seconds)
16:44:41  * mikealquit (Quit: Leaving.)
17:01:33  * thl0quit (Remote host closed the connection)
17:04:52  * ITprojoined
17:16:39  * ins0mniaquit (Ping timeout: 260 seconds)
17:26:59  * jcrugzzjoined
17:30:03  * thl0joined
17:32:28  * thl0quit (Remote host closed the connection)
17:43:20  * marcello3djoined
17:43:58  * defunctzombie_zzchanged nick to defunctzombie
17:47:40  * marcello3dquit (Remote host closed the connection)
17:53:31  * defunctzombiechanged nick to defunctzombie_zz
17:56:01  * jcrugzzquit (Quit: leaving)
17:57:42  * marcello3djoined
18:00:04  * marcello3dquit (Remote host closed the connection)
18:05:51  * pib1948joined
18:10:15  * mikealjoined
18:15:13  * mikealquit (Quit: Leaving.)
18:25:11  * kenperkinsjoined
18:25:39  * kenperkinsquit (Client Quit)
18:25:46  * ITproquit
18:26:10  * ITprojoined
18:27:37  * AvianFlujoined
18:39:31  * thl0joined
18:45:33  * ins0mniajoined
18:53:07  * kenperkinsjoined
18:59:43  <mikolalysenko>a sketch of a pointless rant: https://gist.github.com/mikolalysenko/5277933
19:00:09  <mikolalysenko>not sure if I should go ahead and write this, but I am kind of half tempted to
19:00:21  <mikolalysenko>however I am not sure how much it really would add to the discussion
19:00:39  <mikolalysenko>the idea would be to fill in each of the sections with examples of modules that already solve those problems
19:02:12  * thl0quit (Remote host closed the connection)
19:07:29  * jcrugzzjoined
19:24:12  * stlsaintjoined
19:27:43  * thl0joined
19:46:39  * stlsaintquit (Ping timeout: 245 seconds)
19:47:11  * stlsaintjoined
19:47:12  * stlsaintquit (Changing host)
19:47:12  * stlsaintjoined
19:52:15  * kenperkinsquit (Quit: Computer has gone to sleep.)
19:53:02  * Domenic_joined
19:53:10  * kenperkinsjoined
20:40:32  * fallsemoquit (Quit: Leaving.)
20:42:26  * stlsaintquit (Quit: leaving)
21:05:20  * stlsaintjoined
21:08:36  * fallsemojoined
21:12:18  * kenperkinsquit (Quit: Computer has gone to sleep.)
21:31:48  * mikolalysenkoquit (Disconnected by services)
21:33:42  * mikolalysenkojoined
21:33:44  * ITproquit (Read error: Connection reset by peer)
22:09:00  * thl0quit (Remote host closed the connection)
22:10:47  * thl0joined
22:12:53  <chrisdickinson>mikolalysenko: full disclosure: most of my js tutorials revolve around writing a template language and publishing it to npm
22:13:03  <chrisdickinson>to get folk comfortable with js and npm
22:13:33  <mikolalysenko>hmm
22:13:44  <substack>ok just put tape on testling-ci yay
22:13:54  <mikolalysenko>I also kind of updated that rant a bit adding more modules: https://gist.github.com/mikolalysenko/5277933
22:14:15  <mikolalysenko>the general point is that there is far too much waste in npm, with everyone reinventing the wheel left and right
22:14:29  <mikolalysenko>and I am not saying that those problems aren't necessarily important, or that what they do is not useful
22:15:02  <mikolalysenko>just that it is stupid to go out and create yet-another-generic-meta-promise-control-flow-async-template-whatever-wankery module
22:15:42  <mikolalysenko>unless you have a damn good way to justify why what you are doing is important and unique
22:15:42  * AvianFluquit (Read error: Connection reset by peer)
22:15:59  * AvianFlujoined
22:16:18  * timoxleyquit (Quit: ["Textual IRC Client: www.textualapp.com"])
22:16:29  <chrisdickinson>mikolalysenko: i actually like that there's so much junk on npm
22:16:35  <substack>mikolalysenko: looks pretty great
22:16:38  <substack>chrisdickinson: haha same
22:16:53  <substack>the more junk there is, the more likely something I can use has been published
22:16:58  <chrisdickinson>it implies that anyone can publish anything, and that the "best" results will win out eventually
22:17:19  <mikolalysenko>a nice idea, but how will the best results win
22:17:40  <chrisdickinson>as a community, i like that we focus on democratizing the process of authoring and publishing modules, and have an incredibly low barrier to entry for new authors
22:17:52  <chrisdickinson>word of mouth, mostly
22:17:57  <mikolalysenko>hmm
22:18:19  <chrisdickinson>the fact that there's a billion templating modules out there shouldn't deter anyone from writing another one
22:18:40  <mikolalysenko>maybe that can be the next hello world for node applications
22:18:45  <mikolalysenko>writing a template module
22:18:46  <substack>some solutions have a natural tendency for convergence
22:18:53  <substack>template engines do not have this property
22:19:05  * thl0quit (Remote host closed the connection)
22:19:10  <substack>they are (1) easy to write (2) not grounded in any fundamental constraints
22:19:27  <chrisdickinson>even if no one else in the world reuses their package but them, it still helps them reuse their own code
22:19:32  <substack>so we see an explosion of diversity
22:19:43  * thl0joined
22:19:51  <chrisdickinson>and when they get to a point that they can contribute really interesting modules in another topic, they've already practiced publishing
22:19:51  <substack>but diversity is actually very useful
22:20:10  <chrisdickinson>also, templating languages are fun to write
22:20:12  <chrisdickinson>like parsers lite.
22:20:28  <substack>like I wrote https://npmjs.org/package/hyperstream which is a template language without the language part
22:21:02  <mikolalysenko>maybe, but I can think of lots of other easy projects that aren't in npm and need to get written
22:21:05  <substack>so many ways to do it
22:21:10  <mikolalysenko>like where are all the convex hull delaunay libraries?
22:21:21  <mikolalysenko>and where are all the mesh processing libraries?
22:21:44  <substack>https://npmjs.org/package/de-bruijn
22:22:24  <mikolalysenko>fine, it is a start
22:22:31  <chrisdickinson>mikolalysenko: they might have the knowledge necessary to write that module. writing a decent templating library might just be where they're at, for the moment.
22:22:36  <chrisdickinson>*might not
22:23:06  <mikolalysenko>perhaps, and it is not my goal to put down beginners
22:23:25  <chrisdickinson>i understand
22:23:29  <substack>mikolalysenko: there is not much intersection right now between people who use and publish modules and people who tinker with foundational algorithms
22:24:03  <chrisdickinson>but from what i've seen it's hard to have a "experienced authors: quit remaking these modules!" directive that new authors don't pay attention to
22:24:04  <substack>whenever I encounter a neat algorithm I hadn't known about before I make sure to put it on npm if it isn't already there
22:24:18  * thl0quit (Ping timeout: 272 seconds)
22:24:36  <chrisdickinson>lately i've tended to pick a topic and drill down on it
22:24:44  <substack>the nice thing about foundational algorithms is that they are convergent
22:24:46  <chrisdickinson>git, most recently, but hopefully soon irc as well
22:24:51  <mikolalysenko>well, I've been writing about 1 module/day but still haven't exhausted my supply of algorithms
22:24:53  <substack>there are usually only a few ways of implementing them
22:25:01  <chrisdickinson>it turns out i really enjoy bit twiddling sorts of things
22:25:13  <substack>mikolalysenko: keep on keeping on that is amazing
22:25:20  <chrisdickinson>+1, good job!
22:25:27  <mikolalysenko>yeah, though it is hard to write stuff in js sometimes
22:25:35  <mikolalysenko>like I would like to make a cache oblivious b-tree in js
22:25:46  <mikolalysenko>to finally put to rest the problem of not having decent binary search trees
22:26:05  <mikolalysenko>but the problem is that I don't know how to make pass-by-value types work with js objects...
22:26:16  <mikolalysenko>I mean you can destructure stuff into arrays fortran style
22:26:29  <mikolalysenko>but that doesn't really jive with the js way of doing things
22:26:50  <mikolalysenko>theoretically es6 will fix this, but who knows what/when it will be when it finally lands
22:28:12  <mikolalysenko>though that is not really an npm specific issue, more of a generic language problem
22:29:23  * fallsemoquit (Quit: Leaving.)
22:30:16  <mikolalysenko>another thing I would also like to see is a good range tree implementation for js
22:30:52  <mikolalysenko>I can think of how this might work, and I may do it myself one day
22:32:25  <mikolalysenko>and someone needs to make a library for doing polygon triangulation too...
22:32:30  <mikolalysenko>and sparse linear algebra...
22:33:15  <mikolalysenko>and maybe a webgl wrapper that doesn't use three.js...
22:33:48  <mikolalysenko>(perhaps I have too many demands, I think at this point I am just talking to myself)
22:35:38  <chrisdickinson>was sort of working on that with glslify / programify
22:35:48  <chrisdickinson>oh damn
22:35:48  <chrisdickinson>haha
22:35:52  <chrisdickinson>those could be source transforms now!
22:35:58  <mikolalysenko>yeah, I like that project a lot
22:35:59  <substack>BAM
22:36:12  <chrisdickinson>so you could just require('./my-program') and get a program object back
22:36:21  <chrisdickinson>i will put that on my list
22:36:24  <mikolalysenko>I think it would be neat to combine it with headless-gl, and use it to solve big sparse linear systems
22:36:32  <mikolalysenko>like gpgpu conjugate gradient method
22:36:55  <mikolalysenko>then you could do finite elements in javascript!
22:37:28  <mikolalysenko>each of the parts is super simple to implement, but putting it all together will take time
22:37:46  <mikolalysenko>however, once you have it you can do stuff like simulate deformable objects
22:37:49  <mikolalysenko>or do topology optimization
22:37:58  <mikolalysenko>which would be awesome to demo in js
22:38:44  <mbalho>mikolalysenko: i might get a grant to do pedestrian/bicycle/auto tracking in JS on raspberry pis with little video cameras
22:39:10  <mikolalysenko>that would be pretty cool
22:39:15  <mbalho>mikolalysenko: to give cities little open source hardware boxes that can be deployed to measure how many people walk around
22:40:03  <mbalho>mikolalysenko: have you ever done CV stuff like that? would be interesting to see if a glsl thing that exports a bitmap would be faster than optical flow CV in JS
22:40:38  <mikolalysenko>interesting, how are you thinking about doing the tracking?
22:40:45  <mikolalysenko>I've done a bit of stuff with computer vision
22:40:56  <mikolalysenko>I've taken a few courses and made some stuff with opencv years ago
22:41:35  <mikolalysenko>probably the path of least resistance would be to make opencv bindings to js, and then do everything in node
22:41:51  <mbalho>plan is to start with npm install jsfeat and use their LK optical flow/Haar object implementation
22:41:53  <mikolalysenko>though the path of most awesome would be to convert chunks of opencv over to node
22:42:22  <mbalho>jsfeat seems pretty much like straight up pure js math + algorithms
22:42:34  <mikolalysenko>I've never used jsfeat, so I can't comment on how well it works
22:43:00  <mbalho>mikolalysenko: check out the demos on the github page
22:43:59  <mikolalysenko>mbalho: whoa! that library is awesome!
22:44:10  <mikolalysenko>they have a ton of useful stuff implemented
22:44:44  <mikolalysenko>the roll-your-own-matrix-library thing is a bit sketchy though, but whatever
22:44:55  <mbalho>ahh yea
22:45:47  <mikolalysenko>I've never heard of the YAPE feature extractor, in all my projects I've always just used sift
22:46:09  <mikolalysenko>but it is pretty fast and seems to pick up decent features
22:47:08  <mbalho>mikolalysenko: oh yea also apparently you can do texture atlases by combining your pngs into a single 2d <canvas> and doing new THREE.Texture(<canvas>) and then fixing your uv mapping, seems like a viable stop gap for the time being
22:47:31  <mikolalysenko>mbalho: ok, though that is not really the main issue I think
22:47:43  <mikolalysenko>mbalho: basically it is the wrap around at boundaries
22:48:07  <chrisdickinson>is that in re: three.js?
22:48:10  <mikolalysenko>mbalho: you can either use that approach, or face merging - not both, at least within three.js
22:48:11  <chrisdickinson>i mean, voxel.js
22:48:13  <mikolalysenko>yeah
22:48:22  <chrisdickinson>ah, yeah
22:48:23  <mikolalysenko>basically three.js doesn't implement texture atlases with uv wrap
22:48:46  <mikolalysenko>and even doing it the simple way by generating a ton of faces will have some problems
22:48:51  <mbalho>mikolalysenko: ahh i see
22:48:59  <mikolalysenko>since at texture boundaries the lod filtering is going to create ugly seams
22:49:14  <mikolalysenko>which I have seen in many other voxel engines that do it that way
22:49:30  <mikolalysenko>but it should be faster for sure
22:49:40  <chrisdickinson>ah, that would require a custom fragment shader to render out of an atlas, right?
22:49:45  <mikolalysenko>exactly
22:49:45  <chrisdickinson>a non-three.js-baked-in one, at least
22:49:50  <mikolalysenko>pretty much
22:50:02  <mikolalysenko>which is also the main reason I stopped working on voxels myself
22:50:11  <mikolalysenko>is because I ran into this issue back when I was writing those articles
22:50:18  <mbalho>hah
22:50:22  <mikolalysenko>and I could not figure out how to get three.js to obey my will
22:50:37  <mikolalysenko>so, I just shelved and moved onto other projects
22:50:53  * fallsemojoined
22:51:16  <mbalho>i wonder if we could write a version of the stupid mesher that only was stupid for exterior vertices and not internal
22:51:57  <mbalho>cause right now it does this http://i.imgur.com/aNDdMjR.gif
22:52:18  <mbalho>1 draw call per texture per chunk, so if it was just 1 draw call per chunk i think we could get way more chunks than we can support now
22:52:27  <mbalho>i tried with 512 chunks and it was like 40k-50k draw calls :D
22:54:28  <mikolalysenko>I would guess that using the culled mesher should be faster for within three.js, though mostly because of the way it handles materials
22:54:58  <mikolalysenko>though asymptotically, the best thing to do would be to switch to a custom fragment shader
22:55:23  <mikolalysenko>you may also be able to avoid the filtering problems by padding each of the texutres in the canvas when you lay them out
22:57:45  * fallsemoquit (Quit: Leaving.)
23:02:19  <Raynos>anyone implemented a diff or journaling system ?
23:02:21  <Raynos>Oh wait
23:02:26  <Raynos>chrisdickinson: oh hai :D
23:02:49  <chrisdickinson>hi hi
23:02:54  <chrisdickinson>not yet
23:03:07  <chrisdickinson>but i'll have something where you can take two buffers and get a git delta
23:03:55  <Raynos>So im implementing a diff system
23:04:21  <Raynos>and I realized my naive implementation ( https://github.com/Raynos/immutable-hash/blob/master/index.js#L17 ) contains a massive linked list of all values
23:04:24  <Raynos>which is stupid :(
23:21:31  * stlsaintquit (Ping timeout: 256 seconds)
23:36:50  * defunctzombie_zzchanged nick to defunctzombie
23:45:14  <mbalho>anyone know whats up with jsonparse/JSONStream not working in browsers anymore? jsonparse in chrome throws Uncaught Error: Unexpected "\u0000" at position 0 in state START
23:49:59  * ins0mniaquit (Ping timeout: 255 seconds)
23:52:22  <Raynos>Are there any good benchmarking libraries?
23:55:11  * thl0joined