00:00:05  * plutoniixjoined
00:00:10  * focodevquit (Quit: Mutter: www.mutterirc.com)
00:00:25  * rohanrhujoined
00:01:37  * chjjquit (Ping timeout: 255 seconds)
00:01:44  * ecuanasojoined
00:02:09  * hosifiedquit (Quit: Leaving)
00:02:10  * markasoftwarejoined
00:02:32  * goodenou_quit (Remote host closed the connection)
00:03:42  * wrkrcoopjoined
00:04:04  <wrkrcoop>who is the best programmer u know?
00:04:07  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:05:21  * bdunavantjoined
00:05:45  <GreenJello>Spongebob Squarepants
00:05:57  * wadadlijoined
00:07:55  * focodevjoined
00:08:21  * ok91joined
00:08:50  <dmarr>i have a C addon I'm writing which has a git submodule as a dependency. when i npm install the package via github repo (npm i me/pkg) it doesn't bring in the submodule. how would i fix that?
00:09:24  <dmarr>prebuild: "git submodule update --init"?
00:09:42  * Cohedrin_quit (Read error: Connection reset by peer)
00:09:57  * StoneCypherquit (Ping timeout: 240 seconds)
00:12:20  * bdunavantquit (Remote host closed the connection)
00:12:21  * ok91quit (Ping timeout: 240 seconds)
00:12:35  * justelexquit (Ping timeout: 240 seconds)
00:13:26  * smccarthyquit (Remote host closed the connection)
00:13:59  * smccarthyjoined
00:14:22  * Cohedrin_joined
00:14:36  * jasonzhouujoined
00:15:09  * chjjjoined
00:15:19  * phutchins1joined
00:15:48  <dmarr>bleh i don't even see a prebuild option here https://docs.npmjs.com/misc/scripts
00:16:14  * focodevquit (Quit: Mutter: www.mutterirc.com)
00:17:29  * zxcjoined
00:18:21  * smccarthyquit (Ping timeout: 240 seconds)
00:19:39  * NikNakFlakjoined
00:20:10  <dmarr>seems like i'd need to just bundle the compiled build into my repo
00:21:22  * NikNak|Classquit (Ping timeout: 276 seconds)
00:24:56  * nothingbutflowerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:26:26  * upperdeckquit (Ping timeout: 246 seconds)
00:26:51  * Fishrock123joined
00:28:23  * zxcquit (Read error: Connection reset by peer)
00:29:29  * brent__quit (Remote host closed the connection)
00:30:03  * brent__joined
00:31:46  * Fishrock123quit (Ping timeout: 276 seconds)
00:32:04  * upperdeckjoined
00:33:16  * lukebiggquit (Quit: Leaving.)
00:34:07  <charmander>dmarr: how about bundling the submodule?
00:34:22  * Cabanossiquit (Ping timeout: 276 seconds)
00:34:36  <dmarr>I think i'm just going to have to bundle the .node file
00:35:01  * brent__quit (Ping timeout: 276 seconds)
00:36:07  * ecuanasoquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:36:31  * Cabanossijoined
00:36:57  * brent__joined
00:37:51  * zxcjoined
00:40:31  <charmander>dmarr: binaries in packages aren’t great though =/
00:40:57  * jasonzhouuquit (Quit: Page closed)
00:41:37  * brent__quit (Ping timeout: 255 seconds)
00:42:04  * duderonomyquit (Ping timeout: 246 seconds)
00:42:04  * TinkerTyperquit (Ping timeout: 255 seconds)
00:42:11  * zpmorganquit (Quit: Leaving)
00:43:03  * goodenoughjoined
00:43:22  * cotkoquit (Ping timeout: 260 seconds)
00:44:02  * orbyt_joined
00:44:46  * cotkojoined
00:44:55  * srpxquit (Ping timeout: 260 seconds)
00:45:02  * Defenestratejoined
00:49:26  * ColeHubquit (Quit: Snooze.)
00:52:44  * wrkrcoopquit (Quit: wrkrcoop)
00:54:07  * noraatepernosjoined
00:54:29  * EyePulpquit (Remote host closed the connection)
00:55:01  * EyePulpjoined
00:59:13  * psk_quit
01:01:33  * nothingbutflowerjoined
01:02:00  * noraatepernosquit (Quit: noraatepernos)
01:02:08  * guzzlefryjoined
01:02:33  * nobsoquit (Quit: nobso)
01:02:46  * chjjquit (Ping timeout: 255 seconds)
01:02:54  * nothingbutflowerquit (Client Quit)
01:02:56  <guzzlefry>Evening, quick question. What is this syntax called so that I can actually look it up? const { method, url } = request;
01:02:58  * NikNakFlakquit (Ping timeout: 276 seconds)
01:03:18  * nothingbutflowerjoined
01:03:39  <guzzlefry>Specifically the assignment with the braces. I'm familiar with const already.
01:03:41  <GreenJello>guzzlefry, destructuring
01:03:49  <guzzlefry>thanks
01:04:05  * superloujoined
01:06:18  * Moose_joined
01:08:10  * nothingbutflowerquit (Ping timeout: 276 seconds)
01:08:44  * jkridnerjoined
01:09:28  * Moosequit (Ping timeout: 276 seconds)
01:10:07  * jphasequit (Ping timeout: 276 seconds)
01:12:58  * nashdevjoined
01:15:28  * chjjjoined
01:15:43  * Cohedrin_quit (Read error: Connection reset by peer)
01:16:34  * Cohedrin_joined
01:16:55  <nashdev>hi all, I have clients that have a live scoreboard that updates every 5 seconds or so from api requests made by my server, how can I save the results to my db after the scoreboard is no longer live and is finalized?
01:16:57  * beefjoequit (Remote host closed the connection)
01:17:15  * olalondejoined
01:19:38  * Cabanossiquit (Ping timeout: 246 seconds)
01:20:00  * ed209quit (Remote host closed the connection)
01:20:07  * ed209joined
01:21:36  * Cabanossijoined
01:23:07  * FMJaggyquit (Ping timeout: 276 seconds)
01:23:17  * darkSeid_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:23:33  * doomhzjoined
01:24:47  * bradfordli123quit (Remote host closed the connection)
01:26:21  * wadadliquit (Changing host)
01:26:21  * wadadlijoined
01:27:26  * Cohedrin_quit (Read error: Connection reset by peer)
01:27:29  * mezodjoined
01:28:21  * doomhzquit (Ping timeout: 240 seconds)
01:29:10  * brent__joined
01:29:27  * Cohedrin_joined
01:29:58  * goodenoughquit (Remote host closed the connection)
01:30:08  * smccarthyjoined
01:30:18  * duderonomyjoined
01:30:44  * wrkrcoopjoined
01:31:21  * MachinShinquit (Ping timeout: 240 seconds)
01:33:30  <guzzlefry>Is there a recommended learning path for Node?
01:33:40  * systemovichquit (Quit: Konversation terminated!)
01:33:57  * brent__quit (Ping timeout: 240 seconds)
01:34:05  * smccarthyquit (Ping timeout: 240 seconds)
01:34:09  * noraatepernosjoined
01:34:20  * MachinShinjoined
01:34:39  * MachinShinquit (Changing host)
01:34:39  * MachinShinjoined
01:35:19  * zetetetetejoined
01:36:50  * darkSeid_joined
01:37:05  * beerdropquit (Ping timeout: 248 seconds)
01:37:31  * zetetetetequit (Read error: Connection reset by peer)
01:37:38  * BSAlbquit (Read error: Connection reset by peer)
01:38:56  * zetetetetejoined
01:39:17  * Cohedrin_quit (Read error: Connection reset by peer)
01:39:55  * knobquit (Quit: Leaving)
01:40:00  * Cohedrin_joined
01:41:00  * TinkerTyperjoined
01:43:10  * EyePulpquit (Remote host closed the connection)
01:43:24  * EyePulpjoined
01:44:02  * clintarjoined
01:44:03  * zetetetetequit (Read error: Connection reset by peer)
01:45:41  * gssawerlakwerljoined
01:45:47  * cotkoquit (Ping timeout: 260 seconds)
01:46:11  * alexi5_joined
01:47:13  * d0rukquit (Ping timeout: 248 seconds)
01:47:45  * alexi5quit (Ping timeout: 248 seconds)
01:48:14  * darkSeid_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:48:23  * FunnyLookinHatjoined
01:48:50  * darkSeid_joined
01:48:54  * FunnyLookinHatquit (Remote host closed the connection)
01:49:06  * FunnyLookinHatjoined
01:49:06  * FunnyLookinHatquit (Changing host)
01:49:06  * FunnyLookinHatjoined
01:49:15  * beerdropjoined
01:49:30  * FunnyLookinHatquit (Remote host closed the connection)
01:49:39  * howardwlo_joined
01:49:40  * Fishrock123joined
01:50:25  * howardwloquit (Ping timeout: 276 seconds)
01:50:25  * howardwlo_changed nick to howardwlo
01:51:07  * Fishrock123quit (Client Quit)
01:51:22  <nashdev>anyone know if I can set up a websocket connection endpoint off the same node server serving my express api
01:51:26  <nashdev>for a specific endpoint?
01:53:28  * mattkimejoined
01:53:46  * darkSeid_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:53:48  * Cohedrin_quit (Read error: Connection reset by peer)
01:54:19  * darkSeid_joined
01:56:22  * superlouquit (Quit: Leaving)
01:56:32  * cotkojoined
01:56:33  * Cohedrin_joined
01:56:50  * gssawerlakwerlquit (Ping timeout: 240 seconds)
01:57:14  * lukebiggjoined
01:57:36  * mattkimepart
01:58:03  * basicdays1part
01:58:46  * basicdaysjoined
01:59:01  * devixjoined
02:01:58  * DaffzDuckjoined
02:02:35  * noraatepernosquit (Quit: noraatepernos)
02:03:22  * lukebiggpart
02:03:27  * notdanieljoined
02:03:32  <zsoc>nashdev: the two parts of your question are not congruent
02:03:48  <zsoc>you can set a websocket server on the same http server serving your express api, yes
02:03:59  <zsoc>i don't know what 'for a specific endpoint' means tho
02:04:18  * notdanielquit (Max SendQ exceeded)
02:04:38  * rohanrhuquit (Read error: Connection reset by peer)
02:04:47  * notdanieljoined
02:05:09  * glijoined
02:05:20  * notdanielquit (Max SendQ exceeded)
02:05:51  * notdanieljoined
02:06:05  * FMJaggyjoined
02:07:40  * wrkrcoopquit (Quit: wrkrcoop)
02:09:07  * goodenoughjoined
02:10:03  <prometh>i guess he means ws://host/endpoint ?
02:10:15  * rohanrhujoined
02:10:21  * gliquit (Ping timeout: 240 seconds)
02:11:28  <deltab>different scheme, spearate namespace, right?
02:11:34  <deltab>^separate
02:11:38  * pankajjoined
02:12:24  * mezodquit (Remote host closed the connection)
02:12:26  * Phloxxquit (Ping timeout: 255 seconds)
02:13:49  * goodenoughquit (Ping timeout: 276 seconds)
02:15:08  <nashdev>I mean like mysite/stattracker
02:15:21  * Phloxxjoined
02:15:23  <nashdev>when it hits the stattracker endpoint it is on a websockets connection
02:15:43  <nashdev>if it hits /user?id=1 it calls express api.get
02:16:47  * Fuslquit (Excess Flood)
02:17:04  * al-damiriquit (Ping timeout: 276 seconds)
02:17:46  * oohnoitzjoined
02:17:49  * linuxchipjoined
02:17:52  * microdexquit (Remote host closed the connection)
02:18:05  * Fusljoined
02:18:22  * Buzzerquit (Ping timeout: 276 seconds)
02:18:28  * microdexjoined
02:19:02  * oohnoitz-quit (Ping timeout: 276 seconds)
02:19:02  * ghormoonquit (Ping timeout: 276 seconds)
02:19:18  * al-damirijoined
02:19:19  * Cohedrin_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:19:30  <prometh>i don't think websockets run on http, do they?
02:19:44  <prometh>http://host/websocket -> ws://host/websocket
02:22:16  * zaidka[m]quit (Ping timeout: 276 seconds)
02:22:27  * Defcronykequit (Quit: Leaving)
02:22:30  * zaidka[m]joined
02:22:55  * shakes808quit (Ping timeout: 276 seconds)
02:23:24  * smccarthyjoined
02:23:26  * microdexquit (Ping timeout: 268 seconds)
02:23:38  * smccarthyquit (Remote host closed the connection)
02:23:47  * Buzzerjoined
02:23:49  * ghormoonjoined
02:24:13  * smccarthyjoined
02:24:21  * phutchins1quit (Ping timeout: 240 seconds)
02:25:16  * alexi5__joined
02:25:58  * shakes808joined
02:26:41  * alexi5_quit (Ping timeout: 248 seconds)
02:26:55  * Defcronykejoined
02:28:30  * DeltaHeavyquit (Ping timeout: 240 seconds)
02:28:51  * cotkoquit (Ping timeout: 240 seconds)
02:29:34  * cotkojoined
02:30:22  * NikNakFlakjoined
02:30:38  * abijeetjoined
02:30:59  * abijeetquit (Max SendQ exceeded)
02:31:23  * abijeetjoined
02:31:32  * TinkerTyper_joined
02:32:52  * leptonejoined
02:33:58  * TinkerTyperquit (Ping timeout: 276 seconds)
02:34:43  * emesdequit (Read error: Connection reset by peer)
02:34:46  <nashdev>ah
02:35:21  * TinkerTyperjoined
02:37:53  <nashdev>so I can use the same server though?
02:38:25  * TinkerTyper_quit (Ping timeout: 248 seconds)
02:38:55  <nashdev>my last line of code is https.createServer(app).listen(3000)
02:39:00  <nashdev>so I can set that to a variable
02:39:11  <nashdev>and pass that variable into the wss options
02:39:20  <nashdev>and it will still run my express api?
02:39:45  * lemonsparrowjoined
02:40:11  <zsoc>websockets *do* run on http
02:40:45  <nashdev>zsoc, so would an express endpoint work to run my ws?
02:40:50  * async[away]joined
02:40:55  <zsoc>nashdev: i would do const server = https.createServer(app); then give the http server to your websocket server
02:40:56  <zsoc>then server.listen
02:40:58  <zsoc>then you're good
02:41:05  <nashdev>ah
02:41:06  <nashdev>okay
02:41:07  <zsoc>the express endpoint doesn't run your ws
02:41:08  <nashdev>makes sense
02:41:10  <zsoc>it never gets to expres
02:41:17  <zsoc>but yes, they work on the same server/port
02:41:19  <nashdev>thanks for clarification
02:41:23  <lemonsparrow>is there a library to create tree with nodes having text data in it and then saving it as json/xml format ?
02:46:16  * systemfaultjoined
02:46:39  * leptonequit (Remote host closed the connection)
02:46:40  * smccarth_joined
02:47:31  * guzzlefrypart ("Leaving")
02:47:43  * ovshquit (Ping timeout: 246 seconds)
02:48:02  * async[away]changed nick to asynclove
02:48:45  * DeltaHeavyjoined
02:49:24  * markasoftwarequit (Read error: Connection reset by peer)
02:49:57  * smccarthyquit (Ping timeout: 260 seconds)
02:50:53  * ahrsquit (Remote host closed the connection)
02:50:56  * supervoltingjoined
02:52:05  * ahrsjoined
02:54:34  <DeltaHeavy>nahtnam: Sorry, I ended up getting pulled away there.
02:55:28  * Lippjoined
02:56:33  * HoierMquit (Ping timeout: 248 seconds)
02:56:38  * zsocquit (Read error: Connection reset by peer)
02:56:57  * zsocjoined
02:56:58  * zsocquit (Changing host)
02:56:58  * zsocjoined
02:58:00  * darkSeid_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:58:02  * pgmjoined
02:59:45  * Lippquit (Ping timeout: 248 seconds)
03:00:01  <nahtnam>Np
03:00:06  <nahtnam>Do you have any suggestions?
03:03:09  * h12ojoined
03:03:28  * goodenoughjoined
03:05:00  <prometh>lemonsparrow: just use regular objects and JSON.stringify()
03:05:13  <DeltaHeavy>nahtnam: What's the package name again?
03:05:19  <DeltaHeavy>nstall -g k
03:05:22  <lemonsparrow>prometh: looking at something like this https://github.com/wmhilton/treeui
03:05:27  <DeltaHeavy>Blah, trying to search
03:05:35  <nahtnam>DeltaHeavy: konstructor
03:05:45  * ecuanasojoined
03:05:53  <prometh>lemonsparrow: ok, if you need a ui.. but you didn't say that :P
03:05:58  * sternsjoined
03:06:21  * ob-sedquit (Ping timeout: 240 seconds)
03:06:34  <DeltaHeavy>TBH I'm starting to get pretty tired and crap. I'll bookmark this and message you if not in a bit, another day. I'm online pretty often through today and the day after I might not be so much.
03:06:51  <prometh>this week sucks.. no real work to do
03:07:03  <lemonsparrow>prometh: I need one :) and then be able to save it as json and then load it back.. it does that it seems.. expect for that I need to add some condition associated with each node as to whether it should load or not while executing
03:07:07  <prometh>i guess i could start learning react and graphql, but... feels wasted
03:07:36  <DeltaHeavy>I don't see GraphQL used very often right now.
03:07:40  <DeltaHeavy>I only see what I see though.
03:07:40  * goodenoughquit (Ping timeout: 246 seconds)
03:07:45  <DeltaHeavy>It looks pretty sexy tho
03:07:48  <prometh>i think it's a better design
03:07:56  <prometh>one endpoint
03:07:57  * h12oquit (Ping timeout: 240 seconds)
03:08:14  <prometh>and sql could disappear and graphql could persist
03:08:42  <prometh>but i wonder if just using sql would've been clean enough
03:08:53  * lowercasemanjoined
03:10:07  * sondr3quit (Ping timeout: 246 seconds)
03:10:43  <nahtnam>DeltaHeavy: sure, no problem
03:13:22  <prometh>and hmm, graphql is meant for "graph databases"... how is a relational database not a graph?
03:14:15  * nashdevquit (Ping timeout: 260 seconds)
03:14:23  * eshloxquit (Quit: Connection closed for inactivity)
03:14:29  * ecuanasoquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:18:45  * abijeetquit (Remote host closed the connection)
03:19:14  <prometh>heh
03:19:26  <prometh>tehre's such a thing as an SQL API
03:20:33  * kingarmadilloquit (Ping timeout: 248 seconds)
03:20:40  <prometh>i might just build that instead.
03:20:55  <prometh>i wonder how big an sql query builder is for frontend
03:21:29  <jfhbrook>you know
03:21:40  <jfhbrook>I reviewed some code by my boss today
03:22:06  <jfhbrook>and I kinda screwed it up, I kept the notes in the asana ticket instead of trying to figure out how to make github let me do a code review on a non-pull-request
03:22:10  <jfhbrook>but like
03:22:15  <jfhbrook>javascript has a lot of pitfalls
03:22:24  <jfhbrook>like there's lots of innocuous but bad things
03:22:29  * the_antjoined
03:22:41  <jfhbrook>like he has == everywhere, and he doesn't know best practices for coercing to a number
03:23:06  <jfhbrook>like stuff where if you don't know to look out for it, or even you do kinda know how to look out for it but usually don't have to and you don't have a linter
03:23:51  * h12ojoined
03:24:56  * howardwlo_joined
03:24:58  * howardwloquit (Ping timeout: 255 seconds)
03:24:59  * howardwlo_changed nick to howardwlo
03:25:02  * doomhzjoined
03:25:34  <prometh>wow, knex can be browserified
03:25:47  <jfhbrook>lol dope
03:25:58  <prometh>we could just use knex in an SPA and have an SQL endpoint
03:26:01  <jfhbrook>wait so knex can be browserified but you have to hand it a driver yeah?
03:26:03  <prometh>no need for graphql
03:26:16  <jfhbrook>yeah, interesting idea, though potentially dangerous
03:26:29  <prometh>how is it more dangerous than graphql ?
03:26:36  <jfhbrook>updates
03:26:59  <jfhbrook>by default, if you like did a pipe-to-sql you'd have a very obvious RCE exploit
03:27:11  <prometh>yeah, it can't force bindings
03:27:11  <nahtnam>https://gist.github.com/nahtnam/23a3da94b92c86ab8dbf5bf138f6fd47
03:27:18  <nahtnam>Which of these systems is "better", and why?
03:27:22  <jfhbrook>so you have to put a ton of work sanitizing the input and preparing it for the actual sql db
03:27:28  <prometh>yeah
03:27:32  <jfhbrook>at which point you might as well write an ansi sql parser in javascript
03:27:48  <jfhbrook>at which point you might as well write a dsl that better fits your problem domain, like perhaps graphql
03:28:06  <jfhbrook>as a mad science idea though, I love it
03:28:15  <prometh>i think if we had a subset of sql, where bindings were forced
03:28:33  <jfhbrook>what you should probably do instead is see if you can write an engine that intercepts the query build calls prior to stringification
03:28:53  <prometh>extra parsing
03:28:56  <jfhbrook>then maybe you're dealing with an ast, and you can do what you want from there
03:29:17  <prometh>if it were `select * from ? where ?` and it would not accept anything but bindings in those places, itd' be safe
03:29:37  <jfhbrook>so https://github.com/forward/sql-parser
03:29:41  <prometh>then the server would put the bindings in adn it would get sanitized
03:29:52  * h12oquit (Ping timeout: 276 seconds)
03:29:59  * leptonejoined
03:30:02  <prometh>hmm, yeah maybe
03:30:02  * doomhzquit (Ping timeout: 268 seconds)
03:30:08  * ovshjoined
03:30:13  <prometh>lots of edge cases, though
03:30:15  <jfhbrook>right but you fundamentally have to have as good an understanding of sql as the db itself
03:30:21  <prometh>yes
03:30:44  <prometh>i guess this is where graphql made their own that can be used with any db
03:30:48  <jfhbrook>so you would need either this sql parser, at which point you'd write something that can convert ASTs into safe queries
03:30:59  <jfhbrook>well graphql is doing what I'm describing anyway
03:31:04  <prometh>yes
03:31:05  <prometh>and it's agnostic
03:31:15  <jfhbrook>they have an object that parses graphql and then uses callbacks to allow you to do data fetching
03:31:17  * pilnequit (Quit: Quitting!)
03:31:39  <jfhbrook>you could certainly do that with this sql parser thing, prepare types of queries and then send them to a thing that then hits the backing datastore
03:31:56  <jfhbrook>in fact you might see some similarities here to postgres FDWs, which I've been dying to experiment with >:O
03:32:15  * abijeetjoined
03:32:48  <jfhbrook>http://multicorn.org/
03:33:18  * Moose_quit (Quit: Leaving)
03:33:24  * smccarthyjoined
03:33:38  * Moosejoined
03:34:34  * Cabanossiquit (Ping timeout: 264 seconds)
03:35:09  * Cabanossijoined
03:35:42  <jfhbrook>you might also be interested in https://schemaverse.com/
03:36:51  * smccarth_quit (Ping timeout: 240 seconds)
03:37:52  * wrkrcoopjoined
03:38:08  <jfhbrook>I actually might know enough psql to do this
03:38:09  * abijeetquit (Remote host closed the connection)
03:38:41  * rubbersjoined
03:38:48  <jfhbrook>anyway, I link that because on one hand it's kind of a weird game, on the other it's a postgres instance exposed to the entire world
03:41:27  * nomoney4mequit (Ping timeout: 240 seconds)
03:43:13  <rubbers>I'm trying to subclass net.createServer, trap the connection event and re-emit it with my own subclass of EventEmitter. Unfortunately I get an endless loop when re-emitting the connection event, which makes sense when you think about what's happening. Is there a way to capture an event and re-emit the same event after some of your own processing?
03:43:43  <rubbers>For whatever reason this issue is ridiculously difficult to google for =)
03:45:21  * FMJaggyquit (Ping timeout: 240 seconds)
03:47:39  * autoferritjoined
03:49:37  <prometh>too bad multicorn is python
03:50:17  <prometh>i don't think that an exposed /secure/ postgres instance is any worse than graphql
03:51:27  * justelexjoined
03:51:59  <prometh>looks like rethinkdb did this https://rethinkdb.com/blog/postgres-foreign-data-wrapper/
03:52:36  * rchavikjoined
03:52:49  * NomadJim_quit (Read error: Connection reset by peer)
03:53:29  * NomadJim_joined
03:54:10  * chreladquit (Ping timeout: 240 seconds)
03:55:46  * rubbersquit (Quit: Page closed)
03:55:56  * goodenoughjoined
03:55:57  * asynclovequit (Quit: later yo)
03:56:27  <jfhbrook>so like, if you look up the companion talk to schemaverse
03:56:38  <jfhbrook>he talks about how much pushback he got when he approached the postgres community about this
03:56:57  <jfhbrook>yeah I mean a node based fdw lib would be cool
03:57:09  <jfhbrook>but I'm also willing to use just whatever tool
03:57:21  * rohanrhuquit (Ping timeout: 240 seconds)
03:58:09  <prometh>i like not following facebook/google/etc
03:58:37  <prometh>too much kool aid
04:00:13  * mj_kjoined
04:01:38  <prometh>so, multicorn is a pg extension.. how does python fit into that?
04:02:26  <jfhbrook>postgres supports python as an embedded PL
04:02:50  <jfhbrook>idk if that's exactly what multicorn is leveraging, but regardless you can use it to send code to postgres that implements the actual data fetching
04:03:12  <jfhbrook>so if for instance you wanted to write a fdw backend for fetching google spreadsheets... you could write the part that creates the google api w/ multicorn
04:03:31  <prometh>oh, weird
04:03:47  <prometh>too opinionated for my taste
04:03:51  <prometh>postgres should stick to db
04:04:04  <jfhbrook>opinionated is a very strange way to describe that
04:04:11  <prometh>they're just gonna have to pull out all that python crap in 5 years
04:04:14  <jfhbrook>generally you use a fdw to tie in the legacy oracle db
04:04:23  <jfhbrook>python is just an implementation detail
04:04:31  <prometh>an unnecessary one imo
04:04:33  <jfhbrook>you'd have to implement it in *something*
04:04:45  <jfhbrook>and python is a reasonable choice as far as scripting languages go
04:04:50  * AKPWDquit (Ping timeout: 246 seconds)
04:04:56  <prometh>couldn't the4y just have left that part out?
04:05:08  <prometh>and said "pick from any of these: python, javascript"
04:05:12  <charmander>that doesn’t make sense
04:05:41  <prometh>what does the python part do or need to do?
04:05:52  * AKPWDjoined
04:05:56  <charmander>multicorn lets you write foreign data wrappers in python
04:06:09  <prometh>oh
04:06:14  <prometh>ok
04:06:15  <jfhbrook>rather than, say, C
04:06:42  <prometh>and the postgres extension part is C
04:06:51  * WebertRLZquit (Ping timeout: 240 seconds)
04:07:08  <prometh>so, then, multicorn would need to be forked.. to save us from rewriting teh C part
04:07:29  <prometh>which leaves me out cuz i don't know C
04:07:48  <jfhbrook>or you could just use python for this one thing
04:07:54  <prometh>ew
04:08:03  <prometh>i'm anxiously waiting for gyp to disappear
04:08:05  <charmander>python’s a nicer language than JS in many ways
04:08:06  <jfhbrook>don't get me wrong node's great, but python isn't bad at all
04:08:14  <prometh>too much tech
04:08:17  <charmander>anyway, sorry, I’m commenting without context
04:08:24  <charmander>what are you writing an FDW for?
04:08:27  <jfhbrook>its concurrency story is garbage but its stdlib is p good and it's incredibly consistent considering
04:08:28  <prometh>i am not
04:08:33  <prometh>i just wish js had one
04:08:37  <prometh>since graphql is redundant
04:08:39  <jfhbrook>I'm not charmander I was just saying "these are cool and I've been wanting to play with them for some time"
04:08:49  <charmander>jfhbrook: oh I thought prometh was
04:08:53  <prometh>nope
04:08:58  <charmander>given the “leaves me out”
04:09:03  <jfhbrook>nah prometh wants to replace graphql with sql over http
04:09:03  <prometh>well, if i could help
04:09:27  <jfhbrook>and I said that in some ways writing the thing that would parse ansi sql and forward the requests to your backing datastore
04:09:35  <jfhbrook>would be similar to writing a fdw most likely
04:10:09  * smccarthyquit (Remote host closed the connection)
04:10:15  <charmander>maybe use graphql which already exists
04:10:25  <prometh>i don't want to follow facebooks redundant crap
04:10:34  <charmander>it’s not sounding very redundant
04:10:42  * smccarthyjoined
04:10:45  <prometh>graphql is just an sql fdw ripoff
04:10:48  <jfhbrook>so here's why part of me is tickled: you can browserify knex
04:11:01  <charmander>although the cases when you’ll want this rather than an actual nice API are few
04:11:16  <prometh>knex > graphql
04:11:16  <charmander>so don’t worry: you probably won’t have to use Facebook’s thing anyway
04:11:24  <charmander>that doesn’t even make sense as a comparison
04:11:36  <prometh>use knex in an spa to form an sql query to an fdw
04:11:46  <prometh>no graphql necessary
04:11:48  <prometh>and using standard tech
04:11:52  <charmander>okay that’s not what fdws are either
04:11:54  <prometh>not trendy kiddie crap
04:12:19  <prometh>an fdw http endpoint
04:12:26  <charmander>prometh: do you have an actual project you’re intending to not use graphql for?
04:12:31  <prometh>any spa
04:12:43  <prometh>no restful
04:12:50  <charmander>okay well for most spas you wouldn’t want graphql anyway
04:12:56  <prometh>why not?
04:13:01  <prometh>one endpoint.. it's cleaner
04:13:03  <charmander>because APIs are a lot nicer
04:13:08  <prometh>i don't agree
04:13:24  <prometh>too much server setup.. too many urls
04:13:44  <prometh>would rather have a function that does it in my spa
04:14:06  <charmander>you might be underestimating how much backend there is to graphql
04:14:27  <charmander>and/or overestimating how much work setting up an equivalent RESTy structure would be
04:14:44  <charmander>p.s. don't write SPAs
04:14:56  <prometh>i won't take that advice
04:15:14  <charmander>i assume that of most things i say to you
04:15:20  <prometh>not at al
04:15:49  <charmander>no, it's very much the case
04:15:59  <charmander>but there's hope that the ideas will register on some level
04:16:09  <prometh>i listen to a lot that you say
04:16:19  <prometh>but "dont' write SPA" is silly.. and i don't feel like going into it
04:16:41  <jfhbrook>I agree, I said similarities to fdws, not that these concepts were actually the same
04:16:45  <prometh>regarding graphql, i understood it to be some kind of translation to sql
04:16:52  <jfhbrook>it's not
04:17:04  <jfhbrook>it's a query language centered around querying a graph
04:17:15  <prometh>are relational databases not graphs?
04:17:17  <jfhbrook>it just usually happens that your data is stored in a sql db, because that's common
04:17:18  <charmander>(a graph that may not look like your database! hence the "how much backend")
04:17:21  <jfhbrook>relational dbs are tables
04:17:23  <supervolting>who what?
04:17:24  * masterpeezjoined
04:17:37  * supervoltingenters the convo
04:18:08  <prometh>ok, well i like the idea of having a single endpoint for a data api
04:18:12  <jfhbrook>you can build data structures on top of tables and join keys that end up being graph-like data
04:18:25  <charmander>prometh: expanding now on the other point: if you can live with raw database output – which you can’t and which is also not what graphql does – then just name a bunch of queries on your backend and let your frontend use them by name
04:18:28  <prometh>whicha ccepts queries for customizing and joining requests
04:18:32  <jfhbrook>yeah and that's fine--personally I think there are advantages and disadvantages for both rest and graphql
04:18:32  * bradfordli123joined
04:18:40  <jfhbrook>rest lends itself well to comfortable writes
04:18:47  <prometh>charmander: i wouldn't want raw db output.. i would want json
04:19:06  * WebertRLZjoined
04:19:07  <jfhbrook>in general you don't want json
04:19:14  <charmander>you don't?
04:19:31  <charmander>anyway, whatever it is you do want, you will want it restructured compared to what comes out of your queries
04:19:34  <jfhbrook>no I mean what you *want* is an in-memory representation of enough of the data to work with
04:19:40  <charmander>so you define a flexible restructuring language and you get graphql
04:19:41  <jfhbrook>while having the ability to somehow acquire the rest
04:19:56  <charmander>or you define an inflexible but very neat restructuring language and you get some nice HTTP endpoints
04:19:57  <jfhbrook>json is an implementation detail, but more importantly large result sets don't lend themselves well to single payloads
04:20:07  * horseyjoined
04:20:35  <charmander>in the end: SQL on the client is non-optimal. recommend not pursuing it
04:21:00  <prometh>how is graphql better?
04:21:11  <charmander>and indeed i don't recommend graphql either for the vast majority of cases (unless you're SEDE, maybe?)
04:21:21  * iFirequit (Ping timeout: 248 seconds)
04:21:31  * autoferritquit (Ping timeout: 246 seconds)
04:21:44  * iFirejoined
04:21:46  <charmander>if writing a normal RESTy API like most people do is too hard, maybe that it's hard is the problem to fix
04:21:48  <prometh>it's neater to have a single endpoint.. it's faster to make one, customized request, than multiple
04:21:51  <charmander>and abandoning the structure entirely is not
04:21:53  <jfhbrook>graphql is good because you can fetch everything to populate your front page with one call
04:22:12  <charmander>prometh: make one, customized endpoint that serves all those data
04:22:19  <prometh>too granular
04:22:33  <charmander>“but char, it’s not clean!” neither’s your spa
04:22:38  <charmander>deal
04:22:43  <jfhbrook>sure, you could make bespoke endpoints
04:22:53  <prometh>i don't want a million endpoints
04:22:56  <jfhbrook>but I think there's a reason that people eventually say, man I'm sick of bespoke endpoints
04:23:20  <charmander>they are fatigued by having something too predictably functional i expect
04:23:31  <jfhbrook>like for example, netflix, they looked into adding scripting layers for their FE devs to make these kind of APIs in a PaaS for controllers basically
04:23:38  <jfhbrook>and then got grouchy about that
04:23:41  <jfhbrook>and then wrote falcor
04:23:52  <jfhbrook>and idk that falcor took over everything, like the timeline is unclear
04:24:02  <jfhbrook>but you can see that they at least flirted with the idea that this wasn't so great
04:24:08  * h12ojoined
04:24:22  <jfhbrook>(I spent an evening researching them when a recruiter reached out one time and the linked talks looked interesting)
04:24:51  <jfhbrook>and of course, I'm pretty sure facebook actually uses the graph api
04:24:57  <jfhbrook>er, graphql
04:25:08  <prometh>but i don't want to build a social network
04:25:08  <jfhbrook>though, interestingly enough, the graph api we use at work is restful
04:25:25  <jfhbrook>no, but you might want to build a dashboard, or a blog
04:25:28  <charmander>build those transformations on the backend with the same API and you’ve saved a lot of work
04:25:34  <prometh>relational databases work fine for that
04:25:39  <prometh>and i just want to query the damn thing
04:25:40  <charmander>then downgrade to regular SQL and it doesn’t look as nice but it’s at least extremely normal
04:26:01  <jfhbrook>you don't though, like that's why ORMs exist
04:26:07  <jfhbrook>and why you have controllers even though you have models
04:26:14  <prometh>ORMs are too abstract
04:26:16  <prometh>(for me)
04:26:24  <jfhbrook>how are they too abstract? I feel like you're just saying that
04:26:32  <charmander>ORMs are bad, MVC makes no sense, etc.
04:26:34  <jfhbrook>that's like saying that rest is too abstract
04:26:35  <prometh>it's an extra layer of abstraction that i have to hold in my head
04:26:43  * NomadJim_quit (Read error: Connection reset by peer)
04:26:48  * chjjquit (Ping timeout: 240 seconds)
04:26:49  <jfhbrook>abstractions are good
04:26:50  <prometh>i'd rather have a function with a query in it
04:26:55  <prometh>not always, but usually
04:27:11  <jfhbrook>like yes you should choose abstractions based on utility, but ORMs are relatively high utility, as are REST apis
04:27:23  <prometh>i prefer knex
04:27:32  <jfhbrook>knex isn't all that different from an ORM
04:27:34  <prometh>i looked at Objection and i was having difficulty following
04:27:41  <prometh>knex made /instant/ sense
04:27:41  <charmander>query builders are very different from orms
04:27:49  <jfhbrook>and you still need code that takes arrays of arrays, or arrays of flat objects, and presents them to your user in a useful way
04:28:05  * justelexquit (Ping timeout: 240 seconds)
04:28:09  * titankillerjoined
04:28:18  <prometh>you write a function to format the data
04:28:31  <prometh>it makes the queries, with any necessary joins, and formats
04:28:35  <prometh>(if even necessary)
04:28:41  <jfhbrook>how is that any better than an orm?
04:28:45  <prometh>it's clearer
04:28:47  <jfhbrook>I feel like you're just being intellectually lazy
04:28:47  * NomadJimjoined
04:28:53  <prometh>i can see what the heck it's doing
04:29:00  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:29:06  <charmander>^, this is important
04:29:06  <jfhbrook>if you spent a few hours learning an orm, you'd also very easily see what it's doing
04:29:10  <jfhbrook>in fact it might be easier
04:29:22  * h12oquit (Ping timeout: 255 seconds)
04:29:26  <charmander>orms tend to make it very easy to write bad queries, and too many of them
04:29:32  <jfhbrook>"this thing is hard to learn, therefore it must actually be bad", that's what I'm hearing from you
04:29:55  <prometh>i sometimes rely on my laziness to guide me away from things that are unnecessarily complex
04:30:20  <jfhbrook>there are legitimate reasons to dislike ORMs--they're not always the right abstraction, or they make assumptions about how you're using tables, or their particular mental model for dirty state are less than ideal, whatever
04:30:24  <jfhbrook>it's a bad guide prometh
04:30:30  * pgmquit (Quit: pgm)
04:30:36  <prometh>it works for me.. iw as right about a lot of things, such as angular 1.x
04:30:39  <prometh>i knew it from day one
04:30:40  <jfhbrook>some things that are hard are worth learning, and some things that are easy turn out to be bad habits
04:30:42  <prometh>no one agreed wtih me
04:30:53  <prometh>i didn't need 10 pages of scientific facts.. i just knew
04:30:54  <prometh>i'm happy with that
04:30:55  <jfhbrook>angular 1 was worth learning
04:30:59  <jfhbrook>even if it wasn't good
04:30:59  <prometh>nah, it sucked.
04:31:04  <prometh>waste of energy
04:31:05  * notdanielquit (Quit: Leaving)
04:31:07  <jfhbrook>I'm not saying it was good, but it had a lot of good ideas
04:31:25  * notdanieljoined
04:31:31  <jfhbrook>it pioneered that sort of pseudo-html component-y thing that's implemented albeit differently in react
04:31:44  <charmander>I don’t know about prometh’s method, but I do agree in that I’ve never come across a project that benefitted from an ORM
04:31:45  <prometh>mm no, that was web components
04:31:49  <jfhbrook>and its main mistake was bidirectional data binding--react + flux solve this differently
04:32:21  <prometh>attribute directives were weird
04:32:30  <prometh>element directives were just web components
04:32:39  <charmander>most of my time is spent cleaning up after bad queries in dependencies making use of Django’s pervasive ORM, in fact =/
04:32:42  <jfhbrook>my point is that "angular 1 looks hard therefore I'm not going to learn it" isn't a useful instinct
04:32:46  <jfhbrook>because it had a lot of good lessons
04:32:58  <prometh>i did well not learning it.. the industry made a mistake following teh hype
04:33:01  <prometh>i didn't buy it
04:33:07  <jfhbrook>idk charmander I've seen shitty queries written in all kinds of contexts
04:33:14  <jfhbrook>they didn't make a mistake
04:33:16  <jfhbrook>though
04:33:26  <prometh>how much garbage code had to be rewritten ?
04:33:29  <jfhbrook>many people were very pleased with angular 1 and migrated to angular 2
04:33:36  <prometh>total rewrites
04:33:39  <prometh>wasted resources
04:33:45  <jfhbrook>I mean, npm's been ship of theseus'd at least once
04:33:46  <prometh>canjs was better.. and consistent
04:33:53  <jfhbrook>but you don't see people saying that learning npm 1 was a mistake
04:34:06  <jfhbrook>I have no idea what canjs is and I kinda don't care, you're missing the point
04:34:16  <prometh>you like popular stuff
04:34:18  <jfhbrook>you should evaluate technologies not based on how hard it looks to learn
04:34:19  <prometh>i like simple stuff
04:34:21  * cotkoquit (Quit: Konversation terminated!)
04:34:27  <jfhbrook>you should evaluate technologies based on whether their ideas are good
04:34:35  * sternsquit (Ping timeout: 240 seconds)
04:34:38  <prometh>overly-complex is not good
04:34:48  <jfhbrook>you're confusing "overly-complex" for "looks hard"
04:35:02  <prometh>my proejcts are easy to learn
04:35:03  <jfhbrook>you haven't evaluated any of these technologies to actually make that assessment
04:35:13  <prometh>if someone else can't produce the same quality, i don't use it
04:35:28  * smccarth_joined
04:35:30  <jfhbrook>I don't mean to be rude, but you're all talking about not being able to find work
04:35:43  <prometh>yes
04:35:44  <jfhbrook>could it be because you're so quick to dismiss proven technologies, and then reinvent the wheel?
04:35:53  <prometh>i don't think so
04:36:12  <jfhbrook>like if I was hiring a front-end engineer, I would look for someone that's worked in industry with industry standard libraries, or at least be excited to learn whatever I'm using
04:36:25  <jfhbrook>you're coming here with an attitude that really common *concepts* aren't worth learning
04:36:27  <prometh>i would pretend to be excited to learn what you're using
04:36:49  <jfhbrook>like what if my project is a django app with a backbone-based frontend with a partial rewrite towards react components?
04:36:52  * sternsjoined
04:37:02  <prometh>i'd say "i am really intersted in react!"
04:37:11  <jfhbrook>what about django?
04:37:15  <jfhbrook>django has an orm
04:37:19  <jfhbrook>and not even a very good orm
04:37:26  * pgmjoined
04:37:28  <prometh>"haven't used it, but it might help to learn that too for the transition"
04:37:28  <ljharb>(you already said "orm")
04:37:31  <jfhbrook>(there aren't that many great orms)
04:37:37  <ljharb>^
04:37:44  <prometh>i'd leave out my distate for orms
04:37:50  <prometh>i'd turn on my sales game, man
04:38:03  <jfhbrook>but you not even knowing these things hurts you on the job market
04:38:08  <jfhbrook>your willful ignorance
04:38:14  <prometh>frontend needn't /know/ django
04:38:15  <jfhbrook>that's what I see here
04:38:15  <charmander>> @jfhbrook | idk charmander I've seen shitty queries written in all kinds of contexts
04:38:18  <charmander>oh yep definitely!
04:38:25  <charmander>orms hide it though
04:38:42  * pskjoined
04:38:43  <charmander>with more explicit queries it tends to be obvious that something is wrong
04:38:44  <jfhbrook>prometh, when I say frontend I mean what most people do when they say full stack
04:38:56  <jfhbrook>most real world apps are SOAs
04:38:57  * smccarthyquit (Ping timeout: 248 seconds)
04:39:02  <prometh>i'm not the most curious programmer in teh world... i only want to learn what i need.. i don't want every tool under the sun, i want a small toolbox
04:39:08  <jfhbrook>and the "front end" has server side rendering of some kind
04:39:18  <prometh>most "full stack" guys dont' even know html or css
04:39:27  <prometh>"div and links.. that's all there is"
04:39:35  <jfhbrook>I disagree
04:39:39  <charmander>that doesn't sound true
04:40:12  <prometh>my experience has been that fullstack guys are backend guys who were forced onto frontend because SPAs got popular
04:40:20  * tarkusjoined
04:40:23  <prometh>and they don't want to learn or work with html and css
04:40:27  <prometh>and even want to avoid javascript
04:40:37  <jfhbrook>I disagree
04:40:45  <jfhbrook>I've always seen it go the other way
04:40:58  <jfhbrook>the backend teams get to keep their backends clean by implementing SOAs
04:41:34  <DeltaHeavy>There's all sorts of fullstack people.
04:41:37  <jfhbrook>like a lot of people will touch a big presentation layer and you'll want people with strengths in different areas
04:41:38  <prometh>i'm frontend.. i write tools that transform svg
04:41:47  <prometh>i write html minifiers
04:41:56  <prometh>build tools that people just `npm install`
04:42:04  <DeltaHeavy>I write front end and most of what I do is 80% what I'd write on the backend too.
04:42:09  <prometh>and then go create a rest api and say "i'm smarter!"
04:42:19  <jfhbrook>but I'm talking about people that know js on the client really well, can manage an asset pipeline, and aren't afraid to write basic framework controllers
04:42:31  <prometh>i have different interests
04:42:33  * goodenoughquit (Remote host closed the connection)
04:42:36  <prometh>that's why i haven't done much backend
04:42:55  <prometh>and now that i need to learn some, and am somewhat interested, i don't want to dive into teh deepest ocean
04:43:00  <jfhbrook>and that's a thing that you could do, if you didn't just reject common patterns wholesale because you're too lazy to learn something that isn't immediately obvious
04:43:12  <prometh>there are too many patterns, and i think they're too complex
04:43:18  <prometh>why have 100 endpoints when you can have 1?
04:43:26  <jfhbrook>the vast majority of these things look exactly the same
04:43:35  <DeltaHeavy>Frontend vs backend dev I don't find all that different personally.
04:43:39  <jfhbrook>you seen one of these apps you've seen them all, it's different variations on the same thing
04:43:40  <DeltaHeavy>There ARE differences but...eh
04:43:45  <DeltaHeavy>Assuming you're using Node
04:43:50  <doodadjs_>frontend needs some artistic aptitudes that I have not :)
04:44:01  <prometh>i used to be a designer
04:44:10  <prometh>still can do it, but not what i want to do all day
04:44:10  <jfhbrook>less artistic aptitude, more deep understanding of how css works
04:44:12  * MachinShinquit (Quit: leaving)
04:44:46  <jfhbrook>I gotta go to be but I'm just saying prometh you're calling really basic things "overly complex" but it sounds like you haven't properly evaluated them, and you're doing yourself a disservice by remaining willfully ignorant of these things
04:44:50  <jfhbrook>that's all
04:44:53  <jfhbrook>o/
04:44:59  * h12ojoined
04:45:03  <prometh>nite
04:45:35  <prometh>i should probably try to sleep now
04:45:44  <DeltaHeavy>prometh: have you made a frontend app that used a lot of endpoints and patterns like models and such?
04:45:46  <DeltaHeavy>Or stores?
04:46:06  <prometh>yeah, but i didn't do any backend
04:46:26  <prometh>it was written in ruby adn then python
04:46:27  * the_antquit (Ping timeout: 240 seconds)
04:46:38  <prometh>or, way back, .net
04:46:47  <DeltaHeavy>I find backends basically that but instead of dealing with AJAX calls you deal with DB calls and you set up routes as events.
04:46:54  <DeltaHeavy>like events*
04:47:00  <prometh>yep, i think i understand
04:47:14  <prometh>i just think that a single endpoint/event that can be customized is easier
04:47:19  <prometh>than it's less like an event and more like a function
04:47:33  <prometh>that accepts a config argument
04:47:40  * supervoltingquit
04:48:29  <prometh>like, i can accept rest apis, but i'm looking ahead at what the longest lasting skill is to learn
04:48:31  * Cabanossiquit (Ping timeout: 276 seconds)
04:48:38  <prometh>and i think that graphql inspires a single endpoint
04:48:59  <ljharb>graphql is most commonly built on top of restful APIs.
04:49:00  <prometh>but i think graphql is unnecessary... we could use an sql foreign data wrapper on a single http endpoint
04:49:20  * sibaquit (Quit: My Mac has gone to sleep. ZZZzzz…)
04:49:37  <DeltaHeavy>Events are just functions called when certain things happen
04:50:00  <prometh>yes, and you can set up global events on teh window/document object
04:50:07  <DeltaHeavy>If YOU don't have a use for GraphQL don't use it. That's probably why you think it's unnecessary. I haven't had a need for it yet, so I haven't bothered with it.
04:50:08  <prometh>and check the element target
04:50:18  * Cabanossijoined
04:50:27  <prometh>well, yes, i'm speaking gnerally
04:50:28  * h12oquit (Ping timeout: 276 seconds)
04:50:33  <DeltaHeavy>At work it might be nice but it wouldn't work with our environment. Our app is HUGE though with hundreds of API endpoints and it would be a lot of work to create specialised endpoints.
04:50:36  <prometh>if i needed to build facebook, i might use graphql
04:50:39  <DeltaHeavy>Well GraphQL isn't for general use.
04:50:55  <prometh>yes, but i think the configurable single endpoint is inspiring
04:51:00  <DeltaHeavy>So it's not "unnecessary" in general, it's unnecessary unless you have a need for it.
04:51:08  <prometh>it's generally unnecessary
04:51:13  <prometh>but the signle endpoint may not be
04:51:24  <prometh>a single endpoint that instead accepted sql is interesting
04:51:43  <DeltaHeavy>And dangerous as hell :p
04:51:47  <prometh>no more than graphql
04:51:49  * guardianxxjoined
04:52:02  <prometh>this is where a foreign data wrapper comes in
04:52:08  <DeltaHeavy>Naw
04:53:26  <prometh>anyway, bed time
04:53:29  <prometh>nite
04:53:36  * promethquit (Quit: My Mac Mini has gone to sleep. ZZZzzz…)
04:55:00  * ahrsquit (Remote host closed the connection)
04:56:10  * ahrsjoined
04:56:21  * hndkjoined
04:57:37  * pankajquit (Ping timeout: 276 seconds)
04:58:33  * zwaragjoined
05:05:33  * masterpeezquit (Remote host closed the connection)
05:05:39  * DaffzDuckquit (Remote host closed the connection)
05:06:20  * h12ojoined
05:06:25  * leptonequit (Remote host closed the connection)
05:06:38  * kiki`quit (Quit: Connection closed for inactivity)
05:07:05  * pankajjoined
05:07:20  * sondr3joined
05:07:39  * EyePulpquit (Read error: No route to host)
05:08:07  * EyePulpjoined
05:08:09  * autoferritjoined
05:08:58  * upperdeckquit (Ping timeout: 255 seconds)
05:09:09  <DeltaHeavy>Should node-gyp be installed globally?
05:09:32  <DeltaHeavy>Trying to install scrypt-for-humans and it's throwing an error about 'gyp' not being installed when running 'node-gyp rebuild' on it's preinstall script
05:09:46  <DeltaHeavy>I'm on Windows 7
05:09:55  * EyePulpquit (Read error: No route to host)
05:09:56  * ob-sedjoined
05:10:27  * EyePulpjoined
05:11:04  * black-perl_joined
05:11:17  <systemfault>DeltaHeavy: You might need the "windows-build-tools" packages
05:11:30  <systemfault>IIRC< it must be installed globally using an admin console
05:11:37  * sondr3quit (Ping timeout: 255 seconds)
05:11:39  <systemfault>It will download a ton of stuff...
05:11:43  <DeltaHeavy>systemfault: Thanks! I'll look into that
05:11:46  <systemfault>Like python, compilers... etc
05:11:55  * h12oquit (Ping timeout: 276 seconds)
05:12:03  * black-perl_quit (Client Quit)
05:12:12  <DeltaHeavy>systemfault: https://github.com/felixrieseberg/windows-build-tools ?
05:12:28  <systemfault>Yeah
05:12:47  <DeltaHeavy>Awesome, installing now
05:14:34  <DeltaHeavy>I feel like this will probably work. Thanks so much!
05:14:48  <DeltaHeavy>Fucking hate devving on Windows 7 for this stuff lol
05:15:38  * upperdeckjoined
05:16:48  * kingarmadillojoined
05:18:49  * snowkidindquit (Quit: See Ya Later Alligator!)
05:19:35  * raynoldjoined
05:20:55  * sternsquit (Read error: Connection reset by peer)
05:21:18  * sternsjoined
05:22:08  * kingarmadilloquit (Ping timeout: 258 seconds)
05:22:25  * upperdeckquit (Ping timeout: 255 seconds)
05:22:31  * led1quit (Quit: led1)
05:23:18  * Bockjoined
05:24:50  * ArchNoobjoined
05:25:47  * doomhzjoined
05:26:49  * hndkquit (Quit: Leaving)
05:30:35  * doomhzquit (Ping timeout: 240 seconds)
05:30:38  * brent__joined
05:31:25  <nahtnam>https://gist.github.com/nahtnam/23a3da94b92c86ab8dbf5bf138f6fd47 Which of these systems is "better", and why?
05:32:58  * SirPolejoined
05:33:17  * tarkusquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:33:25  * goodenoughjoined
05:34:58  * wrkrcoopquit (Quit: wrkrcoop)
05:35:01  * autoferritquit (Ping timeout: 255 seconds)
05:35:19  * brent__quit (Ping timeout: 276 seconds)
05:38:33  * nomoney4mejoined
05:38:50  * lpinjoined
05:39:24  * lordjancsojoined
05:39:34  * titankillerquit (Ping timeout: 255 seconds)
05:40:19  * glebihanjoined
05:40:40  * EyePulpquit (Read error: Connection reset by peer)
05:40:46  * EyePulp_joined
05:40:59  * glebihanquit (Max SendQ exceeded)
05:41:12  * upperdeckjoined
05:42:00  * glebihanjoined
05:42:36  * barhum2013joined
05:43:13  * pankajquit (Ping timeout: 258 seconds)
05:43:18  * smccarth_quit
05:44:18  * led1joined
05:45:25  * bobbydooglejoined
05:45:47  <bobbydoogle>any good way to sync a whole folder on command in node, like rsync, I wasn't seeing that fs can do that.
05:45:53  * pankajjoined
05:46:20  <GreenJello>bobbydoogle, I'm sure there's a package for it
05:46:32  <GreenJello>node core apis don't do fancy things like that
05:46:34  * tomkuquit (Ping timeout: 246 seconds)
05:46:35  <bobbydoogle>GrennJello! I saw this, but it didn't look too active: https://www.npmjs.com/package/rsync
05:47:00  <GreenJello>bobbydoogle, looks like it just runs rsync
05:47:31  * EyePulp_quit (Read error: Connection reset by peer)
05:47:31  <bobbydoogle>I'll give it a shot, rsync has worked well for me elsewhere.
05:48:19  * EyePulpjoined
05:48:28  * pgmquit (Quit: pgm)
05:49:25  <GreenJello>yeah, this package looks fine
05:49:47  * barhum2013quit (Quit: barhum2013)
05:50:19  * barhum2013joined
05:50:42  <bobbydoogle>Thanks for checking it out, appreciate your .02.
05:51:03  * pskquit
05:55:25  * indistylojoined
05:56:50  * neoncontrailsquit (Remote host closed the connection)
05:57:35  * Silencedjoined
06:00:05  * subhojit777joined
06:00:50  * tvwjoined
06:01:30  * EyePulpquit (Read error: Connection reset by peer)
06:01:39  * Guest1292joined
06:01:53  <saul>how should i catch a promise failure
06:02:00  * EyePulpjoined
06:03:14  <GreenJello>saul, .catch?
06:03:27  <saul>oh wow
06:03:37  <saul>i only knew about .then
06:03:56  <bobbydoogle>GreenJello, works fantastic in first test :') go rsync.
06:04:00  * Guest1292quit (Client Quit)
06:04:09  * EyePulpquit (Remote host closed the connection)
06:04:17  * alexi5__quit (Ping timeout: 248 seconds)
06:04:45  <bobbydoogle>yeah saul, a tip if you have a bunch of nested promises, make sure they all return or reject, and then you can have one catch at the top level (if that suffices)
06:05:16  <saul>GreenJello: so would i put my whole .then chain inside of a try and catch ??
06:05:21  * EyePulpjoined
06:05:32  <bobbydoogle>saul no need to try catch
06:05:35  <GreenJello>saul, it's a method, like .then
06:05:40  <saul>ok
06:05:45  <GreenJello>saul, do some reading about promises, it's one of the basics
06:05:54  <saul>https://stackoverflow.com/questions/7310521/node-js-best-practice-exception-handling
06:06:23  <saul>GreenJello: i actually think i had read it months ago and forgot about it
06:06:37  <GreenJello>saul, that SO post doesn't talk about promises
06:07:07  <saul>GreenJello: they have .catch
06:07:30  <GreenJello>oh, second answer
06:08:54  * barhum2013quit (Quit: barhum2013)
06:11:25  * nodweberquit (Remote host closed the connection)
06:11:57  * zetetetetejoined
06:12:03  * doodadjsjoined
06:13:34  * bradfordli123quit
06:13:51  * iFirequit (Read error: Connection reset by peer)
06:15:18  * doodadjs_quit (Ping timeout: 268 seconds)
06:16:38  * Ardethian\joined
06:16:57  * iFirejoined
06:17:03  * neoncontrailsjoined
06:17:18  * howdoiquit (Quit: Connection closed for inactivity)
06:17:28  * Hoffmanpart ("part")
06:17:29  * systemfaultquit (Quit: Bye!)
06:18:21  * Ardethianquit (Ping timeout: 240 seconds)
06:18:40  * barhum2013joined
06:19:07  * cagedwisdomquit (Ping timeout: 246 seconds)
06:20:43  * al-damiriquit (Quit: Connection closed for inactivity)
06:21:02  * jntmejoined
06:21:35  <nahtnam>https://gist.github.com/nahtnam/23a3da94b92c86ab8dbf5bf138f6fd47 Which of these systems is "better", and why?
06:23:16  * lordjancsoquit (Quit: Leaving)
06:24:23  * tarkusjoined
06:25:27  * alexi5__joined
06:28:35  * webnannersquit (Ping timeout: 240 seconds)
06:29:12  * webnannersjoined
06:30:15  * titankillerjoined
06:31:19  <jntme>Hello! :) I want to be able to login onto a session (local auth) with a user and then make requests to my REST API with that user. How do I handle the API requests? Is local auth enough or do I somehow have to send an API key with the local auth? How's the standard procedure here?
06:31:53  <ShockingIsntIt>Hi all, I have a JSON thats usable in a copy pasta but not out of the code itself? https://codepaste.net/dzenq3
06:32:12  * jntmequit (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:33:06  * Silencedquit (Quit: ZNC 1.6.2 - http://znc.in)
06:33:53  * cagedwisdomjoined
06:34:20  <geirha>I don't see any json in there
06:35:18  * tkorejoined
06:35:24  * krekjoined
06:35:32  * krekquit (Max SendQ exceeded)
06:36:03  * krekjoined
06:36:23  <ShockingIsntIt>its a response from a REST api
06:37:54  <ShockingIsntIt>im about to copy and paste the response 'body' of what i want then use the object reference but not if i use it straight off of the variable
06:38:06  <ShockingIsntIt>not about -- able
06:38:23  * rememberYoujoined
06:38:33  * krek_joined
06:39:28  * jntmejoined
06:39:43  <jntme>back again
06:39:52  * krekquit (Read error: No route to host)
06:40:26  <geirha>are you sure it's an object?
06:40:49  * roomcayzjoined
06:42:19  * lordjancsojoined
06:42:21  <jntme>ShockingIsntIt I don't get your snippet. Are you able to create a https://gist.github.com/
06:43:07  <ShockingIsntIt>sorry on my slow responses
06:43:28  * krek_quit (Ping timeout: 255 seconds)
06:43:28  <ShockingIsntIt>i dont have a gist, im on cloud nine right now
06:44:29  <geirha>well, my guess is the REST service is returning JSON, but you never parse it into a javascript object
06:44:34  * goodenoughquit (Remote host closed the connection)
06:44:40  <ShockingIsntIt>if i use the variable from the ajax call, it returns undefined for something like data.sequence
06:44:59  <geirha>your test2 works because you injected the json directly into your javascript code, which happens to work
06:45:01  <ShockingIsntIt>but if i copy and paste the same thing into the code and console log data.sequence, it logs out the right thing
06:45:31  * WebertRLZquit (Ping timeout: 276 seconds)
06:45:46  <geirha>var test = '{"sequence":123}' vs var test2 = {"sequence":123}
06:46:13  * nodweberjoined
06:46:17  * lpinquit (Read error: Connection reset by peer)
06:46:21  * wonko7joined
06:46:24  <ShockingIsntIt>huh
06:46:35  * lpinjoined
06:47:26  <ShockingIsntIt>maybe i should console log out the type eh?
06:48:10  * dongustonquit (Ping timeout: 240 seconds)
06:48:59  * Cabanossiquit (Ping timeout: 246 seconds)
06:49:18  <ShockingIsntIt>lmao its a string
06:49:27  <ShockingIsntIt>good call
06:49:54  * DeltaHeavypart ("Leaving")
06:50:04  * justelexjoined
06:50:20  * Cabanossijoined
06:50:32  * goodenoughjoined
06:51:51  * chjjjoined
06:53:02  * cotkojoined
06:53:58  * ^escquit (Ping timeout: 276 seconds)
06:55:35  * ^escjoined
06:55:43  * h12ojoined
06:56:01  * upperdeckquit (Read error: Connection reset by peer)
06:56:27  * Lippjoined
06:56:37  * Lippquit (Remote host closed the connection)
06:57:23  * WebertRLZjoined
06:57:48  * rendarjoined
06:58:54  * ^escquit (Client Quit)
06:59:49  * ^escjoined
07:00:05  * h12oquit (Ping timeout: 240 seconds)
07:00:17  * alexi5__quit (Ping timeout: 248 seconds)
07:00:57  * ArikuXquit (Ping timeout: 240 seconds)
07:01:12  * upperdeckjoined
07:01:51  * smc9115joined
07:02:45  * Hellz2Kjoined
07:02:45  * Hellz2Kquit (Client Quit)
07:03:46  * guardianxxpart
07:03:50  * zwaragquit (Ping timeout: 240 seconds)
07:05:16  * Booster2ooojoined
07:08:59  * the_antjoined
07:10:51  * dongustonjoined
07:11:40  * lemonsparrowquit (Ping timeout: 260 seconds)
07:12:31  * Lippjoined
07:12:38  * chalker_quit (Read error: No route to host)
07:12:40  * ChALkeRjoined
07:13:46  * cesconixjoined
07:16:06  * zxcquit (Read error: Connection reset by peer)
07:16:52  * nodweberquit (Remote host closed the connection)
07:17:27  * Lippquit (Ping timeout: 240 seconds)
07:17:57  * kingarmadillojoined
07:18:49  * smc9115quit (Quit: Mutter: www.mutterirc.com)
07:19:38  * nodweberjoined
07:19:39  * karmahackerjoined
07:21:54  * chargenjoined
07:22:43  * chargenquit (Client Quit)
07:22:48  * ArikuXjoined
07:22:57  * kingarmadilloquit (Ping timeout: 260 seconds)
07:24:16  * goodenoughquit (Remote host closed the connection)
07:25:57  * aseadayjoined
07:26:16  * nschoejoined
07:26:59  * doomhzjoined
07:28:33  * chreladjoined
07:29:05  * nschoequit (Client Quit)
07:29:06  * kakashiALjoined
07:29:28  * nschoejoined
07:31:20  * doomhzquit (Ping timeout: 246 seconds)
07:33:31  * goodenoughjoined
07:34:13  * SuperHansjoined
07:34:34  * Cabanossiquit (Ping timeout: 264 seconds)
07:35:23  * Cabanossijoined
07:36:56  * kakashiALquit (Ping timeout: 246 seconds)
07:39:25  * chargenjoined
07:42:41  * barhum2013quit (Quit: barhum2013)
07:43:06  * ahmedelgabrijoined
07:43:52  * SirPolequit (Read error: Connection reset by peer)
07:43:57  * noraatepernosjoined
07:44:18  * SirPolejoined
07:45:46  * coot__________joined
07:47:36  * jntmequit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:48:32  * leptonejoined
07:48:57  * cotkoquit (Ping timeout: 240 seconds)
07:49:21  * ArchNoobquit (Ping timeout: 240 seconds)
07:52:57  * pankajquit (Quit: Leaving)
07:53:28  * nodweberquit (Remote host closed the connection)
07:53:29  * pankajjoined
07:53:45  * nodweberjoined
07:54:28  * tarkusquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:59:08  * Relequestualjoined
08:02:07  * ok91joined
08:03:28  <alextes>I have a module reading a file line by line, executing some function for each line, and have it return a promise for when it is done or errors out. This feel bad.
08:03:39  <alextes>seems a generator lends itself much better to this flow
08:03:51  <alextes>but that's pull, streams seem to be more push
08:03:59  <alextes>how would you deal with this?
08:04:01  * zetetetetequit (Quit: Leaving)
08:04:03  * kakashiALjoined
08:06:51  * agnatquit (Quit: agnat)
08:08:55  * wtrockijoined
08:09:23  * barhum2013joined
08:09:41  * goodenoughquit (Remote host closed the connection)
08:10:08  * sondr3joined
08:10:41  * SuperHansquit (Remote host closed the connection)
08:11:24  * cotkojoined
08:13:00  * PiotrekRjoined
08:13:28  * sibajoined
08:14:13  * fastmanchanged nick to CaptainJack2
08:14:23  * CaptainJack2changed nick to fastman
08:14:46  * sondr3quit (Ping timeout: 255 seconds)
08:15:21  * microdexjoined
08:15:22  * praisethemoonjoined
08:16:59  * sbellinajoined
08:17:36  * _yoy_quit (Quit: Leaving...)
08:17:44  * huckbitjoined
08:18:28  * cagedwisdomquit (Ping timeout: 240 seconds)
08:18:39  * kingarmadillojoined
08:18:53  * YoYjoined
08:22:29  * Defenestratequit (Remote host closed the connection)
08:23:38  * Defenestratejoined
08:23:38  * Defenestratequit (Changing host)
08:23:38  * Defenestratejoined
08:23:40  * cesconixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:23:46  * kingarmadilloquit (Ping timeout: 255 seconds)
08:25:34  * nd__joined
08:25:41  * cesconixjoined
08:26:22  * sersesjoined
08:26:32  * justelexquit (Ping timeout: 260 seconds)
08:26:54  * microdexquit (Remote host closed the connection)
08:26:59  <serses>"Unexpected token import " on node v8.2.1. Does anyone know how to fix this?
08:27:08  * computer2000quit (Quit: Leaving)
08:27:13  * upperdeckquit (Ping timeout: 246 seconds)
08:27:37  <GreenJello>serses, node doesn't support import syntax, you need babel to compile it to require(), or to not use import
08:27:58  <serses>GreenJello, ok thanks :)
08:28:26  * pankajquit (Quit: Leaving)
08:28:50  * pankajjoined
08:28:59  * SumoSudojoined
08:29:13  * cagedwisdomjoined
08:31:17  * chlljoined
08:31:42  * computer2000joined
08:32:26  * upperdeckjoined
08:33:22  * neoncontrailsquit (Remote host closed the connection)
08:37:23  * neoncontrailsjoined
08:42:15  * rememberYouquit (Remote host closed the connection)
08:42:15  * thunder-ltujoined
08:42:16  * justelexjoined
08:43:08  * noraatepernosquit (Quit: noraatepernos)
08:43:10  * SuperHansjoined
08:43:46  * SirPolequit (Read error: Connection reset by peer)
08:44:00  * rememberYoujoined
08:44:16  * jntmejoined
08:44:17  * h12ojoined
08:44:36  * SirPolejoined
08:44:58  * SirPolequit (Read error: Connection reset by peer)
08:45:28  * SirPolejoined
08:45:42  * Lockziquit (Changing host)
08:45:43  * Lockzijoined
08:46:48  * justelexquit (Ping timeout: 240 seconds)
08:46:57  * ok91quit (Ping timeout: 248 seconds)
08:47:18  * bongjovijoined
08:48:04  * justelexjoined
08:48:22  * thunder-ltuquit (Ping timeout: 276 seconds)
08:49:01  * Cabanossiquit (Ping timeout: 276 seconds)
08:49:21  * h12oquit (Ping timeout: 240 seconds)
08:50:03  * Cabanossijoined
08:53:51  * mh_joined
08:55:00  * cannapjoined
08:56:34  * Industrialjoined
08:57:11  * mezodjoined
08:59:08  * goodenoughjoined
08:59:29  * goodenoughquit (Remote host closed the connection)
09:00:00  * sersespart
09:00:50  * mr-foobarjoined
09:01:18  * ok91joined
09:02:18  * jntmequit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:03:17  * leptone_joined
09:03:40  * __oslobystormquit (Read error: Connection reset by peer)
09:03:53  * bobbydooglequit (Quit: Leaving)
09:04:02  * __oslobystormjoined
09:04:17  * wadadliquit (Remote host closed the connection)
09:04:46  * tarkusjoined
09:05:00  * __oslobystormquit (Read error: Connection reset by peer)
09:05:06  * NikNakFlakquit (Quit: Leaving)
09:05:42  * __oslobystormjoined
09:06:23  * kakashiALquit (Ping timeout: 258 seconds)
09:07:21  * leptonequit (Ping timeout: 268 seconds)
09:10:07  * leptone_quit (Remote host closed the connection)
09:10:34  * leptonejoined
09:12:33  * Ergojoined
09:13:37  * kakashiALjoined
09:14:00  * Cohedrin_joined
09:14:24  * Relequestualquit (Quit: Textual IRC Client: www.textualapp.com)
09:14:41  * leptonequit (Ping timeout: 248 seconds)
09:14:45  * jntmejoined
09:15:21  * toijoined
09:15:33  * jntmequit (Client Quit)
09:16:45  * noraatepernosjoined
09:17:07  * prillian5joined
09:17:17  * JakeSaysquit (Ping timeout: 260 seconds)
09:18:46  * darkSeid_joined
09:20:07  * noraatepernosquit (Client Quit)
09:21:07  * sibaquit (Quit: My Mac has gone to sleep. ZZZzzz…)
09:23:30  * cesconixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:25:25  * leptonejoined
09:26:36  * cesconixjoined
09:26:57  * kakashiALquit (Ping timeout: 240 seconds)
09:30:10  * barhum2013quit (Quit: barhum2013)
09:30:12  * kakashiALjoined
09:30:43  * jntmejoined
09:31:06  * leptonequit (Remote host closed the connection)
09:33:08  * Cabanossiquit (Ping timeout: 246 seconds)
09:35:01  * Cabanossijoined
09:35:44  * leptonejoined
09:37:59  * mezodquit (Remote host closed the connection)
09:39:22  * RLajoined
09:40:01  * jntmequit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:41:05  * leptonequit (Ping timeout: 255 seconds)
09:41:39  * toiquit (Ping timeout: 258 seconds)
09:44:56  * barhum2013joined
09:44:56  * barhum2013quit (Client Quit)
09:45:51  * barhum2013joined
09:46:18  * mj_kquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:46:32  * cotkoquit (Quit: Konversation terminated!)
09:47:05  * fatalhaltquit (Quit: fatal halt)
09:47:05  * sobersabrejoined
09:48:55  * brent__joined
09:50:13  * mr-foobarquit (Ping timeout: 255 seconds)
09:50:23  * pstef_joined
09:52:19  * wtrockiquit (Quit: Bye Bye ^^)
09:52:41  * mr-foobarjoined
09:53:09  * guardianxjoined
09:53:27  * brent__quit (Ping timeout: 260 seconds)
09:53:33  * goodenoughjoined
09:53:35  * ceborquit (Quit: ZNC - http://znc.in)
09:56:00  * ceborjoined
09:56:46  * alexi5__joined
09:57:55  * mscdexquit (Ping timeout: 276 seconds)
09:58:34  * goodenoughquit (Ping timeout: 276 seconds)
09:59:20  * ArchNoobjoined
10:02:44  * sibajoined
10:02:46  * Cabanossiquit (Ping timeout: 264 seconds)
10:03:28  * ok91quit (Ping timeout: 268 seconds)
10:05:03  * Cabanossijoined
10:07:29  * cagedwisdomquit (Ping timeout: 248 seconds)
10:07:46  * cagedwisdomjoined
10:08:01  * dre_joined
10:08:24  * tvwquit
10:08:38  * tvwjoined
10:09:00  * pgunnarsquit (Ping timeout: 260 seconds)
10:10:22  * mscdexjoined
10:11:22  * sondr3joined
10:11:49  * sbellinaquit (Ping timeout: 255 seconds)
10:12:35  * aseadayquit (Ping timeout: 255 seconds)
10:13:04  * ok91joined
10:13:37  * kakashiALquit (Ping timeout: 246 seconds)
10:15:52  * sondr3quit (Ping timeout: 255 seconds)
10:16:12  * alexi5__quit (Ping timeout: 260 seconds)
10:16:51  * zotune_joined
10:19:25  * SuperHansquit (Remote host closed the connection)
10:19:33  * kingarmadillojoined
10:19:50  * kakashiALjoined
10:20:01  * ed209quit (Remote host closed the connection)
10:20:07  * ed209joined
10:20:37  * mr-fooba_joined
10:21:14  * kunerdjoined
10:21:27  * mr-foobarquit (Ping timeout: 260 seconds)
10:21:52  * rememberYouquit (Remote host closed the connection)
10:24:27  * kingarmadilloquit (Ping timeout: 240 seconds)
10:25:10  * mylesborinsquit (Quit: farewell for now)
10:25:40  * mylesborinsjoined
10:25:48  * zz_KLUTCH-joined
10:28:04  * mezodjoined
10:29:36  * coot__________quit (Quit: coot__________)
10:30:29  * zz_KLUTCH-quit (Quit: ZNC - http://znc.in)
10:31:01  * zz_KLUTCH-joined
10:32:00  * rememberYoujoined
10:32:39  * MrAbaddonjoined
10:33:19  * h12ojoined
10:38:28  * h12oquit (Ping timeout: 246 seconds)
10:39:56  * cesconixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:41:38  * sibaquit (Quit: Textual IRC Client: www.textualapp.com)
10:41:45  * dre_quit (Quit: Leaving)
10:43:30  * doomhzjoined
10:46:33  * cesconixjoined
10:47:05  * cagedwisdomquit (Ping timeout: 240 seconds)
10:47:47  * goodenoughjoined
10:48:05  * Cohedrin_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:49:06  * doomhzquit (Ping timeout: 268 seconds)
10:49:40  * zhalla_joined
10:51:47  * thunder-ltujoined
10:52:31  * goodenoughquit (Ping timeout: 276 seconds)
10:52:31  * justelexquit (Ping timeout: 276 seconds)
10:54:41  * duzijoined
10:54:43  * darkSeid_quit (Quit: Textual IRC Client: www.textualapp.com)
10:56:19  * zxcjoined
10:56:59  * StucKmanjoined
10:57:01  * barhum2013quit (Quit: barhum2013)
10:57:07  * nmrp3joined
10:58:27  * prillian5quit (Ping timeout: 240 seconds)
10:58:43  <StucKman>is there any line profiler? the tick profiler does not give me enough info to find my bottlenecks...
10:59:40  * thunder-ltuquit (Ping timeout: 276 seconds)
11:00:16  * justelexjoined
11:01:37  * kakashiALquit (Ping timeout: 276 seconds)
11:01:42  * duziquit (Quit: Leaving)
11:02:13  * andrew9184quit (Quit: andrew9184)
11:02:48  * ok91quit (Ping timeout: 240 seconds)
11:02:55  * jntmejoined
11:03:44  * reBrainjoined
11:05:33  * AtumTjoined
11:05:36  * ok91joined
11:05:54  * zxc_joined
11:06:02  * bf_joined
11:06:59  * ssarahquit (Remote host closed the connection)
11:08:42  * zxcquit (Ping timeout: 260 seconds)
11:09:27  * wtrockijoined
11:09:44  * ssarahjoined
11:10:03  * rohanrhujoined
11:10:03  * agnatjoined
11:10:11  * ok91quit (Ping timeout: 255 seconds)
11:10:14  * agnatquit (Client Quit)
11:10:53  * Khrosjoined
11:11:02  * mezodquit (Remote host closed the connection)
11:11:17  * phutchins1joined
11:11:22  * cesconixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:12:57  * tomkujoined
11:13:43  * howdoijoined
11:16:19  <GreenJello>StucKman, are you using chrome dev tools?
11:17:08  * mezodjoined
11:18:18  <StucKman>GreenJello: no, I have a CLI to profile, I can't use a browser
11:18:30  * nmrp3quit (Remote host closed the connection)
11:18:39  * ok91joined
11:18:42  <StucKman>but thanks
11:19:01  * jntmequit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:20:30  * al-damirijoined
11:20:31  <GreenJello>StucKman, you can use chrome dev tools for node apps with the --inspect flag
11:20:40  * jntmejoined
11:21:07  * kakashiALjoined
11:21:29  * nmrp3joined
11:21:31  <GreenJello>might have to prevent the node app from exiting though, so throw in a setTimeout(() => {}, 1e15) or something
11:22:53  <StucKman>hmm, but this is a toll that processes a file for 17s and finishes...
11:22:58  <StucKman>tool*
11:23:00  * hextileXjoined
11:23:23  <GreenJello>that's fine
11:23:28  <StucKman>should I put the timeout at the begging and launch main from it?
11:23:47  <GreenJello>put it anywhere that runs
11:23:55  <StucKman>and how come a language depends on *browser* for profiling?
11:24:23  * SuperHansjoined
11:24:33  * jntmequit (Client Quit)
11:24:55  <GreenJello>a lot of work has been put into chrome dev tools, so it doesn't make sense to start from scratch
11:25:25  <GreenJello>also they both use the same engine
11:25:29  <GreenJello>v8
11:25:33  <StucKman>they could break it apart, I guess
11:25:46  <GreenJello>well it's built with web tech
11:25:49  <GreenJello>html, etc.
11:25:56  <StucKman>would the JIT work the same as with nodejs?
11:26:07  <StucKman>ugh
11:26:15  <GreenJello>yep, the code still executes in the node process I think
11:27:06  <StucKman>would work in chromium?
11:27:13  <RLa>afaik, node has two compilers in it, at least in version 8, crankshaft and turbofan
11:27:26  <GreenJello>haven't tried it in chromium, but probably
11:27:54  * rchavikquit (Quit: -)
11:28:05  * OnkelTemjoined
11:28:15  * jntmejoined
11:28:45  <GreenJello>my understanding is that there's a debugger protocol that messages go to/from chrome dev tools over
11:31:38  * samschjoined
11:33:16  * tarkusquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:35:02  * cagedwisdomjoined
11:35:12  * SuperHansquit (Remote host closed the connection)
11:35:24  * Khrosquit (Quit: Going offline, see ya! (www.adiirc.com))
11:35:41  * justelexquit (Remote host closed the connection)
11:35:58  * Khrosjoined
11:36:24  * justelexjoined
11:36:26  * d0rukjoined
11:36:30  * nmrp3quit (Ping timeout: 240 seconds)
11:36:42  * tarkusjoined
11:37:35  * the_antquit (Ping timeout: 240 seconds)
11:38:27  <StucKman>I'm a couple of releases back in chromium and it doesn't seem to have the --inspect option...
11:39:42  * xkapastelquit (Quit: Connection closed for inactivity)
11:39:57  * kakashiALquit (Ping timeout: 240 seconds)
11:40:11  * beefjoejoined
11:41:03  * cesconixjoined
11:41:17  <StucKman>nope, not the same thing at all
11:41:54  * goodenoughjoined
11:43:52  <StucKman>this is terrible
11:45:07  <StucKman>so I have to download a closed source software froma company I don't trust just to have a decent profiler?
11:45:43  * justelexquit (Remote host closed the connection)
11:46:10  * rememberYouquit (Read error: Connection reset by peer)
11:46:22  * goodenoughquit (Ping timeout: 246 seconds)
11:46:51  * kakashiALjoined
11:48:20  * ok91quit (Ping timeout: 240 seconds)
11:50:20  * Relequestualjoined
11:50:58  * coot__________joined
11:51:05  * justelexjoined
11:52:18  * kingarmadillojoined
11:54:41  <joepie91>StucKman: the --inspect flag is on Node.js, not on Chromium
11:54:55  <joepie91>StucKman: you can then connect to the Node.js process from Chromium DevTools' UI
11:55:11  <joepie91>also
11:55:14  <joepie91>[13:23] <StucKman> and how come a language depends on *browser* for profiling?
11:55:15  <joepie91>it doesn't
11:55:41  * cesconixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:55:47  <joepie91>1) the profiling in this case is provided by the runtime, not the language, and is runtime-dependent; 2) it's a generic protocol that any client can be written for, it's just that devtools are the canonically used implementation
11:55:50  * ArchNoobquit (Ping timeout: 240 seconds)
11:56:11  * KeyboardNotFoundjoined
11:56:23  * tarkusquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:58:55  <StucKman>the point is, noone seem to have written any other
11:59:11  * iamaregee2joined
11:59:27  * sternsquit (Ping timeout: 260 seconds)
11:59:35  <StucKman>and yes, the profiler *is* in chromium, just not initially available, you have to pick it from the 'more tools' menu
11:59:48  <StucKman>(neither in chrome, for that matter)
12:01:10  * horseyquit (Remote host closed the connection)
12:02:04  * guardianxpart
12:03:40  * ahmed_elgabrijoined
12:03:44  * ok91joined
12:04:05  * kakashiALquit (Ping timeout: 240 seconds)
12:04:40  * mezodquit (Remote host closed the connection)
12:05:58  * kakashiALjoined
12:07:16  * ahmedelgabriquit (Ping timeout: 276 seconds)
12:08:37  * cstlsjoined
12:08:37  * cstlsquit (Client Quit)
12:08:44  * Lippjoined
12:10:31  * sternsjoined
12:10:38  * ArchNoobjoined
12:12:28  * plutoniixquit (Quit: Leaving)
12:12:44  * praisethemoonquit (Ping timeout: 255 seconds)
12:14:01  <joepie91>StucKman: you're free to write one if you're unhappy about the one in chromium's devtools :)
12:15:15  * mj_kjoined
12:16:24  * reBrainquit (Quit: gg)
12:18:39  <StucKman>I would, but I'm busy finding an actual profiler tat works
12:18:40  <modernpacifist>Just remember, your first milestone will be to get to where chromium is now :)
12:19:41  * the_antjoined
12:19:45  <StucKman>It's just surprising, that's all,
12:20:40  <joepie91>I don't really see how it's surprising, though. from a general usability-and-effectiveness POV there's not a lot that can compete with Chromium's Developer Tools, even compared to other languages
12:20:51  <joepie91>so there's not much incentive to develop alternatives
12:22:07  <StucKman>I don't mean *alternatives*, just split the thing
12:22:13  <joepie91>split what thing?
12:22:41  <StucKman>yeah, ok, it doesn't make sense
12:23:04  * nmrp3_joined
12:23:43  <StucKman>ok, enough ranting/trolling, back to work
12:23:58  <StucKman>thanks for the pointers, and sorry for the rest
12:24:05  * StucKmanpart
12:24:50  * zhalla_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:25:07  * IrishGringo1joined
12:25:07  * justelexquit (Excess Flood)
12:25:39  * justelexjoined
12:27:09  * notdanielquit (Quit: Leaving)
12:27:21  * iamaregee2quit (Quit: Leaving.)
12:27:59  * iamaregee2joined
12:28:37  * kakashiALquit (Ping timeout: 260 seconds)
12:28:57  * Delta-Onequit (Read error: Connection reset by peer)
12:28:58  * zero___joined
12:32:37  <samsch>joepie91, I dunno, I think FF's dev tools are easier to work with than Chrome/Chromium's for the same functionality.
12:33:46  <joepie91>samsch: FF's dev tools are very tightly wired into FF internals though
12:33:52  <joepie91>not useful as general-purpose JS debugger
12:33:53  <joepie91>(iirc)
12:34:32  <samsch>That's probably true.
12:35:16  <samsch>But it would be nice if you could get to chrome's network tab with a shortcut, like `ctrl-shift-q in FF. That just closes Chrome.
12:35:28  * Lippquit (Remote host closed the connection)
12:36:05  * goodenoughjoined
12:36:53  <samsch>joepie91, Apparently you can do time travel debugging (step back) with chakra's debugger connected to Node.
12:37:27  <samsch>I have a feeling it was built just to give them a feature talking point to try to get more people to use chakra, but whatever.
12:37:55  * ukyrgfquit (Quit: Leaving)
12:38:43  * barhum2013joined
12:40:16  * goodenoughquit (Ping timeout: 246 seconds)
12:41:41  * raynoldquit (Quit: Connection closed for inactivity)
12:41:55  * Lippjoined
12:45:13  * doomhzjoined
12:45:27  * EyePulpquit (Ping timeout: 240 seconds)
12:45:51  * pankajquit (Quit: Leaving)
12:46:23  * wtrockiquit (Quit: I will be back! ^^)
12:46:42  * ok91quit (Ping timeout: 260 seconds)
12:47:58  * bf_quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/)
12:48:10  <Industrial>whats chakra
12:48:18  <Industrial>oh, microsoft :<
12:48:47  * KeyboardNotFoundquit (Quit: Leaving)
12:49:31  * Cabanossiquit (Ping timeout: 276 seconds)
12:49:35  * doomhzquit (Ping timeout: 240 seconds)
12:50:18  * Cabanossijoined
12:50:30  * kakashiALjoined
12:51:10  * cagedwisdomquit (Remote host closed the connection)
12:52:40  * sobersabrequit (Quit: WeeChat 1.7)
12:54:08  * ArchNoobquit (Ping timeout: 255 seconds)
12:55:12  * ephlipjoined
12:55:23  * barhum2013quit (Quit: barhum2013)
12:58:52  * cesconixjoined
12:59:20  * rememberYoujoined
13:00:07  * goodenoughjoined
13:02:22  * apparitionquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:02:32  * Felishiajoined
13:02:34  <Felishia>help
13:02:37  * titankillerquit (Remote host closed the connection)
13:02:41  <Felishia>can someone help me fix this script? https://gist.github.com/onzag/13bc08cd5170add2000b4f94716216f0
13:02:50  <Felishia>it's like commonjs but it does less
13:02:51  * ok91joined
13:03:07  <Felishia>the problem is that it hits an infinite loop sometimes
13:03:09  * PiotrekRquit (Quit: Ex-Chat)
13:03:27  * indistyloquit (Ping timeout: 240 seconds)
13:04:41  <synthmeat>Felishia: no clue. but it's "requirements", not "requeriments" :)
13:04:49  * goodenoughquit (Ping timeout: 258 seconds)
13:05:10  <Felishia>synthmeat: but I need to find bug :(
13:05:25  <Felishia>I don't see infinite loops so I don't understand shit
13:07:17  <jntme>is someone here building node apps with docker? how do you handle docker during the dev process? do you run everything locally until its finished and then copy it to the docker container?
13:07:31  * lowercasemanquit (Remote host closed the connection)
13:09:29  * tarwaterjoined
13:11:50  * ok91quit (Ping timeout: 240 seconds)
13:12:11  * bomb-onjoined
13:12:19  <synthmeat>i can' afford to run docker for development, with all the shit it brings down with it.
13:13:15  <synthmeat>ate 150GB (all laboriously purgable, of course. at cost of process afterwards) with basically a single multi-service project.
13:13:35  * praisethemoonjoined
13:13:35  <synthmeat>i'd need half a terra free for that and half a terra is all i already got
13:13:45  * rememberYouquit (Remote host closed the connection)
13:14:38  <synthmeat>jntme: so, to answer your question - yes, i run locally, without docker. i run solo though. might make sense to have dev in it too, if you have to share environments with colleagues
13:15:01  * rememberYoujoined
13:17:39  * DeltaHeavyjoined
13:20:42  * mr-foobarjoined
13:20:53  * ryzokukenjoined
13:22:09  * EyePulpjoined
13:22:57  * mr-fooba_quit (Ping timeout: 240 seconds)
13:25:53  * karmahackerquit (Remote host closed the connection)
13:26:59  * mezodjoined
13:30:20  * kakashiALquit (Ping timeout: 240 seconds)
13:30:22  * Chuguniyjoined
13:30:47  * IrishGringo1quit (Ping timeout: 246 seconds)
13:33:17  * tvwquit (Remote host closed the connection)
13:33:35  * Cabanossiquit (Ping timeout: 246 seconds)
13:34:31  * pankaj_joined
13:34:32  <Chuguniy>How do I replace this: https://paste.ee/p/SgJXj to use some kind of a loop to repeat function name to be launched in async?
13:35:25  * Cabanossijoined
13:35:33  * zhalla_joined
13:36:30  * bombquit (Ping timeout: 240 seconds)
13:36:50  * justelexquit (Ping timeout: 240 seconds)
13:38:07  * leptonejoined
13:38:19  * focodevjoined
13:38:42  * MrAbaddonquit (Ping timeout: 248 seconds)
13:39:15  * Avarayjoined
13:39:23  <focodev>building a fantasy sports live stat tracker, would you guys set up a websockets connection to handle pushing stats to connected users, something that is connected to by a user clicking "launch live stat tracker?" as well as your express api
13:39:35  <focodev>or how would you handle building the live stat tracker.
13:41:38  * wtrockijoined
13:41:45  * mezodquit (Remote host closed the connection)
13:42:20  * leptonequit (Ping timeout: 246 seconds)
13:42:27  * cesconixquit (Quit: Textual IRC Client: www.textualapp.com)
13:43:53  <synthmeat>focodev: yes, that's ideal case for load balancer directing to cluster of socket.io nodes (yes, you can hook up express there too for now), connected to redis (just a single small node would do) through socket.io-redis adapter
13:44:21  * Lippquit (Remote host closed the connection)
13:44:25  <synthmeat>though, to warn you, there's a few redis adapter issues outstanding, but i don't think you can't work around that for live stats tracker
13:44:40  <synthmeat>performance is very nice
13:44:49  * Lippjoined
13:45:06  <synthmeat>won't run a massive real-time physics game, but mostly because the latency. and that's probably not as important for you
13:45:38  <synthmeat>next step - make those socket.io nodes auto-scalable :)
13:45:55  <synthmeat>aws gives ya all this basically from the box
13:46:14  * MrAbaddonjoined
13:46:21  <synthmeat>ALB+ECS+ElastiCache
13:46:34  * kakashiALjoined
13:46:43  * SirPolequit (Ping timeout: 276 seconds)
13:46:56  <synthmeat>i broke the azure networking for my cluster the other day trying to push 1,000,000 to such a setup :D
13:46:59  <synthmeat>all flowing nice :)
13:47:49  * Avarayquit (Quit: Leaving)
13:49:04  * JakeSaysjoined
13:49:20  * Lippquit (Ping timeout: 240 seconds)
13:49:26  <focodev>I've got to find a better way to relate my tables
13:49:52  <focodev>I need a way to track each week of each season and allow users to make a team of 4 players.
13:49:52  <synthmeat>no tables. key-value. (though, technically, a table)
13:50:14  <samsch>A web sockets connection sounds appropriate. Don't use socket.io though.
13:50:23  * e64joined
13:50:31  <synthmeat>socket.io is perfectly fine. like mongodb, they've raised up their game
13:50:33  * mehale_at_officejoined
13:50:33  * calfeenjoined
13:50:39  * mehale_at_officepart
13:50:49  <samsch>synthmeat, As soon as the word "relation" is in there, using redis as your store doesn't make sense.
13:50:59  * mehalejoined
13:51:05  <synthmeat>samsch: yeah, he mentioned relation after my solution.
13:51:07  <samsch>For relational data, you use a relational database management system, such as Postgres.
13:51:17  * jscheeljoined
13:51:28  <mehale>folks, can anyone point me to the best way to read an http stream?
13:51:49  <synthmeat>anyways, redis is here as cache/msg layer, not for storing that data. you'd have a proper SQL behind for that, i assume, sure
13:51:53  <samsch>synthmeat, There isn't any reason to use socket.io. Current browsers all support web sockets, so it's fallbacks are largely pointless (unless you need to support quite old browsers).
13:52:00  <mehale>I found an example using watch. not sure if I should use it or http.get would do it
13:52:19  * hlvejoined
13:52:21  * ephlipquit (Ping timeout: 258 seconds)
13:52:32  <synthmeat>samsch: yes, there is. many reasons. all the features of it, adapters, alternate parsers, ... many reasons.
13:52:55  <synthmeat>for instance, to enable emits across nodes over redis, you don't even have to touch redis
13:53:00  <hlve>is this an appropriate place to ask for help with an npm error I'm hitting since ~friday?
13:53:05  * mr-foobarquit (Ping timeout: 248 seconds)
13:53:27  <samsch>hlve, Yes.
13:53:47  * apparitionjoined
13:54:23  * FreEm1nDjoined
13:54:42  <synthmeat>samsch: though, yeah, i just verified. definitely no need for polling fallback anymore. that's not the only feature of socket.io, is all i'm saying :)
13:54:46  * mezodjoined
13:54:48  * mr-foobarjoined
13:55:18  <hlve>sweet. so I'm having quite the nightmare with this project. Everything was working beautifully up until Friday. Not sure what changed really, the branch didn't have any changes. I'm running into build error after build error.
13:55:25  * titankillerjoined
13:55:53  <hlve>Friday, I started getting this error: Module not found: Error: Can't resolve 'webpack/hot
13:56:13  <joepie91>hlve: are there errors when running `npm install`, or only on runtime?
13:56:20  <focodev>I've used websockets before
13:56:25  <focodev>native websockets on client end is fine
13:56:30  * omnipotjoined
13:56:32  <focodev>wss on the back end is easy
13:56:34  <synthmeat>samsch: i have possibly updated my beliefs thanks to you. i'm now even considering writing next project with ws+uws myself
13:56:48  <synthmeat>i'd still recommend socket.io to a begginer
13:56:48  <hlve>joepie91, so my npm install looked different than before, but that error is being thrown on runtime
13:56:55  <joepie91>hlve: 'different' in what way?
13:57:04  <focodev>samsch, I am using Postgres
13:57:32  <focodev>I thought I had shit table design, but turns out there's probably not a better way to do it than to have separate tables for Leagues, Seasons, RaceResults, Weeks, Weekly_Teams
13:57:34  <hlve>sec. Getting a snippet. Something about farmhash?
13:58:10  <joepie91>hlve: fwiw, you can paste it into http://cryto.net/why-is-npm-broken/
13:58:22  <joepie91>hlve: and if there's an error in there somewhere it will likely find and explain it
13:58:34  <hlve>ah, awesome. thank you. Trying now.
13:58:37  * jntmequit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:58:38  <samsch>focodev, Have you ever dived into the normalization forms? There is some ok stuff on wikipedia.
13:58:47  <hlve>Have to somehow make my cmd prompt actually scrollback far enough.
13:59:02  * d0rukquit (Ping timeout: 260 seconds)
13:59:35  * jntmejoined
14:00:26  * pankaj_quit (Excess Flood)
14:00:30  * jntmequit (Client Quit)
14:00:50  * kakashiALquit (Ping timeout: 240 seconds)
14:00:57  * pankaj_joined
14:01:10  * jntmejoined
14:02:21  * Fishrock123joined
14:03:19  * ephlipjoined
14:03:46  * bdunavantjoined
14:05:25  * ensyde_part
14:06:02  * jntmequit (Ping timeout: 260 seconds)
14:06:20  * aseadayjoined
14:06:41  * Rapturejoined
14:08:00  <focodev>you tlaking about like 3N samsch?
14:08:08  * kakashiALjoined
14:09:22  <samsch>focodev, 3rd Normal Form is good, 4th is better: https://en.wikipedia.org/wiki/Database_normalization
14:09:29  * aseaday_joined
14:09:49  * aseaday_quit (Remote host closed the connection)
14:09:52  <samsch>Well, "better" being more normalized and less repetition of data.
14:10:26  * horseyjoined
14:10:45  * aseadayquit (Ping timeout: 268 seconds)
14:11:06  * aseadayjoined
14:11:37  * samschchanged nick to samsch_away
14:11:57  * LeBlaaancjoined
14:12:39  * aseaday_joined
14:13:40  * aseaday_quit (Remote host closed the connection)
14:13:54  <focodev>that sort of goes over my head, I mean I get it , you want to prevent data repretition in tables. but when I read normalization (I've studied it in class at grad school too) it's hard for me to look at a table and be like "Oh yea thats how to normalize this even further"
14:14:01  * praisethemoonquit (Ping timeout: 276 seconds)
14:14:15  * ArchNoobjoined
14:14:20  * mj_kquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:14:21  * aseaday_joined
14:14:56  * sondr3joined
14:15:27  * beerdropquit (Ping timeout: 240 seconds)
14:15:40  * aseadayquit (Ping timeout: 255 seconds)
14:16:21  * zhalla_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:16:45  * Axyjoined
14:16:51  * plutoniixjoined
14:18:38  * aseaday_quit (Remote host closed the connection)
14:19:10  * sondr3quit (Ping timeout: 240 seconds)
14:19:11  * promethjoined
14:19:19  * hextileXquit (Quit: hextileX)
14:19:34  * Lippjoined
14:19:51  * aseadayjoined
14:20:56  * rubasjoined
14:20:59  * lordjancsoquit (Quit: Leaving)
14:21:01  <rubas>Hello, Say Page A have src Image A, is Content-Length of Page A including Image A's Content-Length?
14:21:12  * BetaSouljoined
14:22:26  * lukebiggjoined
14:22:28  * lukebiggquit (Max SendQ exceeded)
14:24:01  * Lippquit (Ping timeout: 248 seconds)
14:24:16  * lukebiggjoined
14:25:42  * samsch_awaychanged nick to samsch
14:26:24  * zhalla_joined
14:27:01  * krekjoined
14:27:07  * krekquit (Client Quit)
14:27:19  <samsch>focodev, It's not a super easy subject to just "get", so don't feel bad. It's probably easiest if you have the chance to get hit with the problems that the lack of normalization presents in a practical way.
14:27:21  * beerdropjoined
14:27:33  * rubasquit (Remote host closed the connection)
14:27:37  * kakashiALquit (Ping timeout: 260 seconds)
14:28:01  * titankillerquit (Ping timeout: 268 seconds)
14:29:26  <focodev>how many JOIN clauses would you consider too bad lmao
14:29:31  <focodev>am I TOO normalied lmao
14:29:47  <RLa>with joins you won't webscale
14:30:02  <focodev>RLa elaborate please?
14:30:19  <samsch>"webscale" is a running joke in here.
14:30:25  <focodev>ah
14:30:40  <focodev>Guess I'm not here often enough lmao
14:30:57  <focodev>does that mean people are always concerned with scalability in here?
14:31:15  <focodev>so much so that they make trivial concerns seem way over blown?
14:31:44  <RLa>your original question was not good either
14:31:44  <joepie91>focodev: the narrative isn't entirely right but your points are correct to a degree
14:31:46  <joepie91>heh
14:31:58  <joepie91>focodev: 'webscale' is a joke about claims that MongoDB (the company behind it) used to make
14:32:01  <joepie91>it's a nonsensical term
14:32:02  <joepie91>buzzword
14:32:14  <RLa>Q: "how many are bad" A: 10 are bad
14:32:20  <joepie91>focodev: but yes, sometimes people that come here *are* overly concerned about 'performance' concerns that doesn't matter
14:32:37  * cannapquit (Quit: Leaving)
14:32:47  * horseyquit (Remote host closed the connection)
14:32:50  <joepie91>focodev: and there *is* a correlation with those people picking slow technologies that claim to be fast, or hard-to-scale technologies that claim to be scalable (such as eg. mongodb)
14:32:52  * SuperHansjoined
14:33:01  * cannapjoined
14:33:12  <RLa>focodev, there is more information here: https://www.youtube.com/watch?v=b2F-DItXtZs
14:33:23  <focodev>RLa, so how about the question restated as such, should I be concerned with having too many joins in a sql statement ? lmao
14:33:25  <RLa>(on the webscale scale)
14:33:29  <jaawerth>webscale isn't just a running joke in here
14:33:48  * iprokgjoined
14:33:53  <jaawerth>there's a meme and everything!
14:33:58  * Cabanossiquit (Ping timeout: 264 seconds)
14:34:03  * kakashiALjoined
14:34:04  <joepie91>jaawerth: it's a fairly niche meme though
14:34:05  <joepie91>:p
14:34:10  <RLa>focodev, most sql databases have support that explains the query plan
14:34:28  <jaawerth>I dunno, I know at least two random sysadmins who've made the joke at me when wanting to give me a hard time for using javascript
14:34:31  <focodev>RLa, not sure what you mean by that, I'm sorry.
14:34:42  <RLa>focodev, do you know what indexes are?
14:34:46  <focodev>yes.
14:35:03  <jaawerth>well, for using node
14:35:03  <RLa>but not what a query planner is?
14:35:11  <focodev>nope.
14:35:13  <joepie91>focodev: anyway, as for database performance; store the data in normalized form, write queries that make sense from a semantic perspective, and once you *do* run into a performance bottleneck that's where you can start optimizing queries (eg. the query planner, which tells you what 'plan' the DB has for executing the query you specify, so that you can spot the problematic points), or even caching data to avoid the queries altogether
14:35:16  <RLa>which sql database it is?
14:35:20  * Cabanossijoined
14:35:30  * autoferritjoined
14:35:38  <joepie91>focodev: but you shouldn't be concerned about performance until it starts showing up as a potential real-world issue
14:35:40  <focodev>postgresql
14:35:50  <focodev>okay, thanks joepie91
14:35:52  <jaawerth>pg has bonkers-awesome indices
14:35:57  * BetaSoulquit (Read error: Connection reset by peer)
14:36:06  <jaawerth>and you can use EXPLAIN and EXPLAIN ANALYZE to optimize queries
14:36:17  <jaawerth>but yeah, that's usually after designing
14:36:33  * BetaSouljoined
14:36:33  <joepie91>focodev: generally, when you have performance issues, they're going to be concentrated around a few 'hot paths' (part of your code that are called a lot and/or take up a lot of the computing/response time), and you can optimize those paths individually without affecting the rest of the explanation
14:36:40  <joepie91>??
14:36:44  <joepie91>the rest of the application*
14:36:44  <RLa>focodev, https://www.postgresql.org/docs/9.4/static/using-explain.html
14:36:45  <joepie91>wtf, I need coffee
14:37:20  <focodev>awesome, thanks so much RLa
14:38:06  <RLa>focodev, there are multiple ways how the database can perform a join and it depends on indexes (and other things) which way is used
14:38:11  * iprokgquit (Client Quit)
14:38:26  <cannap>joepie91, i need prmises!
14:38:42  * SuperHansquit (Remote host closed the connection)
14:39:06  <cannap>god thanks i live not in nl
14:39:23  <joepie91>cannap: ?
14:39:26  <rom1504>cannap: I promise you you can use callbacks
14:39:32  <cannap>;D
14:39:34  <RLa>focodev, worst thing is nested loop over both tables, better is merge join and hash join
14:39:35  * rohanrhu_joined
14:39:39  <cannap>jk
14:39:43  * Atemujoined
14:39:47  <RLa>focodev, https://www.postgresql.org/docs/9.5/static/planner-optimizer.html
14:40:05  <cannap>but when i would life in nl i would smoke
14:40:31  <cannap>.catc() in coming
14:40:39  <cannap>h
14:41:38  <focodev>thanks
14:42:05  * rohanrhuquit (Ping timeout: 240 seconds)
14:42:53  * justelexjoined
14:43:12  * ihatecsvquit (Remote host closed the connection)
14:43:37  * kakashiALquit (Ping timeout: 255 seconds)
14:43:38  * barhum2013joined
14:44:02  <DeltaHeavy>I'm starting to feel like this article is crappy? Or am I worng on that? https://x-team.com/blog/tutorial-forms-in-react-and-redux/
14:44:29  * ihatecsvjoined
14:45:10  <focodev>O
14:45:23  <focodev>I've got a nested loop in there out of this query :s
14:45:30  * Hrtlndquit (Read error: Connection reset by peer)
14:45:37  <focodev>https://gist.github.com/sethdorris/8c70b04ec1af8ae4c4cb7c72b713e21e
14:46:09  * xalljoined
14:46:11  * doomhzjoined