00:00:37  * Diamondquit (Read error: Connection reset by peer)
00:01:02  * mezodquit (Ping timeout: 255 seconds)
00:01:23  * kingarmadillojoined
00:02:41  * ibtjwquit (Quit: Textual IRC Client: www.textualapp.com)
00:02:47  * smccarthyquit (Remote host closed the connection)
00:05:01  * bhughes_joined
00:05:43  * bhughesquit (Read error: Connection reset by peer)
00:06:25  * ericlimajoined
00:06:52  * ALowther_joined
00:08:01  * orbyt_quit (Ping timeout: 260 seconds)
00:08:59  * CaribGuyquit (Ping timeout: 276 seconds)
00:09:00  <pdub>Does anyone still use KnockoutJS for simple apps? Perhaps to, in part, take the place of jQuery?
00:09:53  <joepie91>now *that's* a name I haven't heard in some time
00:10:09  * cjorclpart
00:10:29  <pdub>Seems like a decent comparison from 2017... https://www.altexsoft.com/blog/engineering/angularjs-vs-knockout-js-vs-vue-js-vs-backbone-js-which-framework-suits-your-project-best/ But... Yeah, just happened upon it today on stackoverflow
00:10:34  * drJekoojoined
00:10:53  <pdub>Really trying to keep my frontend learning curve nice and... shallow, haha.
00:11:20  <joepie91>pdub: I mean, if the premise of an article is "what framework should you pick", I already can't take it very seriously :)
00:11:34  * drJekooquit (Client Quit)
00:11:52  <pdub>joepie91: Well I can't argue with that, haha!
00:13:34  * ALowther_quit (Ping timeout: 264 seconds)
00:13:50  <RLa>pdub, I still maintain a knockoutjs app, knockoutjs is fine for small apps but provides no way to structure anything bigger without things going out of hand
00:14:24  <pdub>Ah, gotcha. Yeah i guess I'm trying to step between jQuery and react/Angular. But to keep that step low... pain & effort. haha
00:14:25  * shushjoined
00:14:43  <pdub>Just interviewed w/ a co. that uses angular frontend, so guess I might need to step into it or something like it eventually
00:15:09  <pdub>but in the mean time, I am beginning to realize jquery isn't the most efficient bet for me
00:15:12  <RLa>wat, a framework overview that does not even mention react
00:15:16  * goodenoughjoined
00:15:20  * heyitsramaquit (Read error: Connection reset by peer)
00:15:36  * heyitsramajoined
00:15:43  <pdub>yeah, I told them I'd do V2 of my app in React (v1 jQuery frontend, v2 react). But now I am considering a middle step of some Knockout for 1.5-ish
00:15:44  <RLa>angular 1 is said to be nightmare, stay away from it
00:16:12  <pdub>Yeah I am afraid they might use this AngularJS ,along with $Q stuff, which seems deprecated.
00:16:46  <pdub>but I am a pretty persuasive, tenacious person so I imagine I can convince them of better ways... but I also want to be humble at the same time.
00:16:54  * m00dyjoined
00:17:08  <pdub>(especially as I don't know much as it is)
00:17:36  <pdub>anyways, i appreciate all advice, but I don't want to flood the node-o-sphere with my feeble blatherings
00:18:01  <joepie91>RLa: well, React isn't a framework :)
00:18:26  <joepie91>also, lol, $Q
00:18:36  <RLa>but react+router+redux+grapql stuff would be?
00:18:42  <joepie91>been a while since I heard that as well
00:18:44  <pdub>joepie91: I thought you might say that, I think you laughed at it a couple months back when i mentioned async.queue()
00:18:51  <joepie91>RLa: no, that'd just be a collection of tool choices
00:19:02  <joepie91>like, the problem here is the notion of 'framework'
00:19:09  <RLa>oh ok
00:19:10  <joepie91>that's... just not what you want
00:19:23  <joepie91>*which* framework then doesn't matter :P
00:19:57  * kneeki|ajoined
00:19:58  <joepie91>pdub: I mean, historically speaking, there are reasons for $Q, but it's somewhat amusing just how quickly that became an outdated thing
00:20:00  <pdub>I just want to easily do some front end features like binding data objects from an array that came from a .get call... into the html elements I pump the data into
00:20:12  <joepie91>and how quickly it turned from "oh handy" into "aaaaaah what a nightmare"
00:20:13  <pdub>ahh gotcha joepie91
00:20:24  <joepie91>it'
00:20:26  <joepie91>gah
00:20:29  <pdub>joepie91: interesting. I definitely need to brush up on my node & js history
00:20:34  <joepie91>it's basically a crippled version of Q, the Promises library *
00:20:43  <joepie91>and has the same performance issues
00:20:45  <pdub>before promises became more of a thing in js? joepie91?
00:20:51  <joepie91>yeah
00:21:02  <joepie91>Q was pretty much the first extensive promises implementatioin
00:21:12  <joepie91>but it was pretty quickly surpassed by eg. Bluebird on the performance aspect
00:21:19  <joepie91>and by, well, everything else on the API design sanity aspect
00:21:21  * m00dyquit (Ping timeout: 240 seconds)
00:21:40  <joepie91>and then Angular was stuck with an old crippled Promises implementation that was slow, because it was part of their API now
00:21:44  <joepie91>and there was no real way to deprecate it
00:22:05  <pdub>awesome. Btw, I was also asked about performance... Any good articles you know of regarding nodejs performance? and testing performance of one's own tested functions? (such as if a newb was to test various functions to iterate over an array of objects)
00:22:12  <jaawerth>well, they deprecated it along with the rest of angular 1 ;-)
00:22:19  <joepie91>don't think that could've been foreseen, but it's also something that wouldn't have been an issue if people stopped trying to frameworkify everything :P
00:22:21  <pdub>(* in this interview.. i was asked about performance. forgot the exact question)
00:22:28  <joepie91>jaawerth: lol, well, yes
00:22:52  <joepie91>pdub: "(such as if a newb was to test various functions to iterate over an array of objects)"
00:22:54  <joepie91>that is immediately wrong :)
00:23:06  <jaawerth>though even in angular 1, they made $q compliant with the actual Promise API and only kept the defer crap for legacy reasons. couldn't help about the perf, though, because $q was ALSO a promise that tied into their digest cycle
00:23:07  <joepie91>microbenchmarks are useless in an optimizing runtime like modern JS runtimes
00:23:15  <joepie91>they will tell you exactly nothing of consequence
00:23:23  <pdub>I basically want to test my own functions for how quickly they fire. And then test various things, such as a for loop vs .forEach, type comparisons
00:23:25  <joepie91>what you'll want to do instead, is learn how to profile a real-world application
00:23:31  <joepie91>and how to find the bottlenecks
00:23:35  <jaawerth>IE promise resolution could also trigger a subsequent dirty-checking cycle
00:23:41  <pdub>ahh i see
00:23:44  <jaawerth>...automatically
00:23:47  <joepie91>loop performance is totally uninteresting right up until the point it shows up as a dominant part of where your cycles are being spent
00:24:05  <joepie91>not to mention that any microbenchmark results *will* be wrong in the context of a larger application
00:24:09  <pdub>let me ask this: how does one do basic performance testing?
00:24:11  <joepie91>because modern runtimes optimize contextually
00:24:18  <joepie91>one doesn't; one profiles
00:24:20  <pdub>i suppose I could google, but thought I'd see if there's a good npm package
00:24:40  <pdub>"performance profiling" it seems
00:24:45  <joepie91>node-inspector, now --inspect + chromium devtools, has some profiling tools
00:24:45  <jaawerth>and v8 finally optimized out the main thing holding forEach and friends back, but that distracts from the main point of it not being the bottleneck
00:25:05  <pdub>(And tbh, I am not super concerned about performance, but just seeking my own intro)
00:25:24  <joepie91>pdub: basically, grab an application, any application, and set as your goal to find the biggest bottlenecks
00:25:27  <quarters>hello. I'm wondering if it's ever possible to create a Map with an array/object as a key for future retrieval
00:25:31  <joepie91>use whatever tools you can find to get there
00:25:36  <joepie91>then optimize that part of the application
00:25:41  <pdub>joepie91: awesome, thanks!
00:25:46  <pdub>joepie91: will research
00:26:18  * Sharaaljoined
00:26:18  <joepie91>quarters: yes; Map keys can be of any type, but will iirc be checked 'by identity'; in the case of objects/arrays that means you need to supply the exact same array/object, not just an array/object with the same contents
00:26:36  <jaawerth>correct, it's a reference lookup
00:26:46  <quarters>drats
00:26:48  <quarters>thanks, joepie91
00:26:55  <joepie91>I tend to avoid the word 'reference', it has a habit of causing confusion amongst developers coming from C etc. :)
00:26:58  <jaawerth>fair
00:27:11  <joepie91>hence 'by identity' as that's probably the most accurate description of JS' behaviour
00:27:22  * renloquit (Ping timeout: 264 seconds)
00:27:45  <ljharb>quarters: nothing in JS compares by contents; everything only compares by identity.
00:28:01  <ljharb>quarters: there's a pattern matching proposal that would probably help do what you want tho.
00:28:04  <quarters>ljharb: I was hoping that Map allowed for a workaround
00:28:04  * theWhisper_quit (Ping timeout: 268 seconds)
00:29:05  * goodenoughquit (Read error: Connection reset by peer)
00:29:33  <ljharb>quarters: nope, it uses SameValueZero
00:29:46  * goodenoughjoined
00:29:53  <ljharb>iow, `x === 0 && y === 0 ? x === y : Object.is(x, y)`
00:30:07  <jaawerth>quarters: You could subclass it and have get, set, and has compute a hash before passing to the parent's get/set/has
00:30:52  * Sharaalquit (Ping timeout: 265 seconds)
00:30:55  * beefjoequit (Remote host closed the connection)
00:32:08  <quarters>ljharb: gotcha. thanks
00:32:13  <quarters>jaawerth: I'll look into that. thanks
00:33:04  * theWhisper_joined
00:33:40  * ericlimaquit (Remote host closed the connection)
00:34:30  * mezodjoined
00:38:35  * mezodquit (Ping timeout: 245 seconds)
00:39:50  * cthu|quit (Ping timeout: 245 seconds)
00:40:45  * zumba_addictjoined
00:40:58  <pdub>jaawerth: (i wanted to thank you for your help earlier as well)
00:43:16  <jaawerth>np on both counts!
00:47:39  * bonhoefferjoined
00:48:06  <bonhoeffer>does node have includes (i want to dynamically generate forms)
00:49:25  <bonhoeffer>using jade/pug
00:49:44  * namlljoined
00:49:48  <jaawerth>https://pugjs.org/language/includes.html
00:51:18  * goodenoughquit (Read error: Connection reset by peer)
00:51:59  * danecandojoined
00:52:40  * danecandoquit (Client Quit)
00:52:49  <namll>zsoc: i dont know if you remember, but a few days ago you were helping me with my crop tool and you asked if it was required to save and open each file instead of just reading it form memory. well, im cleaning up that code since i did some database changes, and was wondering how to save the objects for later? Im guessing saving the objects to an array and then call it when needed? Im using the Jimp image library for my cropping. would I
00:52:49  <namll>assign each Jimp.read to a variable?
00:53:44  * ccleary00joined
00:56:13  * goodenoughjoined
00:58:12  * supernov2hjoined
01:00:16  * ffxquit (Quit: Leaving...)
01:01:34  <namll>i think i might have figured it out
01:02:03  * blackrose3joined
01:02:13  <bonhoeffer>jaawerth: thanks
01:03:46  <bonhoeffer>jaawerth: and i want to pass a variable
01:04:12  <bonhoeffer>mixin!
01:05:25  <jaawerth>yup!
01:06:40  <jaawerth>you might want to take a look at extends/block too, but mixins are probably the right one for your usecase
01:08:09  * ffxjoined
01:08:26  * ffxquit (Remote host closed the connection)
01:09:38  * goodenoughquit (Read error: Connection reset by peer)
01:10:14  * goodenoughjoined
01:11:20  * kakashiALjoined
01:12:55  * Guest63joined
01:13:41  * ccleary00quit (Quit: Page closed)
01:15:24  * jmdrawneekjoined
01:16:26  * shakes808joined
01:17:44  * blackrose3quit (Quit: Leaving.)
01:17:59  * m00dyjoined
01:20:00  * ed209quit (Remote host closed the connection)
01:20:07  * ed209joined
01:20:10  * jmdrawneekquit (Ping timeout: 265 seconds)
01:22:41  * m00dyquit (Ping timeout: 248 seconds)
01:23:57  * Guest63quit (Quit: Textual IRC Client: www.textualapp.com)
01:24:50  * goodenoughquit (Read error: Connection reset by peer)
01:30:32  * b7hd6yz01joined
01:31:02  * sethjoined
01:31:21  * sethchanged nick to Guest83682
01:32:23  * Guest81967quit (Ping timeout: 256 seconds)
01:34:03  * goodenoughjoined
01:35:41  * jsatkjoined
01:38:14  * Guest83682quit (Ping timeout: 255 seconds)
01:39:46  * xqyjoined
01:39:53  * dman777quit (Quit: Lost terminal)
01:40:33  * xqyquit (Client Quit)
01:40:35  * kakashiA1joined
01:41:44  * bonhoefferquit (Ping timeout: 260 seconds)
01:42:18  * ssarahquit (Remote host closed the connection)
01:42:38  * xqyjoined
01:43:27  * hph^quit (Ping timeout: 240 seconds)
01:44:07  * Sharaaljoined
01:44:10  * kakashiALquit (Ping timeout: 264 seconds)
01:45:58  * shakes808quit (Quit: Updating details, brb)
01:46:16  * doubledevjoined
01:47:22  * bdunavantjoined
01:48:16  <supernov1h>If you define an data descriptor, is its value assigned at the time of setting the object properties or is it gotten each time via the accessor that is described by the value?
01:49:11  * Sharaalquit (Ping timeout: 276 seconds)
01:49:16  * mzl0joined
01:50:10  * b7hd6yz01quit (Ping timeout: 264 seconds)
01:54:01  * stephenquit (Quit: Out...)
01:54:13  * stenno__joined
01:55:13  * kjartanquit (Read error: Connection reset by peer)
01:57:18  * shushquit (Remote host closed the connection)
01:58:06  * stenno_quit (Ping timeout: 268 seconds)
01:58:52  <zumba_addict>hey friends, am I in the wrong that I haven't signed the job offer internally(my move to DevOps team) since I'll be doing more work but the salary mentioned on the offer letter is the same as what I have right now as sr fe developer? I asked for a renumeration due to added workload. I wasn't also applied for it, I was picked by several devops engineers to join them
01:59:41  * Caspinoljoined
01:59:57  * bdunavantquit (Ping timeout: 268 seconds)
01:59:57  * userxquit (Quit: userx)
02:00:23  * kjartanjoined
02:01:10  * KevinCarbonaraquit (Ping timeout: 256 seconds)
02:03:40  * horseyjoined
02:04:09  * Caspinolquit (Ping timeout: 265 seconds)
02:06:50  <supernov1h>Err, finance advice ?
02:07:49  <pdub>I'd think of the factors one's salary is dependent upon such as: (yrs experience, credentials, produced apps, location_and_its_costOfLiving, etc.)
02:07:50  * gambl0rejoined
02:07:55  <pdub>but tis an interesting questions
02:08:22  <pdub>i just want to make a predictive model and input data based on a multilinear regression. damn statistics :(
02:08:30  * horseyquit (Ping timeout: 265 seconds)
02:08:39  * jsatkquit (Quit: Lost terminal)
02:12:39  * ne018joined
02:13:46  * KevinCarbonarajoined
02:14:01  * kneeki|aquit (Ping timeout: 260 seconds)
02:14:17  * mchelenquit (Quit: Connection closed for inactivity)
02:16:58  * mzl0quit (Ping timeout: 260 seconds)
02:17:50  * kingarmadilloquit (Ping timeout: 268 seconds)
02:19:08  * m00dyjoined
02:23:13  * mzl0joined
02:23:20  * createrjoined
02:24:16  * supernov2hquit (Ping timeout: 256 seconds)
02:24:27  * m00dyquit (Ping timeout: 240 seconds)
02:25:06  * theWhisper_quit (Ping timeout: 260 seconds)
02:26:30  * tmquit (Ping timeout: 245 seconds)
02:28:55  <zumba_addict>sorry, just got back
02:30:06  * tmjoined
02:31:22  * kingarmadillojoined
02:31:42  * capella-da-starjoined
02:31:44  <pdub>zumba_addict: np. i find it an interesting question
02:32:00  <pdub>zumba_addict: but i think it depends on several factors. known and unknown.
02:33:20  * chowmein__changed nick to chowmeined
02:36:05  * capella-da-starquit (Ping timeout: 245 seconds)
02:37:29  * jaawerthquit (Quit: ZNC - http://znc.in)
02:37:48  <zumba_addict>it's been affecting me pdub
02:39:09  <zumba_addict>the reason I told them I will join the other team is because I love doing devops plus I had an assumption that there will be a pay increase due to more work, more support. They are aware of the contributions I have provided to the company
02:42:48  * ne018quit (Read error: Connection reset by peer)
02:43:03  * ne018joined
02:46:38  * greegelquit (Remote host closed the connection)
02:48:28  * Diamondjoined
02:49:54  * glijoined
02:50:17  * supernov2hjoined
02:51:03  <pdub>zumba_addict: I personally believe that clear, explicit, but diplomatic communication is often lacking in salary negotiations. But negotiations are quite challenging, circumstantially tactical things.
02:52:18  <pdub>zumba_addict: I would perhaps advise myself to build a mental list of list items, along with a sentence for each, justifying why I believe the co. should value my current work, but also my potential work when met with various circumstances with which I am tasked.
02:52:40  <pdub>zumba_addict: i need to sign off though, but I wish you the best
02:52:50  <zumba_addict>well, this is what really happened. 1) my manager was informed the other team wants to pirate me. My manager told me that 2 weeks ago, Friday 2) I thought about it over weekend and I talked to my manager I want to take the job 3) Waited for a week for an offer letter until this morning
02:53:14  <zumba_addict>yes, I did provide all the major contributions today via email
02:53:32  <zumba_addict>thank you pdub
02:53:38  <pdub>zumba_addict: My belief is that when it comes to salary negotiations, The only real leverage a person has is an offer letter justifying the fact that someone else if willing to hire them at a certain rate (which it is implied is hire than the current one)
02:53:39  * jeffreylevesquejoined
02:53:51  <pdub>(higher* than)
02:54:03  <pdub>zumba_addict: hey amigo I do what little I can :D
02:54:08  <zumba_addict>:)
02:54:11  * IanLiujoined
02:54:24  * pdubquit
02:55:19  * supernov2hquit (Ping timeout: 256 seconds)
02:56:32  * mzl0quit (Ping timeout: 255 seconds)
02:57:34  * Sharaaljoined
02:57:59  * createrquit (Quit: Leaving)
03:02:07  * Sharaalquit (Ping timeout: 256 seconds)
03:03:09  * tonymkejoined
03:03:14  * jmdrawneekjoined
03:03:25  * Disavowedjoined
03:03:46  * smccarthyjoined
03:04:07  * Mattiaslndstrmquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:04:32  <Disavowed>Afternoon all. Is there anything I can do in the REPL to see what arguments to pass to a method/see a docstring/anything like that?
03:04:48  <Disavowed>Even viewing the source might be helpful I guess
03:04:51  * Mattiaslndstrmjoined
03:04:55  * Mattiaslndstrmquit (Client Quit)
03:05:35  * braincrasquit (Quit: bye bye)
03:05:48  * tonymkequit (Client Quit)
03:06:13  * tonymkejoined
03:07:24  * goodenoughquit (Read error: Connection reset by peer)
03:08:07  * smccarthyquit (Ping timeout: 245 seconds)
03:08:07  * jmdrawneekquit (Ping timeout: 245 seconds)
03:10:32  * goodenoughjoined
03:10:34  * braincrashjoined
03:11:29  * gambl0requit (Ping timeout: 268 seconds)
03:11:46  * ne018quit (Read error: Connection reset by peer)
03:13:12  * ne018joined
03:13:48  * ahmed_elgabrijoined
03:14:23  * Caspinoljoined
03:14:53  * LiftLeftquit (Remote host closed the connection)
03:15:34  * heyitsramaquit (Remote host closed the connection)
03:16:00  * smccarthyjoined
03:16:10  * LiftLeftjoined
03:16:17  * ahmedelgabriquit (Ping timeout: 248 seconds)
03:18:25  * ahmed_elgabriquit (Client Quit)
03:18:35  * Caspinolquit (Ping timeout: 240 seconds)
03:18:38  * tsglovequit (Read error: Connection reset by peer)
03:18:57  * tsglovejoined
03:20:50  * m00dyjoined
03:22:00  * mzl0joined
03:22:15  * Roughyquit (Quit: Meadow Fresh milk)
03:22:47  * supernov3hjoined
03:25:33  * goodenoughquit (Read error: Connection reset by peer)
03:25:43  * m00dyquit (Ping timeout: 256 seconds)
03:27:22  <supernov1h>just toString the function you want to see?
03:27:33  * ne018quit (Read error: Connection reset by peer)
03:27:47  * ne018joined
03:30:28  * goodenoughjoined
03:30:53  * neo4joined
03:31:05  <neo4>:)
03:31:28  <Disavowed>I hadn't thought of that! Thank you!
03:32:11  * tsglovequit (Ping timeout: 260 seconds)
03:32:27  <Disavowed>Ah. It seems I mostly just get variations on this: 'function parse() { [native code] }'
03:32:45  <Disavowed>Is there any easy way perhaps of seeing what arguments are expected?
03:33:10  <supernov1h>What code is it
03:33:12  <supernov1h>that you're trying to use
03:33:27  <neo4>is this closure? https://github.com/kselax/express-session-break-down/blob/master/index.js#L282
03:33:28  <Disavowed>That one was just Date.parse but I guess the principle generalises
03:33:36  <neo4>Disavowed: supernov1h: it looks like closure?
03:34:25  <neo4>when we return from function other function it is closure?
03:34:26  <neo4>f1(a){ return function( calback(a){}); }
03:34:50  <neo4>supernov1h: Disavowed: let's break down node.js middleware
03:35:06  <supernov1h>neo4: o.0
03:35:43  <Disavowed>neo4: That looks like a Closure to me, but you might want to wait for someone more experienced to comment - I've only been doing JS properly for about a week :P
03:36:05  <neo4>it consists from 4 parts.
03:36:05  <neo4>1 initialization varialbes
03:36:05  <neo4>2 return closure
03:36:05  <neo4>3. in the bottom helper functions
03:36:39  <supernov1h>Why does it matter what you call it?
03:36:56  <neo4>Disavowed: no, we have enough experience for judging somebody, It should be closure
03:37:23  <neo4>that function saves surroundings outer function
03:38:02  <neo4>I think in her key why it can save to database variable. Need to make test. how closures save data, will reference disappeared?
03:38:26  <neo4>supernov1h: don't know, we have to use right names )
03:38:49  <neo4>supernov1h: if somebody ask you what is closure, can you answer?
03:38:51  * ne018quit (Ping timeout: 240 seconds)
03:39:24  <supernov1h>no because I don't care for computer science terms, they annoy me
03:39:33  <supernov1h>also the syntax of that is wrong
03:39:52  <Disavowed>neo4: I could be wrong but I think that the closure retains the reference until the function closing over it goes out of scope
03:39:54  <supernov1h>function(){ callback(a) }; perhaps
03:40:07  <neo4>supernov1h: try care, they are common, you will faster understand other people texts if meet this terms, try deliberately write down terms and learn
03:40:10  * ne018joined
03:40:24  <supernov1h>neo4: how about no?
03:41:16  <neo4>supernov1h: it is very bad, Do you know how many abriviations has technology?
03:41:33  <supernov1h>If you have homework questions, don't expect people to know the specific terminology you use in some bizarro course
03:41:49  <neo4>DNS, FQDN, SMTP, IMAP, POP3, REST, etc,
03:42:34  <neo4>supernov1h: there big list, and how you will read book about networks without posibility to translate that all imidiately, this help to understand
03:42:40  <neo4>ssl, TLS
03:42:46  <neo4>supernov1h: endless list
03:43:03  <neo4>NAT LAN, WLAN
03:43:20  <supernov1h>shhh
03:43:30  <neo4>supernov1h: and you lazy to learn a few definitions from JavaScript
03:43:40  <supernov1h>it's not from javascript
03:44:23  <neo4>supernov1h: it's not, but when you read something about linux you should learn all abriviations, and the same with javascript
03:48:33  * led1joined
03:49:27  * tsglovejoined
03:50:00  * namllquit (Ping timeout: 265 seconds)
03:51:09  * marthinaljoined
03:52:25  * macwinnerquit (Remote host closed the connection)
03:53:03  * heyitsramajoined
03:53:34  * led1quit (Quit: led1)
03:54:01  * goodenoughquit (Read error: Connection reset by peer)
03:54:53  * Caspinoljoined
03:55:45  * marthinalquit (Ping timeout: 248 seconds)
03:57:17  * led1joined
03:57:21  * supernov3hquit (Ping timeout: 264 seconds)
03:58:09  * supernov3hjoined
03:59:05  * Caspinolquit (Ping timeout: 240 seconds)
04:00:31  * led1quit (Client Quit)
04:02:27  * supernov3hquit (Ping timeout: 240 seconds)
04:03:15  * goodenoughjoined
04:03:47  * Sharaaljoined
04:04:32  * horseyjoined
04:05:50  * mezodjoined
04:05:56  <neo4>this is not understandable row
04:05:56  <neo4>https://github.com/kselax/express-session-break-down/blob/master/index.js#L299
04:06:13  <neo4>what is debub?
04:06:13  <neo4>debug('store is disconnected')
04:06:27  <neo4>is it useless npm package?
04:06:34  <neo4>https://www.npmjs.com/package/debug
04:06:36  * bmlzootownquit (Ping timeout: 260 seconds)
04:07:14  <neo4>I never use debag with html css, it is useless thing for node.js )
04:07:16  <neo4>:)
04:07:36  <neo4>console.log is better debug )
04:07:44  * plutoniixjoined
04:08:01  <RLa>use node DEBUG=express-session app.js
04:08:01  * plutoniixquit (Max SendQ exceeded)
04:08:15  <RLa>then it will show log selectively from this package
04:08:27  * plutoniixjoined
04:08:38  <RLa>12M weekly downloads say it's not useless
04:08:50  * Sharaalquit (Ping timeout: 276 seconds)
04:09:20  * horseyquit (Ping timeout: 265 seconds)
04:09:57  * mezodquit (Ping timeout: 240 seconds)
04:10:12  <neo4>RLa: I did
04:10:12  <neo4>debug('store is disconnected')
04:10:12  <neo4> console.log('Here we go');
04:10:27  <neo4>consol log works, debug no
04:11:07  <neo4>RLa: I don't , some geeks use it, I'm used to doing debug by console.log
04:11:31  <neo4>is node.js going to die?
04:11:51  <neo4>I saw video on youtube, some guys say it is going to die
04:11:53  <neo4>this is one
04:11:53  <neo4>https://www.youtube.com/watch?v=4R4lIobVGWk
04:11:56  * bmlzootownjoined
04:12:01  <neo4>:)
04:12:23  <neo4>we all should switch to php, because better performance and native langauge )
04:14:00  <supernov1h>neo4: are you suggesting all debug does is print strings to stderr lol?
04:14:01  <RLa>not everyone likes node, like that node cancer guy
04:14:45  <neo4>supernov1h: yes, you will do it if something wrong, this will rarely happen
04:15:09  <supernov1h>neo4: debugging isn't for error reporting
04:15:13  <neo4>RLa: Jimmy a geek )))
04:15:26  <neo4>RLa: node difficult, php much easier
04:15:49  <neo4>supernov1h: for what?
04:16:05  <neo4>supernov1h: it is used for seeing variables on fly
04:16:08  <supernov1h>Didn't it take the great part of 10 years for PHP to introduce prepared SQL statements and PHP was single handedly reponsible for 95% of all large online data leaks prior?
04:16:23  <GreenJello>"X is easy", until you try to build something moderately complex with it
04:16:38  * smccarthyquit (Remote host closed the connection)
04:16:50  <GreenJello>and that very much applies to JS
04:16:51  * nodweberquit (Ping timeout: 268 seconds)
04:17:13  * smccarthyjoined
04:17:42  * namlljoined
04:17:48  * namllquit (Client Quit)
04:18:22  <supernov1h>neo4: what do you mean by native language?
04:19:00  <GreenJello>supernov1h, people are raised to speak php
04:19:24  <GreenJello>I don't know about you, but my house was full of echos
04:19:31  <supernov1h>heh
04:19:33  <neo4>supernov1h: it's not my words, it's from video.
04:19:47  <supernov1h>neo4: so you're watching a video and typing what you hear here?
04:19:58  * xkapastelquit (Quit: Connection closed for inactivity)
04:20:07  <neo4>supernov1h: yes, so people pass information )
04:20:25  * bhughes_quit (Quit: ZNC - http://znc.in)
04:20:34  * bhughesjoined
04:20:48  <neo4>in this way information spread arround, you see video and pass somebody )
04:21:43  * m00dyjoined
04:21:47  * smccarthyquit (Ping timeout: 268 seconds)
04:22:06  <supernov1h>but this is a node.js channel not a php-share-alike youtube comment thread
04:22:53  <neo4>ok :)
04:23:05  * jkridnerquit (Read error: No route to host)
04:24:05  * goodenoughquit (Read error: Connection reset by peer)
04:24:08  * jkridnerjoined
04:25:54  * SexiestManAlivejoined
04:26:30  * jkridnerquit (Read error: No route to host)
04:26:45  * m00dyquit (Ping timeout: 264 seconds)
04:27:26  * jkridnerjoined
04:31:10  * toijoined
04:31:22  * macwinnerjoined
04:31:39  * bmlzootownquit (Ping timeout: 268 seconds)
04:32:11  * tonymkequit (Quit: Leaving.)
04:32:21  * tonymkejoined
04:32:53  * tonymkequit (Client Quit)
04:33:14  * goodenoughjoined
04:33:41  * nodweberjoined
04:36:47  * macwinnerquit (Ping timeout: 276 seconds)
04:38:44  * nodweberquit (Ping timeout: 276 seconds)
04:39:35  * i-focusjoined
04:40:24  * i-focusquit (Client Quit)
04:41:04  * bmlzootownjoined
04:45:42  <neo4>what is node.js popularity?
04:45:59  * bmlzootownquit (Ping timeout: 276 seconds)
04:46:30  <neo4>it's wide spread in runet https://www.similartech.com/technologies/nodejs
04:46:54  <neo4>on youtube bunch video in russian devoted node
04:48:22  * GreenJelloquit (Quit: Textual IRC Client: www.textualapp.com)
04:49:30  <neo4>this is the biggest node.js site http://www.yidianzixun.com/
04:50:26  * GreenJellojoined
04:50:39  <neo4>they are not wholly on node, just uses it
04:50:45  * bmlzootownjoined
04:53:26  * marthinaljoined
04:53:55  * jmdrawneekjoined
04:54:37  * nodweberjoined
04:55:44  * bmlzootownquit (Ping timeout: 276 seconds)
04:58:31  <SexiestManAlive>never heard of yidianzixun.com
04:58:33  * jmdrawneekquit (Ping timeout: 264 seconds)
04:58:42  * supernov3hjoined
04:58:46  <SexiestManAlive>neo4: what is the website about?
04:59:17  <neo4>SexiestManAlive: I don't know
04:59:24  <neo4>some china site
04:59:36  <SexiestManAlive>if you don't know the website, how did you know it's nodejs?
04:59:45  * nodweberquit (Ping timeout: 264 seconds)
04:59:51  <neo4>SexiestManAlive: from statistics
05:00:17  <neo4>it was in list of site is made in node.js
05:00:19  * horseyjoined
05:00:43  <neo4>SexiestManAlive: look there https://www.similartech.com/technologies/nodejs
05:00:44  <SexiestManAlive>it does not look like a very exceptional website
05:00:50  <SexiestManAlive>it just lists some news items, in chinese
05:01:08  <neo4>SexiestManAlive: it could be social network thus there so many people
05:01:31  <SexiestManAlive>i see
05:01:33  <neo4>I don't think somebody use node and nothing else, they build with other languages
05:01:45  <ljharb>neo4: of course people do.
05:01:49  <SexiestManAlive>oh neat homedepot.com is on that list
05:02:01  <SexiestManAlive>aliexpress.com is also on that list
05:02:23  <SexiestManAlive>i think people who are sick of eBay would automagically check aliexpress too, so it probably gets quite a bit of traffic
05:02:30  <ljharb>amazon, walmart labs, airbnb, uber - tons of companies use lots of node
05:03:04  <SexiestManAlive>i have never used airbnb before, i hear they are on React Native on mobile
05:03:05  * kingarmadilloquit (Ping timeout: 240 seconds)
05:03:14  <SexiestManAlive>i wonder how well React native is doing for them
05:03:21  * supernov3hquit (Ping timeout: 264 seconds)
05:03:38  <ljharb>SexiestManAlive: airbnb is moving away from react native; it was announced this week
05:03:43  * bitmaskquit (Quit: Gone to sleep...)
05:03:49  <SexiestManAlive>i don't like businesses like AirBnB and Uber, they help poor people become even poorer :(
05:03:56  <ljharb>SexiestManAlive: https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c
05:04:00  <ljharb>also wut, what are you talking about
05:04:00  <SexiestManAlive>ljharb: ah i see
05:04:09  <ljharb>tons of people are able to afford their rent because of airbnb
05:04:17  <SexiestManAlive>really?
05:04:27  <ljharb>absolutely
05:04:30  <SexiestManAlive>ljharb: so you are saying AirBnB does not make the poor poorer
05:04:44  <ljharb>SexiestManAlive: i mean, i don't think it does (any more than capitalism does all over)
05:04:51  <ljharb>SexiestManAlive: if you have a specific claim i'd be happy to evaluate it
05:04:51  <SexiestManAlive>[nods]
05:05:00  <SexiestManAlive>no specific claim
05:05:15  <ljharb>i think airbnb helps ensure that you don't have to be a rich hotel owner to profit off of tourism and business travel
05:05:25  <ljharb>(i work for airbnb so i'm both informed, and also biased)
05:06:16  * mezodjoined
05:08:00  <RLa>how often it is when crappy places are attempted to be rented out
05:08:12  <RLa>like roof is bad and rain falls in
05:08:43  <ljharb>RLa: i'm sure it's all over the place. if it's that bad, then obviously you'd contact support and they'd re-home you elsewhere, and the host wouldn't get paid, and would probably be removed if it was malicious/repeated
05:08:58  <ljharb>RLa: but tbh i've been in crappy hotels more often than i've been in crappy airbnbs
05:08:58  <SexiestManAlive>I would say effective measures against very common complaints like bed bugs should be the top most important issue for small time AirBnB renting businesses
05:09:11  <SexiestManAlive>i heard bed bug is one of the biggest headaches visiting hotels
05:09:13  <ljharb>SexiestManAlive: sure. that's true tho for all housing, both short and long term
05:09:29  <ljharb>SexiestManAlive: that's not really unique to anything except regions where bedbugs are common
05:10:46  * mezodquit (Ping timeout: 260 seconds)
05:10:51  * bmlzootownjoined
05:11:50  * Sharaaljoined
05:12:04  <GreenJello>ljharb, most of the criticism of airbnb I've seen is how it impacts people that aren't customers
05:13:22  <GreenJello>ljharb, if you can rent a place to someone long term, you can make some money. If you rent the same space on airbnb, then you can make more money, and then the price of rent goes up for the other people
05:14:21  <ljharb>GreenJello: sure, that's a common complaint. and i'm sure that's the case in some markets. but in the most constrained ones i'm aware of - like SF - that's not actually the case. SF has *tons* of vacancies because rent control laws make it more profitable for owners to keep large residential buildings empty and then sell the property, than to rent them out in the interim
05:14:30  <GreenJello>I won't pretend to understand economics, but I'm curious if you've heard this before, or if articles about it mysteriously 404 at work
05:14:37  <ljharb>lol no i've ofc heard it
05:15:26  <ljharb>but the loudest complaints are either in housing-constrained markets, where airbnb isn't the source of the problem, and erasing airbnb wouldn't make it any better - or where people just don't like rent prices going up, and that also would be happening regardless.
05:15:32  * nodweberjoined
05:15:58  <ljharb>the place to solve market inequity is in regulation and urban policy, and that's something that most cities fail at in varied ways
05:16:00  * doubledevquit (Quit: Connection closed for inactivity)
05:16:32  * Sharaalquit (Ping timeout: 256 seconds)
05:16:38  <ljharb>but if you're a group protesting rising rent prices and want to protest airbnb, there's lots of hotel-backed groups i'm sure will fund you - take that however you like
05:17:01  * smccarthyjoined
05:17:14  <GreenJello>hmm... I don't believe airbnb is responsible for my rent going up, but can I sue them anyway?
05:17:38  <ljharb>(this is my personal opinion; i don't actually know internal details about any policy stuff. but i do personally have lots of experience around renting properties out, and i've lived my whole life around SF, so i do know what i'm talking about here at least)
05:17:54  <ljharb>GreenJello: lol i'm sure you can try
05:20:06  * keepLearning512joined
05:20:45  * nodweberquit (Ping timeout: 264 seconds)
05:22:13  * smccarthyquit (Ping timeout: 268 seconds)
05:22:49  * m00dyjoined
05:24:45  * sauvinjoined
05:24:50  * sauvinquit (Max SendQ exceeded)
05:27:27  * m00dyquit (Ping timeout: 240 seconds)
05:27:49  * sauvinjoined
05:29:00  <neo4>debug is not bad modul, you can make output in your code and then easy check
05:29:30  <neo4>var bebug = require('debug')('your_name')
05:30:02  <neo4>then run DEBUG=your_name node index.js
05:30:20  <neo4>you can create many tests with others names
05:30:56  * kingarmadillojoined
05:30:59  <neo4>var debug1 = require('debug')('deb1');
05:31:00  <neo4>var debug2 = require('debug')('deb2');
05:31:10  <neo4>and then check for each
05:31:42  <devsnek>you can even run node with
05:31:46  <devsnek>NODE_DEBUG=deb*
05:31:49  <devsnek>and hit both at once
05:32:06  <neo4>devsnek: yes, it's better than console.log
05:32:21  <neo4>worth using
05:32:27  <devsnek>it uses the same internal tooling as console.log
05:32:33  <neo4>i'm login forward to using it
05:32:33  <devsnek>its pretty much just scoped console.log
05:32:45  * kakashiA1quit (Ping timeout: 264 seconds)
05:33:03  <neo4>it is not point in using console log
05:33:17  <devsnek>oh wait you're doing require('debug')
05:33:25  <devsnek>you know node comes with require('util').debuglog
05:33:30  <devsnek>which is the same api
05:33:47  <neo4>devsnek: no
05:34:04  <neo4>something read
05:34:08  <devsnek>huh?
05:34:25  <neo4>somehow you can see variables in console step by step
05:34:34  <neo4>make stop points
05:35:00  <devsnek>is english not your first language
05:35:16  <devsnek>i feel like there's a communication breakdown somewhere
05:35:31  <neo4>all debugers are useless, I prefer manual output to debagger
05:35:46  * kingarmadilloquit (Ping timeout: 260 seconds)
05:36:05  <neo4>I prefer doing manual output to using debuger
05:36:24  * nodweberjoined
05:36:26  <neo4>I prefer to do manual output rather than use debuger
05:36:27  <neo4>:)
05:36:55  <neo4>devsnek: sorry, continue
05:37:19  <neo4>devsnek: I understand you, it's rule about 'verb + ing' and 'to + verb'
05:37:38  <neo4>devsnek: do you know three structures with prefer?
05:37:50  <devsnek>huh
05:37:54  <ljharb>i'm not sure that's a sentence
05:38:25  <neo4>devsnek: what huh means?
05:38:49  <neo4>devsnek: yes, or no?
05:38:53  <neo4>nod?
05:39:02  <devsnek>what languages are you fluent in
05:39:13  <neo4>devsnek: in English :)
05:39:24  <devsnek>uhhh
05:40:05  <neo4>devsnek: see my video in English https://www.youtube.com/watch?v=GttI84s3xWY
05:40:17  <neo4>devsnek: fluent or not?
05:40:45  <devsnek>you're close to fluent
05:41:09  * nodweberquit (Ping timeout: 256 seconds)
05:41:12  <devsnek>you're missing dialect
05:41:29  <ljharb>neo4: there's no shame in speaking any language at any level; but i don't think that's a complete answer to the question
05:41:32  * igemnacejoined
05:41:45  <devsnek>i'm not trying to shame
05:41:58  <devsnek>just wanna get some good communication flowing
05:42:10  <neo4>Russian fluent
05:42:36  <neo4>devsnek: and in Ukraine
05:42:48  <neo4>devsnek: I know three languages )
05:43:29  * mzl0quit (Ping timeout: 255 seconds)
05:44:46  * apowers313joined
05:46:05  <SexiestManAlive>neo4: you have to live in an english speaking country that helps a lot
05:46:30  <SexiestManAlive>neo4: another thing that helps is to be sexy
05:47:48  <neo4>SexiestManAlive: ok. Here in Ukraine I am a noble, there in London when I will speak everybody will know that I am a stranger... :)
05:48:35  * yhpark_talk_____quit (Ping timeout: 240 seconds)
05:48:46  * supernov2hjoined
05:49:26  <SexiestManAlive>don't speak, just be professionally good looking
05:50:22  <neo4>SexiestManAlive: it was a joke, it's form audio book, Dracula said this when he was preparing move to London )
05:50:37  <neo4>I'm like Dracula a noble )))
05:51:39  <SexiestManAlive>Dracula i haven't seen that movie in a while
05:51:56  <SexiestManAlive>I am so happy there's no Dracula Cinematic Universe
05:52:56  * yhpark_talk_____joined
05:53:34  <neo4>SexiestManAlive: In school I might read 3 times this book, not interesting )
05:54:39  * led_ir22quit (Quit: led_ir22)
05:54:42  * morguaiiquit (Ping timeout: 265 seconds)
05:54:47  <SexiestManAlive>I think this movie made one of the deeper impressions with me from the vampire genre https://www.imdb.com/title/tt0110148/
05:55:50  <SexiestManAlive>It's a sad story about a child vampire who was turned into a vampire as a child and can never grow up.
05:55:58  <neo4>SexiestManAlive: might good movie, strange I understand what there says
05:56:09  <neo4>this the only real evel left
05:56:35  * supernov2hquit (Read error: Connection reset by peer)
05:56:51  <SexiestManAlive>Actor Kirsten Dunst played the child vampire
05:56:58  <neo4>I can't stand this any longer...
05:57:18  * led_ir22joined
05:57:19  * nodweberjoined
05:59:19  * mezodjoined
06:00:23  * kakashiA1joined
06:01:52  * nodweberquit (Ping timeout: 245 seconds)
06:03:13  * xqyquit (Quit: Page closed)
06:03:36  * Guest83682joined
06:03:53  * mezodquit (Ping timeout: 265 seconds)
06:04:15  * horseyquit (Remote host closed the connection)
06:04:47  <ljharb>who doesn't know about interview with the vampire
06:07:09  * goodenoughquit (Read error: Connection reset by peer)
06:07:46  * goodenoughjoined
06:07:49  * johnny56quit (Ping timeout: 276 seconds)
06:07:56  * Guest83682quit (Client Quit)
06:08:16  * Guest83682joined
06:08:48  <SexiestManAlive>ljharb: hey i wanna thank you for that medium.com write-up by AirBnB
06:09:00  <SexiestManAlive>thanks! :)
06:09:31  * heyitsramaquit (Remote host closed the connection)
06:10:10  * heyitsramajoined
06:11:00  <ljharb>SexiestManAlive: i didn't write it, but you're welcome
06:11:07  <ljharb>SexiestManAlive: it's a 5 part series; be sure to read the whole thing
06:11:42  <SexiestManAlive>yep i intend to
06:13:45  * IanLiuquit (Quit: IanLiu)
06:14:45  * heyitsramaquit (Ping timeout: 264 seconds)
06:14:48  * lpinjoined
06:14:52  * AtumT_joined
06:15:35  * alexwhitman_quit (Ping timeout: 240 seconds)
06:17:01  * Caspinoljoined
06:17:05  * alexwhitmanjoined
06:17:27  * AtumTquit (Ping timeout: 240 seconds)
06:18:13  * nodweberjoined
06:18:21  * danecandojoined
06:20:21  * danecandoquit (Client Quit)
06:20:46  * johnny56joined
06:21:35  * Caspinolquit (Ping timeout: 240 seconds)
06:21:42  * Sharaaljoined
06:21:55  * msdsosquit (Quit: Leaving)
06:22:22  * groomjoined
06:22:25  * alexwhitman_joined
06:22:42  * kingarmadillojoined
06:23:39  * alexwhitmanquit (Ping timeout: 256 seconds)
06:23:59  * m00dyjoined
06:24:16  * goodenoughquit (Read error: Connection reset by peer)
06:27:23  * Sharaalquit (Ping timeout: 276 seconds)
06:27:56  * kingarmadilloquit (Ping timeout: 276 seconds)
06:28:28  * phillipj_quit (Read error: Connection reset by peer)
06:28:37  * AtumTjoined
06:28:41  * aaa801quit (Read error: Connection reset by peer)
06:28:45  * phillipj_joined
06:28:49  * m00dyquit (Ping timeout: 248 seconds)
06:28:53  * aaa801joined
06:28:53  * tobiequit (Read error: Connection reset by peer)
06:29:01  * dabura667quit (Read error: Connection reset by peer)
06:29:12  * bovequit (Read error: Connection reset by peer)
06:29:20  * AtumT_quit (Ping timeout: 276 seconds)
06:29:32  * bovejoined
06:29:33  * tobiejoined
06:29:33  * dabura667joined
06:32:46  * anikrasquit (Quit: Ex-Chat)
06:33:26  * goodenoughjoined
06:33:26  * macwinnerjoined
06:34:41  * apowers313quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:34:56  <akd>How can I push all branches to "github" remote ? I mean, the 100% success way.
06:38:02  * ne018_joined
06:38:03  * ne018quit (Read error: Connection reset by peer)
06:38:16  * macwinnerquit (Ping timeout: 260 seconds)
06:38:37  * stenno__quit (Changing host)
06:38:37  * stenno__joined
06:38:47  * stenno__changed nick to stennowork
06:39:15  <stennowork>akd, whats your node.js question?
06:39:16  <ljharb>akd: what way are you referring to
06:39:56  <akd>https://paste.gnome.org/pk07bakxq#line-39
06:40:06  <akd>oups
06:40:19  <akd>https://paste.gnome.org/pk07bakxq
06:40:43  * Keanu73joined
06:41:24  <akd>This is the last try I have done: https://paste.gnome.org/pd3dfst1l
06:41:37  <akd>If you look here : https://github.com/bootstrap-styled/navigation-bar there is only master branch
06:42:07  <akd>I expect to have all the branches logged, I have tried `git push origin --all`, I have try to do before `git fetch --all`, I have also tried `git push origin */*`
06:42:44  * akivajoined
06:43:14  * ch007mjoined
06:44:10  * danecandojoined
06:45:17  * goodenoughquit (Read error: Connection reset by peer)
06:48:41  <ljharb>akd: just `git push --all` usually does it. but you should ask in #git, this isn't a git channel.
06:49:35  * Limarsonjoined
06:49:46  <akd>yeah, I 've been asking for 3 days, `git push --all` usually does it and that's what people sya
06:50:03  <akd>I'm looking for different opinion now, cause it can
06:50:11  <akd>can't be that complicated as it is right now
06:50:11  * goodenoughjoined
06:51:10  * Guest83682quit (Quit: Guest83682)
06:51:52  * Guest83682joined
06:52:00  * Guest83682quit (Client Quit)
06:54:12  * Keanu73quit (Read error: Connection reset by peer)
06:54:13  <ljharb>akd: oh, that will only push tracked branchs.
06:54:22  <ljharb>akd: you have to explicitly push newly created ones
06:54:41  <ljharb>or set up their tracking
06:55:25  <akd>well, it is not pushing tracked branch, because i have also `dev` `agd-dev` `ajt-dev` and some others which are tracked
07:01:57  * jottrjoined
07:05:35  * keepLearning512quit (Remote host closed the connection)
07:06:10  * darutokojoined
07:06:17  * GreenJelloquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:09:07  * rezettajoined
07:09:20  * akivaquit (Quit: WeeChat 2.1)
07:09:37  <SexiestManAlive>ljharb: wow i couldn't really understand what the Sunsetting React Native @ AirBnB article was saying, i have much to learn
07:11:14  <akd>link?
07:12:01  * ne018_quit (Read error: Connection reset by peer)
07:12:17  * ne018joined
07:15:32  * Caspinoljoined
07:15:40  <akd>ljharb, do you got no ideas? it should push everything to me and to people
07:17:30  * smccarthyjoined
07:20:35  * Caspinolquit (Ping timeout: 276 seconds)
07:21:09  <neo4>what is app use for markdown?
07:21:26  <neo4>there many
07:22:25  <ljharb>akd: ask in #git
07:22:32  * smccarthyquit (Ping timeout: 276 seconds)
07:25:06  * m00dyjoined
07:27:40  * jmdrawneekjoined
07:27:49  * horseyjoined
07:28:45  * earendeljoined
07:28:51  * mezodjoined
07:29:29  * jmdrawneekquit (Remote host closed the connection)
07:29:35  * jmdrawneekjoined
07:30:20  * m00dyquit (Ping timeout: 276 seconds)
07:30:46  * Venemojoined
07:31:12  * Sharaaljoined
07:33:21  * mezodquit (Ping timeout: 240 seconds)
07:34:12  * mr_louquit (Remote host closed the connection)
07:35:32  * Sharaalquit (Ping timeout: 255 seconds)
07:37:42  * heyitsramajoined
07:38:33  * ahmedelgabrijoined
07:39:18  * ceborquit (Quit: ZNC - http://znc.in)
07:39:52  * kingarmadillojoined
07:40:05  * Jetimon_joined
07:40:21  * w0ngquit (Ping timeout: 240 seconds)
07:40:30  * ceborjoined
07:42:25  * heyitsramaquit (Ping timeout: 248 seconds)
07:44:27  * kingarmadilloquit (Ping timeout: 240 seconds)
07:46:00  * amelliaajoined
07:47:18  <stennowork>is it correct that socket.io's client tries to poll to 'HTTP://<url>:<port>/socket.io'
07:47:35  <stennowork>even though in my express app i didn't specify any '/socket.io' route
07:47:47  <stennowork>idk what this is doing and why
07:48:30  * BeerLoverjoined
07:49:15  * horseyquit (Remote host closed the connection)
07:49:31  <stennowork>is it also correct that socket io uses HTTP, not WS
07:49:38  * mezodjoined
07:50:17  <stennowork>because apparently it does some polling (??? why would it do that)
07:50:35  <stennowork>polling-xhr.js to aforementioned URL
07:51:01  <stennowork>but i hoped that socket.io just like, creates a socket in the client and then does like, a socket handshake with the server so i could like, do websocket things
07:51:40  * rezettaquit (Remote host closed the connection)
07:52:02  * littlebearquit (Read error: Connection reset by peer)
07:52:10  <stennowork>how can i tell socket.io to like, use websocket instaed of some polling shit
07:52:44  * rezettajoined
07:54:54  * goodenoughquit (Read error: Connection reset by peer)
07:55:49  <Disavowed>stennowork: I used a Python library for it once - it started long polling and upgraded to WS if it was able - is it possible yours is doing something similar?
07:56:34  <stennowork>maybe?
07:56:41  <stennowork>again i don't really know what this does
07:57:02  <stennowork>i hoped that i can set up a server with express.js and socket.io and just follow the tutorials and it would work
07:57:02  * supernov2hjoined
07:57:10  <stennowork>but the tutorial doesn't work
07:57:16  <stennowork>and now i have to figure out why, awesome
07:57:16  <stennowork>!
07:57:35  * nodweberquit (Ping timeout: 240 seconds)
07:57:42  <Disavowed>stennowork: My first guess would be that the versions of those things you're running aren't the same as the ones when the tutorial was written - I've been bitten by that a million times I think
07:58:01  <Disavowed>But yes, it's shit, and an overall deeply frustrating experience
07:58:17  * rendarjoined
07:59:43  * devc_quit (Ping timeout: 250 seconds)
07:59:49  * goodenoughjoined
08:01:30  * keepLearning512joined
08:01:44  * supernov2hquit (Read error: Connection reset by peer)
08:01:53  * devc_joined
08:02:01  <stennowork>Disavowed, yeah.. it might even be network issue here, i will check that first
08:03:00  <Disavowed>Try getting it going on localhost - that'll narrow things down a lot I should think
08:04:35  * keepLearning512quit (Read error: Connection reset by peer)
08:04:49  * keepLearning512joined
08:04:56  * setpilljoined
08:05:11  * heyitsramajoined
08:05:44  * ffxjoined
08:06:18  <stennowork>hmm nmap tells me the service running is 'afs-callback'
08:06:43  * dodobrainquit (Quit: buh bye.. o/)
08:07:18  * userxjoined
08:08:06  <stennowork>i will change the port and see again
08:09:27  * heyitsramaquit (Ping timeout: 240 seconds)
08:09:47  * supernov2hjoined
08:11:04  * jottrquit (Ping timeout: 256 seconds)
08:12:36  * kjartanquit (Read error: Connection reset by peer)
08:12:59  <BeerLover>I want to search providers based on service_id (just filter) and then the address and services.vehicles.address. This is my mapping: https://dpaste.de/3qSC
08:13:00  <BeerLover>This is my query: https://dpaste.de/8Knz
08:14:19  * supernov2hquit (Read error: Connection reset by peer)
08:14:30  * jottrjoined
08:14:41  * userxquit (Quit: userx)
08:15:26  * kjartanjoined
08:16:08  * nodweberjoined
08:16:57  * zumba_addictquit (Ping timeout: 240 seconds)
08:18:11  * jmdrawneekquit (Remote host closed the connection)
08:18:38  * jmdrawneekjoined
08:18:54  * smccarthyjoined
08:18:54  * Caspinoljoined
08:20:56  * userxjoined
08:23:09  * jmdrawneekquit (Ping timeout: 264 seconds)
08:23:46  * smccarthyquit (Ping timeout: 260 seconds)
08:25:14  * userxquit (Ping timeout: 256 seconds)
08:25:50  * goodenoughquit (Read error: Connection reset by peer)
08:26:01  * dbarrettjoined
08:26:12  * keepLearning512quit (Remote host closed the connection)
08:26:14  * m00dyjoined
08:26:37  <stennowork>ok i bound my express to "". On the same machine, when i do curl -X POST , i get OK
08:27:10  <stennowork>in the browser, when i do fetch("", { method: "POST" }) , i get connection timetout
08:28:40  <stennowork>if i do the curl call on a different machine in the same network, i get OK too
08:28:56  <Disavowed>stennowork: Try a different browser maybe?
08:30:32  * supernov2hjoined
08:30:33  <_rgn>check from dev tools what browser is actually trying to do..
08:30:34  <stennowork>its the newest chrome
08:30:45  * goodenoughjoined
08:30:54  <stennowork>_rgn, i do the fetch in the browser console
08:31:16  <_rgn>yes, and check the network tab what the browser is trying to do
08:31:58  <Disavowed>stennowork: _rgn is right - look at the request. I have multiple browsers though and when I get bullshit, some give me better information than others
08:32:01  <stennowork>it... tries to request the resource and then times out
08:33:00  * heyitsramajoined
08:34:32  <stennowork>(failed)
08:34:32  <stennowork>net::ERR_CONNECTION_TIMED_OUT
08:35:20  <_rgn>but localhost works with that port?
08:35:30  * macwinnerjoined
08:35:55  <stennowork>yeah, again, i can even do a POST from another machine in the same network to this resource and i get OK back
08:36:23  <stennowork>i'd assume that a complain about same-domain/CORS would look different
08:36:50  * m00dyquit (Ping timeout: 260 seconds)
08:37:15  * RLaquit (Quit: Leaving)
08:37:17  <_rgn>fetch with localhost works?
08:39:33  <stennowork>its on a distant machine, i don't have localhost
08:39:51  * macwinnerquit (Ping timeout: 240 seconds)
08:39:55  <_rgn>you just said it's the same machine
08:40:04  <stennowork>yes
08:40:05  <_rgn>oh it's not?
08:40:24  <stennowork>but if i request a source in the browser with 'localhost', it would request my localhost, not the distant localhost, right
08:41:13  <stennowork>lemme try
08:41:32  * amelliaaquit (Quit: -)
08:41:35  <stennowork>yeah
08:41:48  <synthmeat>what does "i bound my express to" mean?
08:41:49  <_rgn>of course localhost won't work if it's a different machine
08:42:07  <_rgn>your initial description of the issue turned out to be vague
08:42:11  <stennowork>synthmeat, server.listen(6001, "")
08:42:24  <stennowork>i am in an ssh session on the same machine
08:42:40  <stennowork>in a VPN
08:42:44  <_rgn>seems like a firewall issue
08:42:54  <stennowork>again note that it works fine with curl
08:42:57  <stennowork>just not in the browser
08:43:47  <_rgn>then try opening a GET endpoint with the browser directly on that same address
08:43:52  <_rgn>remove window.fetch from the equation
08:43:52  * jottrquit (Ping timeout: 268 seconds)
08:44:01  <stennowork>right, imma try that
08:44:14  * goodenoughquit (Read error: Connection reset by peer)
08:44:16  * supernov2hquit (Ping timeout: 260 seconds)
08:44:44  * jottrjoined
08:45:59  <stennowork>i assume i'd get a same-domain complaint here
08:46:31  <stennowork>aactually no its a hard link
08:46:32  <stennowork>lets see
08:46:53  <stennowork>nope, just getting a connection timeout again
08:47:23  <stennowork>i just made a get route in my express and did <a href="">TEST</a>
08:47:53  <_rgn>and curl on that endpoint in terminal works
08:47:59  <stennowork>correct, just tested
08:48:07  <_rgn>try a different port
08:48:07  <stennowork>on a different machine in the same network
08:48:13  <_rgn>NO, same machine
08:48:21  <stennowork>same machine works too
08:48:29  <_rgn>ok, then try a different port
08:48:40  <stennowork>already did, i had 7001 before and now 6001
08:48:42  <_rgn>like 8080 or something
08:48:45  <stennowork>ok
08:48:49  <stennowork>for good measure
08:50:59  * kingarmadillojoined
08:51:19  * heyitsramaquit (Remote host closed the connection)
08:51:43  <stennowork>i will also shut down the firewall completely here just to make sure
08:53:28  * goodenoughjoined
08:54:16  <stennowork>hmm no avail
08:54:21  * tvwjoined
08:54:37  <stennowork>ok i will get a VNC session to get a client directly in the network
08:55:35  * kingarmadilloquit (Ping timeout: 240 seconds)
08:55:39  <_rgn>maybe try "copy as curl" on the timeouting window fetch request and run in terminal
08:55:52  <_rgn>that should replicate the request made by browser exactly
08:56:17  * Caspinolquit (Remote host closed the connection)
08:56:46  * JakeSaysquit (Ping timeout: 264 seconds)
08:57:04  <stennowork>good call, lemme try
08:57:49  * jmdrawneekjoined
08:58:06  <stennowork>yep, the copied call works in the terminal
08:59:00  <stennowork>ok VNC session acquired, now some testing with the same IP
08:59:01  <_rgn>then i don't think there's any other option than something wrong with the browser
08:59:01  <stennowork>err
08:59:04  <stennowork>in the same network
08:59:09  <stennowork>ok, imma try FF
08:59:53  <stennowork>nah
09:00:18  * danecandoquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
09:01:21  <stennowork>blerp, cannot log into the vpn - the thin client i wanted to connect to seems to be down
09:01:43  <stennowork>i will relax now a bit, thanks _rgn for the help so far
09:01:55  * jmdrawneekquit (Ping timeout: 245 seconds)
09:05:42  * jmdrawneekjoined
09:05:57  * MrAbaddonjoined
09:06:54  * kingarmadillojoined
09:08:01  * tklxjoined
09:09:17  * keepLearning512joined
09:11:29  * kingarmadilloquit (Ping timeout: 248 seconds)
09:14:25  * orderslupjoined
09:17:45  * arecaceaequit (Remote host closed the connection)
09:18:10  * arecaceaejoined
09:22:38  * ne018quit (Ping timeout: 255 seconds)
09:23:58  * upperdeckquit (Ping timeout: 260 seconds)
09:25:55  * Rojolajoined
09:26:02  * tymczenkojoined
09:26:06  <Rojola>hi
09:26:13  * goodenoughquit (Read error: Connection reset by peer)
09:26:23  <Rojola>Question: Should I run "npm install -g cordova" as root or user?
09:27:55  * N3RG4Ljoined
09:27:58  * jmdrawneekquit (Read error: Connection reset by peer)
09:28:06  * danecandojoined
09:28:30  * jmdrawneekjoined
09:29:37  * upperdeckjoined
09:29:44  <N3RG4L>Hi all
09:29:46  <N3RG4L>I'm a nodejs noob, I have some NodeJS 4.x codes (on aws lambda) I want to upgrade to 8.x do I need to rewrite my code ? or v8 support the same syntax of v4 ?
09:31:09  * goodenoughjoined
09:32:22  * DLStevequit (Ping timeout: 260 seconds)
09:32:32  * mipesomquit (Ping timeout: 260 seconds)
09:33:31  * Caspinoljoined
09:33:46  * m00dyjoined
09:34:04  * w0ngjoined
09:35:37  <avu>N3RG4L: chances are good that your code will just work on 8.x but there probably were some deprecations / API changes. Best to just try. Better if you have a decent tests.
09:36:33  <N3RG4L>avu, thank you, that's what I saw, it's not like Python 2=>3 that is just pain
09:36:51  * jottrquit (Ping timeout: 240 seconds)
09:37:21  * ne018joined
09:38:48  * tklxquit (Quit: Leaving)
09:38:51  * m00dyquit (Ping timeout: 240 seconds)
09:38:56  * jottrjoined
09:39:16  * stormbytesquit (Quit: My Mac Mini has gone to sleep. ZZZzzz…)
09:39:22  * Caspinolquit (Ping timeout: 264 seconds)
09:41:31  * keepLearning512quit (Remote host closed the connection)
09:41:50  * mipesomjoined
09:43:03  * keepLearning512joined
09:43:46  * tymczenkoquit (Ping timeout: 260 seconds)
09:44:05  * ext0joined
09:44:07  <Rojola>I headed into a problem....
09:44:08  <Rojola>https://dpaste.de/EHOT/raw
09:44:08  * ext0quit (Changing host)
09:44:09  * ext0joined
09:44:15  <Rojola>just tried to install cordova using "npm"
09:44:21  <Rojola>maybe installing it as user was the wrong way?
09:44:30  <Rojola>but I just read online that installing as root is not good
09:45:20  <avu>Rojola: yes, best to just not use -g (and use npx to run cordova from the project's node_modules)
09:45:28  <stennowork>Rojola, you can't usually install globally without root
09:45:55  <Rojola>avu, I wasn't aware of the fact I used "npx" ?
09:46:00  <avu>tool/framework authors like to think their tools are important and globally usable enough to varant a -g install. I tend to disagree
09:46:07  <Rojola>avu, what exactly should I do?
09:46:16  <stennowork>install it with -g
09:46:16  <Rojola>stennowork, so you think I could repeat the same process as root?
09:46:17  <avu>Rojola: I was saying 'use npx to run cordova'
09:46:22  <stennowork>no root required
09:46:38  <Rojola>stennowork, I did exactly that
09:46:38  * kingarmadillojoined
09:46:41  <Rojola>stennowork, npm install -g cordova
09:46:48  <stennowork>WITHOUT g, sorry
09:47:00  * neo4quit (Quit: neo4)
09:47:08  <Rojola>gotcha
09:47:13  <stennowork>brainfart on my side
09:47:15  <Rojola>how can I clean up the current mess first?
09:47:23  * godijoined
09:47:27  <Rojola>some packages seem to have downloaded but got not installed
09:47:33  <avu>Rojola: there really is no mess since npm wasn't allowed to actually write in /usr/local
09:47:35  <Rojola>I would like to have a clean slate when starting through
09:47:36  * tymczenkojoined
09:47:38  <avu>it's only cache
09:47:39  * gregf_quit (Ping timeout: 260 seconds)
09:47:42  <Rojola>ok
09:47:46  <Rojola>so I just repeat it...
09:47:49  <Rojola>brb
09:48:00  * WebertRLZquit (Ping timeout: 268 seconds)
09:48:22  <Rojola>I will tell you whether or not it worked
09:48:25  <Rojola>just waiting...
09:48:31  <Rojola>thank you avu and stennowork
09:48:50  <Rojola>did anyone of you ever use cordova to create a real android app?
09:49:04  <stennowork>i did, but it was years ago
09:49:11  <avu>we're using cordova at work
09:49:18  <avu>not sure what you mean by "real" though :)
09:49:28  <stennowork>and its not a 'real' android app, its just a website running in an embedded browser
09:50:20  <avu>well, there are native parts to it, the UI specifically is just a website, yes
09:50:52  <Rojola>well, I would be happy to get an apk out of it at all
09:51:00  <Rojola>I used PhoneGap in the past, now i would like to try cordova
09:51:03  <avu>for anything that's not UI, you can decide if you want to go native or JS
09:51:12  <stennowork>if you want a 'real' native app, you should check out react-native
09:51:15  <Rojola>on Ubuntu 16.04 I couldn't get an apk out of it, no matter what I tried
09:51:22  <Rojola>now, on Ubuntu 18.04, I hope it will work
09:51:27  * kingarmadilloquit (Ping timeout: 240 seconds)
09:51:35  * WebertRLZjoined
09:51:40  <Rojola>I got a warning
09:51:46  <Rojola>npm WARN enoent ENOENT: no such file or directory, open '/home/rojola/package.json'
09:52:17  <avu>yes, well, if you install with npm without -i, you should do it in your project dir
09:52:29  <avu>erm, without '-g'
09:52:38  <avu>need more coffee.
09:52:53  <Rojola>the command also does not exist
09:52:54  <Rojola>cordova: command not found
09:53:02  <Rojola>how can I delete it? I want to install it as root
09:53:09  <avu>Rojola: as I said, after installing like that, you use 'npx' to run it
09:53:33  <Rojola>that's not a command and not a program
09:53:45  <avu>yes it is?
09:54:01  <avu>`npx cordova`
09:54:02  <Rojola>let me guess: via "npm" and not via apt-get ?
09:54:23  <Rojola>https://dpaste.de/GAe9/raw
09:54:26  <avu>it's just part of npm, nothing separate
09:54:39  <Rojola>but it does not exist on my system
09:54:53  <stennowork>what gives 'npm --version' ?
09:54:59  <stennowork>should be about 6
09:55:08  <Rojola>3.5.2
09:55:14  <stennowork>and 'node --version' ?
09:55:14  <avu>wtf 8)
09:55:21  <avu>ah, npm
09:55:27  <avu>still ancient
09:55:29  <Rojola>that's what "apt install nodejs" gave me
09:55:33  <stennowork>erp
09:55:34  <Rojola>and I am on Ubuntu 18.04
09:55:41  <stennowork>whats 'node --version' then?
09:55:53  <Rojola>v8.10.0
09:56:03  <stennowork>generally, you want to use nvm to handle node versioning
09:56:04  <stennowork>hmm
09:56:08  <avu>node 8.10 with npm 3.5? oO
09:56:19  <avu>yes, nvm sounds like a good idea
09:56:41  <Rojola>so I installed it in a wrong way?
09:56:44  <avu>(also solves the '-g needs root' problem btw, not that it's a terribly good idea to install with -g in any case)
09:56:46  * toiquit (Ping timeout: 264 seconds)
09:56:51  <stennowork>npx is only available for npm>=5.2.0
09:56:58  <stennowork>well, i wouldn't say it was the wrong way
09:57:20  <stennowork>the problem is that even for modern ubuntu, the packages are ancient
09:57:35  <stennowork>nvm is a great and simple tool to get you the newest versions all the time
09:57:45  <avu>this whole eco syste just moves a bit too fast for distribution release cycles
09:58:21  <Rojola>stennowork, please tell me what exactly I should do (nvm)
09:58:25  <stennowork>i wouldn't blame you to try getting it from apt, i did that too a few times already - but you really really should use nvm
09:58:27  <stennowork>sure
09:58:29  <Rojola>I would like not to mess it up again
09:58:37  * Impalooquit (Quit: The Lounge - https://thelounge.chat)
09:58:40  <stennowork>https://github.com/creationix/nvm
09:58:43  <Rojola>should I uninstall "nodejs" and "npm" first?
09:58:49  <stennowork>curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
09:58:56  <stennowork>you can, but its not neccessary
09:58:57  * pstefquit (Read error: Connection reset by peer)
09:59:01  <Rojola>I would like to
09:59:03  <Rojola>hold on
09:59:04  <stennowork>ok
09:59:12  * Impaloojoined
09:59:32  <stennowork>whats important about this is now, when you try to install a package with apt that requires node for some reason, it will fail
09:59:50  <stennowork>(when you uninstall it now)
09:59:53  <Rojola>damn
09:59:57  <Rojola>too late
09:59:58  <stennowork>just keep that in mind, it might maybe not be relevant
10:00:00  <Rojola>okay I reinstall it
10:00:04  <stennowork>nah chill
10:00:10  <stennowork>maybe just do it once it becomes relevant
10:00:33  <stennowork>just use nvm for now and follow the steps given under 'Installation' on the github page i linked you
10:00:34  <avu>(it won't fail, it will just pull in the apt nodejs again)
10:00:37  <stennowork>right
10:01:24  * weilbithjoined
10:02:25  <Rojola>I can not install nodejs any more
10:02:42  <Rojola>I tried to re-install all the packages that were deleted when I purged it
10:02:59  <stennowork>don't do it
10:03:10  <stennowork>just follow the nvm instructions
10:03:12  <Rojola>https://dpaste.de/04Jg/raw
10:03:25  <Rojola>but I will need nodejs if I install programs that need it
10:03:25  * lord|quit (Quit: WeeChat 2.1)
10:03:48  * Caspinoljoined
10:04:03  <stennowork>what happens if you just do apt install nodejs
10:04:33  <Rojola>that would probably work
10:04:34  <Rojola>anyway
10:04:38  <Rojola>I proceed with nvm now
10:04:55  <Rojola>question: If I delete ~/.npm/ - would I then delete _all_ that I installed before?
10:06:56  <Rojola>I deleted it
10:07:17  <Rojola>stennowork, would I run this as user or root?
10:07:17  <Rojola>curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
10:07:51  <stennowork>i think you should
10:07:57  <stennowork>not sure though
10:08:05  * jakutisjoined
10:08:11  <Rojola>me neither
10:08:37  * Caspinolquit (Ping timeout: 256 seconds)
10:13:01  * gregf_joined
10:13:53  * ne018quit (Read error: Connection reset by peer)
10:14:23  * ne018joined
10:16:52  <Rojola>I believe I must reboot
10:16:54  * keepLearning512quit (Remote host closed the connection)
10:16:56  <Rojola>the path is messed up
10:17:16  <Rojola>I installed "nvm" as user, then as root, wanted to try both
10:17:20  <Rojola>deleted one of the installations
10:17:23  <Rojola>wanted to redo it
10:17:25  <Rojola>now I get:
10:17:26  <Rojola>You have $NVM_DIR set to "/root/.nvm", but that directory does not exist. Check your profile files and environment
10:17:37  <Rojola>this is the error I get when installing
10:18:39  * plutoniixquit (Quit: Leaving)
10:19:20  * tymczenkoquit (Ping timeout: 255 seconds)
10:19:47  * kakashiA1quit (Ping timeout: 245 seconds)
10:20:00  * ed209quit (Remote host closed the connection)
10:20:07  * ed209joined
10:21:06  <geirha>Don't run it as root
10:21:56  <geirha>It's meant to be run as your user. It injects lots of stuff into your interactive session. It downloads and installs node inside your homedir
10:24:31  * keepLearning512joined
10:24:44  * ne018quit (Ping timeout: 255 seconds)
10:25:05  * mylesborinsquit (Quit: farewell for now)
10:25:29  * tymczenkojoined
10:25:36  * mylesborinsjoined
10:26:06  <Rojola>damn
10:26:08  <Rojola>geirha, too late
10:26:12  <Rojola>geirha, I did it all as root
10:26:15  <Rojola>how can I undo it?
10:26:27  <Rojola># node --version
10:26:27  <Rojola>v10.5.0
10:26:30  <Rojola>^
10:28:14  * gliquit (Quit: Leaving)
10:28:33  * N3RG4Lquit (Ping timeout: 264 seconds)
10:28:55  <Rojola>geirha,
10:28:56  <Rojola># nvm uninstall v10.5.0
10:28:56  <Rojola>nvm: Cannot uninstall currently-active node version, v10.5.0 (inferred from v10.5.0).
10:30:54  * BeerLoverquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
10:33:01  * heyitsramajoined
10:33:56  * Caspinoljoined
10:33:57  * jeffreylevesquequit (Ping timeout: 240 seconds)
10:34:07  <geirha>I don't use nvm and don't know how to uninstall it, but that install is contained within root's homedir, and only available to root. Whether you uninstall it or leave it doesn't matter. You can install as your user regardless; every user can
10:34:24  * godiquit (Remote host closed the connection)
10:34:45  * BeerLoverjoined
10:34:55  * m00dyjoined
10:35:31  * ne018joined
10:36:10  <Rojola>geirha, I just solved it
10:36:13  <Rojola>nvm deactivate
10:36:19  <Rojola>nvm uninstall v10.5.0
10:36:27  <Rojola>rm -rf /root/.nvm
10:36:37  * jakutisquit (Remote host closed the connection)
10:36:39  <Rojola>unset NVM_DIR
10:36:45  <Rojola>vim /root/.bashrc
10:36:51  <Rojola>and then deleting the 3 lines from nvm
10:37:25  * macwinnerjoined
10:38:50  * Caspinolquit (Ping timeout: 276 seconds)
10:39:26  * jakutisjoined
10:40:21  * m00dyquit (Ping timeout: 260 seconds)
10:41:04  * goodenoughquit (Read error: Connection reset by peer)
10:41:20  * jmdrawneekquit (Remote host closed the connection)
10:42:03  * macwinnerquit (Ping timeout: 256 seconds)
10:43:02  <Rojola>Question: "npm" and "node" are now installed
10:43:13  <Rojola>however I get an error when installing cordova
10:43:14  <Rojola>https://dpaste.de/vyKe/raw
10:43:47  <geirha>did you mean to include -g ?
10:43:53  <Rojola>no
10:44:02  <Rojola>I thought I should install it as user?!
10:44:02  <geirha>so your homedir is a node project?
10:44:09  <Rojola>the entire home dir?!
10:44:09  <Rojola>no
10:44:15  <geirha>then you do want -g. npm -g install cordova
10:44:21  <Rojola>but that won't work
10:44:23  <Rojola>I am a user
10:44:32  <Rojola>node and npm are only installed in my user dir
10:44:36  <geirha>run npm -g prefix
10:44:41  <Rojola>ok
10:44:43  <geirha>that's where it will be installed with -g
10:44:46  * tymczenkoquit (Ping timeout: 264 seconds)
10:45:26  <Rojola>the command is running...
10:45:43  <Rojola>I don't know how it can be installed globally when I run it as user
10:45:56  <geirha>the global dir is inside your homedir
10:46:53  <geirha>it's not global as in "for all users". It's global as in "not limited to a single project"
10:47:03  * N3RG4Ljoined
10:47:52  * mezodquit (Remote host closed the connection)
10:48:07  * bonhoefferjoined
10:48:08  * keepLearning512quit (Remote host closed the connection)
10:48:39  <bonhoeffer>hey -- what is the best practice to create a table with mongo and node -- directly log into db or some config file that does it automatically
10:49:51  * tymczenkojoined
10:49:51  * keepLearning512joined
10:49:52  <Rojola>thank you geirha !
10:49:53  <Rojola>it workesd
10:49:55  <Rojola>*worked
10:50:13  * goodenoughjoined
10:51:33  <Rojola>Thank you very, very much, avu, stennowork and geirha !
10:51:39  <Rojola>everything works now!
10:51:42  * ne018quit (Read error: Connection reset by peer)
10:51:50  * cannapjoined
10:52:10  * ne018joined
10:52:14  <stennowork>Rojola, yay, congrats!
10:52:19  <stennowork>good job
10:52:44  <stennowork>so you got it working with npx ?
10:53:10  <stennowork>oh you installed it with -g after all
10:53:17  * Sharaaljoined
10:53:19  <Rojola>yes geirha said so
10:53:25  <stennowork>well, then
10:53:26  <stennowork>shrug
10:53:30  <Rojola>sorry
10:53:39  <stennowork>for what lol
10:53:43  <stennowork>its not my project :P
10:53:48  <Rojola>for doing it a little different ^.^
10:53:54  <stennowork>glad its running after all
10:54:36  * Venemoquit (Quit: Communi 3.5.0 - http://communi.github.com)
10:55:20  * danecandoquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
10:56:13  * Trochanjoined
10:56:47  * tymczenkoquit (Ping timeout: 265 seconds)
10:57:01  <Rojola>sorry, me again
10:57:07  <Rojola>I tried to run "cordova build"
10:57:13  <Rojola>among many errors, I got this line:
10:57:15  <Rojola>(node:29943) UnhandledPromiseRejectionWarning: CordovaError: Failed to find 'JAVA_HOME' environment variable. Try setting it manually.
10:57:42  <Rojola>then I tried this:
10:57:43  <Rojola>JAVA_HOME="/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java"
10:57:45  * Sharaalquit (Ping timeout: 245 seconds)
10:57:56  <Rojola>and re-ran "cordova-build" but it did not work
10:59:26  * ne018quit (Read error: Connection reset by peer)
10:59:35  * rezettaquit (Quit: Leaving.)
10:59:59  * ne018joined
11:01:08  * goodenoughquit (Read error: Connection reset by peer)
11:01:59  * hollusionjoined
11:02:23  <geirha>did you export it? export JAVA_HOME
11:03:44  <avu>Rojola: JAVA_HOME must be set to the JDK install dir, not to the path to the java executable
11:03:54  <avu>Rojola: so in your case probably /usr/lib/jvm/java-1.11.0-openjdk-amd64/
11:03:59  <Rojola>also tried that
11:04:01  <Rojola>same issue
11:04:08  <avu>then what geirha said
11:04:10  <Rojola>geirha, I did not export it
11:04:29  <Rojola>same result
11:04:38  <geirha>exact same error?
11:04:53  * Trochanquit (Quit: Page closed)
11:04:57  <Rojola>https://dpaste.de/Von2/raw
11:05:07  <Rojola>oh
11:05:11  <Rojola>no - you are right
11:05:14  <Rojola>now it's ANDROID_HOME
11:05:23  <geirha>rince and repeat till it works ;)
11:06:01  <Rojola>https://dpaste.de/xgEO/raw
11:06:20  <Rojola>now there is no error message telling me what to do
11:06:24  <Rojola>ANDROID_HOME has been set
11:06:28  * Caspinoljoined
11:06:45  <Rojola>"Requirements check failed for JDK 1.8 or greater"
11:06:53  <Rojola>but I have JDK 1.11+
11:07:09  <avu>maybe it doesn't work with openjdk, try the Oracle JDK?
11:07:15  <avu>That's just a wild guess though
11:07:59  * Troachjoined
11:08:12  <Rojola>hopefully that exists for ubuntu - I will check
11:08:13  <Rojola>thank you
11:08:18  <avu>it does
11:08:50  * danneuquit (Quit: Connection closed for inactivity)
11:08:55  <avu>the webupd8 people have a nice package to install it in their ppa
11:09:13  <avu>https://launchpad.net/~webupd8team/+archive/ubuntu/java
11:09:14  * danecandojoined
11:10:18  * goodenoughjoined
11:11:18  * BeerLoverquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
11:12:23  * dimitriaatosjoined
11:12:28  * dimitriaatosquit (Client Quit)
11:13:06  * Caspinolquit (Ping timeout: 256 seconds)
11:13:09  <Rojola>avu, also just found that
11:13:20  <Rojola>avu, I am always a little hesitant when it comes to 3rd party repos
11:13:33  <Rojola>avu, you think they are trustworthy?
11:14:38  <avu>Rojola: they have been doing this for years now and my personal experience has been good. But I'm just a random person on IRC.. :)
11:14:50  <Rojola>ok I try it
11:14:59  * cherry-xwjoined
11:16:10  * ozettejoined
11:16:37  * cjorcljoined
11:17:04  * cjorclpart
11:17:14  <ozette>i see the weirdest thing happen in my node v6.1.0 application
11:19:19  * cherry-xwquit (Client Quit)
11:19:57  <ozette>sec..
11:20:13  * Anticomjoined
11:21:51  * Troachquit (Quit: Page closed)
11:24:04  * rezettajoined
11:27:26  * goodenoughquit (Read error: Connection reset by peer)
11:29:57  * weilbithquit (Ping timeout: 240 seconds)
11:30:15  * goodenoughjoined
11:30:50  * kingarmadillojoined
11:35:12  * falafelquit (Ping timeout: 256 seconds)
11:35:34  * rezettaquit (Quit: Leaving.)
11:36:00  * m00dyjoined
11:36:35  * gde33joined
11:37:41  * jmdrawneekjoined
11:40:57  * m00dyquit (Ping timeout: 240 seconds)
11:43:39  * Caspinoljoined
11:46:50  * tymczenkojoined
11:48:29  * Caspinolquit (Ping timeout: 276 seconds)
11:49:59  * supernov3hjoined
11:51:04  * horseyjoined
11:51:57  * tymczenkoquit (Ping timeout: 264 seconds)
11:52:41  * N3RG4Lquit (Ping timeout: 260 seconds)
11:55:13  * bonhoefferquit (Quit: Page closed)
11:55:45  * horseyquit (Ping timeout: 265 seconds)
11:55:57  * Sharaaljoined
12:00:15  * N3RG4Ljoined
12:00:27  * Sharaalquit (Ping timeout: 256 seconds)
12:01:39  * mezodjoined
12:02:35  <gajus>Is there anyone from #npm support that's around to take a look at my ticket?
12:04:12  * tymczenkojoined
12:05:57  * plexigrasjoined
12:06:29  * mezodquit (Ping timeout: 256 seconds)
12:06:31  * keepLearning512quit (Remote host closed the connection)
12:09:06  * sxajoined
12:12:09  * tymczenkoquit (Ping timeout: 256 seconds)
12:12:17  * goodenoughquit (Read error: Connection reset by peer)
12:14:20  * earendel2joined
12:16:28  * keepLearning512joined
12:20:13  * keepLearning512quit (Remote host closed the connection)
12:20:30  * keepLearning512joined
12:23:12  * kjartanquit (Read error: Connection reset by peer)
12:25:07  * ericlimajoined
12:25:14  * ericlimaquit (Remote host closed the connection)
12:25:27  * ericlimajoined
12:26:15  * kjartanjoined
12:27:20  * beefjoejoined
12:28:28  * rajpratik71joined
12:29:38  * apparitionjoined
12:30:02  * goodenoughjoined
12:30:03  <Catalysm>Idea what causes the spam detection to trigger? Seems a normal name to me http://dpaste.com/3QJX3W4
12:30:17  * ne018quit (Ping timeout: 255 seconds)
12:31:31  * stalledquit (Ping timeout: 265 seconds)
12:32:50  * rajpratik71quit (Remote host closed the connection)
12:33:12  * ssarahjoined
12:33:24  * ssarahquit (Max SendQ exceeded)
12:34:14  * ssarahjoined
12:34:34  * earendel2quit (Ping timeout: 256 seconds)
12:37:02  <Catalysm>nvm, 7daystodie-api-wrapper worked :)
12:37:10  * m00dyjoined
12:37:26  <stennowork>good day, where can i find the CURRENT, ACTUAL documentation about how socket.io can be run with express.js ?
12:37:32  <stennowork>i found 5 different ways
12:37:35  <stennowork>or 6?
12:38:22  <stennowork>for express 4.16
12:38:27  <stennowork>and socket.io version 2.1
12:39:53  * Caspinoljoined
12:40:05  * bmlzootownquit (Ping timeout: 240 seconds)
12:40:47  * danecandoquit (Remote host closed the connection)
12:41:16  * b7hd6yz01joined
12:42:21  * m00dyquit (Ping timeout: 264 seconds)
12:42:37  * Sven_vBjoined
12:43:59  <avu>do you really still need socket.io? I thought its primary advantage was the fallback to eio/polling, which you don't really need anymore now that everthing speaks websocket
12:44:34  <joepie91>avu: no, you don't
12:44:47  * Caspinolquit (Ping timeout: 245 seconds)
12:45:25  * goodenoughquit (Read error: Connection reset by peer)
12:45:44  <avu>that might explain why it's hard to find "CURRENT" documention, stennowork ;)
12:46:11  <Sven_vB>avu, my privoxy can't speak websocket.
12:46:40  * Anticomquit (Quit: Leaving)
12:46:45  * Venemojoined
12:46:49  * ne018joined
12:48:06  * chachanjoined
12:48:28  <Rojola>avu, oracle-java makes no difference for me when it comes to "cordova build"
12:48:32  <Rojola>avu, same errors
12:49:54  <avu>Rojola: sure it's the exact same error, complaining about the JDK version?
12:50:00  <Rojola>yes
12:50:14  <Rojola>actually it complains about Gradle
12:50:17  <Rojola>but it also did that before
12:50:18  <avu>and you changed JAVA_HOME to point to your new Oracle JDK installation?
12:50:19  * goodenoughjoined
12:50:21  <Rojola>with Open JDK
12:50:26  <Rojola>yes
12:50:31  <Rojola>also ANDROID_HOME
12:50:50  <avu>actually, the last error you posted says nothing about Gradle
12:51:07  <avu>post the full error message as you see it now
12:51:11  * ne018quit (Remote host closed the connection)
12:52:24  * setpillquit (Quit: o/)
12:54:32  * Caspinoljoined
12:54:50  * kakashiA1joined
12:55:57  <Rojola>avu, https://dpaste.de/Gn4n/raw
12:56:17  * setpilljoined
12:56:23  * jaawerthjoined
12:56:25  <avu>ok, so it is in fact a completely diffrent, new error, nothing anymore about the JDK version... :)
12:56:42  <avu>seems like you should install Gradle
12:56:50  <Rojola>https://gradle.org/install/
12:56:51  <Rojola>yep
12:56:54  <Rojola>sorry
12:57:17  <avu>RTFSTDERR ;)
12:58:29  * IanLiujoined
12:58:39  * stalledjoined
12:59:13  * Caspinolquit (Ping timeout: 248 seconds)
13:00:54  * b7hd6yz01quit (Quit: Konversation terminated!)
13:01:46  * pnepe6quit (Read error: Connection reset by peer)
13:02:40  * goodenoughquit (Read error: Connection reset by peer)
13:05:21  * stalledquit (Ping timeout: 240 seconds)
13:05:34  * Caspinoljoined
13:05:37  * edwardlyquit (Ping timeout: 248 seconds)
13:05:46  * ne018joined
13:06:21  * chachanquit (Ping timeout: 240 seconds)
13:06:30  * EyePulpjoined
13:10:04  * Sharaaljoined
13:10:16  * Caspinolquit (Ping timeout: 268 seconds)
13:11:08  * marthinalquit (Remote host closed the connection)
13:13:34  * marthinaljoined
13:14:06  * psychicist__joined
13:14:22  * Sharaalquit (Ping timeout: 256 seconds)
13:14:35  * codymjjoined
13:17:08  * ne018quit (Remote host closed the connection)
13:19:35  * thekingofbanditquit (Ping timeout: 240 seconds)
13:20:24  * goodenoughjoined
13:20:27  * bugfixerquit (Ping timeout: 240 seconds)
13:21:16  * ne018joined
13:21:17  * mezodjoined
13:22:12  * ahandyjoined
13:23:42  * bugfixerjoined
13:23:42  * bugfixerquit (Changing host)
13:23:42  * bugfixerjoined
13:24:01  * marthinalquit (Remote host closed the connection)
13:24:14  * Rashadjoined
13:29:38  * thekingofbanditjoined
13:29:49  * mzl0joined
13:30:17  * neo4joined
13:32:28  * mac_ifiedjoined
13:34:04  * flying_sausagesquit (Quit: You just lost the game. Peace Out.)
13:34:25  <Rojola>avu, I got it to work
13:34:35  <Rojola>avu, and then I got so many exception errors....
13:34:41  * bugfixerquit (Quit: null)
13:35:02  * thekingofbanditquit (Ping timeout: 260 seconds)
13:35:28  * bugfixerjoined
13:35:28  * bugfixerquit (Changing host)
13:35:28  * bugfixerjoined
13:35:28  <Rojola>avu, https://dpaste.de/ghYa/raw
13:36:10  * stalledjoined
13:36:24  <avu>Rojola: I see exactly one error and it seems quite clear on what you should do to fix it
13:36:26  * Stevermanjoined
13:36:36  <Rojola>let me re-read it
13:36:38  * Caspinoljoined
13:36:39  <avu>Rojola: but we're firmly crossing into Android territory
13:36:51  <Rojola>Exception in thread "main" javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
13:36:56  <avu>Rojola: which makes us quite off topic in this here channel
13:36:58  <Rojola>that's an error I cannot fix
13:37:01  <Rojola>sorry
13:37:08  * turboteddyjoined
13:38:20  * m00dyjoined
13:40:57  * bmlzootownjoined
13:41:19  * Caspinolquit (Ping timeout: 256 seconds)
13:41:19  * stalledquit (Ping timeout: 256 seconds)
13:43:09  * ne018quit (Remote host closed the connection)
13:43:33  * m00dyquit (Ping timeout: 264 seconds)
13:44:09  * flying_sausagesjoined
13:44:24  * rhonabwyjoined
13:44:49  * neo4quit (Quit: neo4)
13:44:58  * kneeki|ajoined
13:50:06  * tvwquit (Read error: Connection reset by peer)
13:50:18  * tvwjoined
13:50:44  * marthinaljoined
13:51:47  * horseyjoined
13:53:24  * Ergojoined
13:53:54  * mezodquit (Remote host closed the connection)
13:54:13  * keepLearning512quit (Remote host closed the connection)
13:55:57  * horseyquit (Ping timeout: 240 seconds)
13:58:11  * goodenoughquit (Read error: Connection reset by peer)
13:59:55  * Avinashjoined
14:02:12  * cdransfjoined
14:02:33  * gajusrolls eyes; what time does NPM support wake up?
14:02:45  * chachanjoined
14:03:30  * Avinashquit (Client Quit)
14:04:09  * keepLearning512joined
14:04:10  * stalledjoined
14:04:33  * cdransfquit (Client Quit)
14:07:25  * goodenoughjoined
14:08:27  * supernov3hquit (Ping timeout: 240 seconds)
14:09:32  * keepLearning512quit (Ping timeout: 276 seconds)
14:10:16  * bdunavantjoined
14:10:39  <halftroll>what do you guys think about mongodb ?
14:11:26  <halftroll>do it has the same use cases as mysql ?, is it nice ?
14:11:55  * stalledquit (Ping timeout: 256 seconds)
14:12:57  * smccarthyjoined
14:13:08  * jkridnerquit (Remote host closed the connection)
14:13:34  * jottrquit (Ping timeout: 264 seconds)
14:14:25  * thekingofbanditjoined
14:15:03  * keepLearning512joined
14:17:23  <bradleymeck>lets go with: it doesn't tailor to the same data use cases. per "nice": it is easy to use in the beginning, but harder to use in the end
14:17:24  * alasiquit (Quit: Connection closed for inactivity)
14:17:29  * jkridnerjoined
14:17:50  * Caspinoljoined
14:19:21  * keepLearning512quit (Remote host closed the connection)
14:19:36  * keepLearning512joined
14:19:46  <bradleymeck>if you are almost only writing data, that is somewhat free-form document stores are nice, if you are trying to keep data in sync they are difficult in my experience
14:19:51  * Venemoquit (Ping timeout: 240 seconds)
14:20:15  <bradleymeck>when apps first start up they often have more flexible schema and free-form is ok, but as they get more data they have more need to keep it organized and in sync
14:20:17  * Xiti`joined
14:20:46  * jkridnerquit (Read error: Connection reset by peer)
14:20:59  * Sharaaljoined
14:21:24  * jkridnerjoined
14:21:26  * goodenoughquit (Read error: Connection reset by peer)
14:21:40  <bradleymeck>i will state that logs and random meta-data attached to values are probably the place where documents shine, but you can/should probably just use something like the ELK stack for logs and meta-data can generally just be stored as some string unless you need to index it
14:22:35  * Caspinolquit (Ping timeout: 240 seconds)
14:22:47  <halftroll>bradleymeck: ok thanks!!!!!!!!!!!!!!
14:22:49  <gajus>I am yet to see a single use case scenario where Mongodb was chosen not because the lead developer does not know how to use RDBMS
14:23:17  * mezodjoined
14:23:29  * Xitiquit (Ping timeout: 248 seconds)
14:24:42  <bradleymeck>gajus: i've seen it work ok for a comment system with tons of random tags, but even then you can use other document stores
14:25:19  <bradleymeck>i love the idea of couchdb, not the implementation...
14:25:30  * kakashiA1quit (Ping timeout: 268 seconds)
14:25:41  * Sharaalquit (Ping timeout: 276 seconds)
14:27:13  * ahmedelgabriquit (Ping timeout: 248 seconds)
14:29:44  * Caspinoljoined
14:30:39  * goodenoughjoined
14:33:05  * voidcraftedjoined
14:33:08  * Jetimon_quit (Ping timeout: 255 seconds)
14:34:00  * Caspinolquit (Ping timeout: 245 seconds)
14:34:34  * IanLiuquit (Quit: IanLiu)
14:35:01  * IanLiujoined
14:36:26  * al-damirijoined
14:36:53  * rendarquit (Quit: Naïm Favier a.k.a. nai is f!@#in` stupid! ahah)
14:39:09  * IanLiuquit (Client Quit)
14:39:25  * m00dyjoined
14:39:36  * IanLiujoined
14:39:55  * Roughyjoined
14:40:21  * macwinnerjoined
14:43:05  <Wes->bradleymeck: are they still running their query engine through ancient spidermonkey?
14:43:39  * greggerzjoined
14:44:13  * Keanu73joined
14:44:46  * m00dyquit (Ping timeout: 264 seconds)
14:45:24  * macwinnerquit (Ping timeout: 265 seconds)
14:45:51  * keepLearning512quit (Remote host closed the connection)
14:46:39  * goodenoughquit (Read error: Connection reset by peer)
14:47:25  * GreenJellojoined
14:48:45  <bradleymeck>Wes-: they moved to v8 then back to spidermonkey last I heard but that was a while ago
14:49:06  * Metalsuttonquit (Quit: Leaving)
14:51:35  * goodenoughjoined
14:51:57  * patarrjoined
14:52:36  * Aquazijoined
14:53:51  * Mattiaslndstrmjoined
14:54:39  * Dbuggerquit (Disconnected by services)
14:55:05  * dbugger_joined
14:55:49  * keepLearning512joined
14:56:20  * groomquit (Quit: Leaving.)
14:57:24  * jottrjoined
14:58:00  <jaawerth>yeah I'm surprised people don't just use Elastisearch more often as a document store. I guess the index/size tuning and rep for complexity is what holds people back
14:58:25  <jaawerth>it's too bad RethinkDB seems to be in limbo
14:58:41  * Sharaaljoined
14:59:00  <jaawerth>not that I have much reason to stray from postgres most of the time
15:00:51  * keepLearning512quit (Ping timeout: 240 seconds)
15:02:43  * Caspinoljoined
15:02:45  * goodenoughquit (Read error: Connection reset by peer)
15:03:02  * Sharaalquit (Ping timeout: 256 seconds)
15:06:57  * Caspinolquit (Ping timeout: 240 seconds)
15:08:53  * stormbytesjoined
15:09:15  <zsoc>jaawerth: i keep thinking there should be some way to still keep data integrity with like... a schema and ACID compliance and not need an RDBMS
15:09:24  <zsoc>then i realized that if you implement all that stuff you're already there lol
15:09:28  <jaawerth>haha
15:10:08  <zsoc>even if you created a database where all of the schema stuff was coupled to the application (like 'models' in mongoose) and acid stuff was coupled to the driver implementation... you're just creating a less flexible slower RDBMS heh
15:10:31  * moldyjoined
15:11:41  <jaawerth>at least the map/reduce-based ones force you to think about your data
15:11:49  <jaawerth>kind of leads to a sort of programmatic schema
15:11:55  * goodenoughjoined
15:11:58  * voidcraftedquit (Remote host closed the connection)
15:12:06  <zsoc>functional based... what?
15:12:26  <zsoc>data stores?
15:12:44  <zsoc>not sure how the interfacing affects schema... maybe it fixes some of the isolation or mutation issues?
15:13:02  <jaawerth>well, like in couchdb you have to write "views" to get at your data in a meaningful way
15:13:09  <zsoc>ah
15:13:17  <zsoc>i'm not familiar, that's interesting
15:13:32  <zsoc>What happened to like couch and level? aren't they stagnating?
15:13:39  <jaawerth>so, like, if you want to be able to efficiently query by some property, you have to write a view with a map function that gives that property
15:13:55  <jaawerth>are they?
15:14:05  <bradleymeck>jaawerth: how is document store integrations (hbase and json) / js based querying with the node libs for pg
15:14:40  * stalledjoined
15:14:42  <jaawerth>bradleymeck: you mean, like, using json/jsonb operators and such?
15:14:47  <zsoc>Really good if you use Objection. They caked in a lot of the json/b field handling so you can access and manipulate directly by property etc
15:14:47  <bradleymeck>yea
15:14:59  <zsoc>otherwise you use knex and just the raw json/b operators :p which are fantastic in pg
15:16:02  <jaawerth>yeah, the driver supports the data type and if, you, say, use knex and want to update a jsonb column you can just pass the data in and it knows what to do. but for actually querying it you need to use knex.raw with the operators
15:16:09  <jaawerth>objection adds some convenience on top of that
15:16:15  <jaawerth>I usually write little reusable operators
15:16:44  * Caspinoljoined
15:16:47  <bradleymeck>that and stored procedures were kind of :( last I tried using pg with node
15:17:12  <zsoc>They are just called 'functions' with pg ;)
15:17:39  <bradleymeck>i'll call them what i learned in school probably forever
15:17:47  * LiftLeftquit (Ping timeout: 265 seconds)
15:17:58  <zsoc>It's a meme, it's probably fine to call them SPs lol
15:18:20  <ozette>how to debug why the lengthComputable of an upload is fale ?
15:18:55  <jaawerth>like jsonOps = knex => ({ path: ({doc, path}) => knex.raw(':doc#>>:path', {doc, path}), prop: ({ doc, prop }) => knex.raw(':doc->>:prop', {doc, prop}) })
15:18:57  * jottrquit (Ping timeout: 264 seconds)
15:18:58  * fralala-dadadujoined
15:18:59  * foodSurprisequit (Ping timeout: 260 seconds)
15:19:07  <zsoc>ozette: that appears to be a prop of a WebApi interface... so that would be a client concern?
15:19:16  <jaawerth>and with knex you can pass those raw queries right into select() and other things and it will know what to do
15:19:50  <zsoc>I like how ->> is like a shortcut to ::text - i thought it was obscure at first but i think it fits in with the notation well
15:20:09  <jaawerth>bradleymeck: there's also no convenience features for, say, doing upsert with ON CONFLICT DO UPDATE - I actually have some generic code for this I plan on cleaning up and throwing into a module
15:20:26  <jaawerth>zsoc: yeah it seemed weird at first, but it's consistent enough that it's easy to remember
15:20:45  <ozette>zsoc: i read here: https://stackoverflow.com/questions/11127654/why-is-progressevent-lengthcomputable-false/11848934 that it might have something to do with the server
15:21:01  <ozette>what i see in the browser is very weird, but consistent
15:21:02  * Caspinolquit (Ping timeout: 245 seconds)
15:21:20  <zsoc>jaawerth: i'll be honest i have no idea how #>/#>> works... are those shortcuts for nested objects / nested json strings?
15:21:34  <ozette>(Wilhem's answer)
15:21:39  <jaawerth>zsoc: yeah it's basically getIn
15:22:08  * EREVANjoined
15:22:13  <zsoc>ozette: er... but this is for an upload? i'm confused if you're doing an upload how you would expect the server to send a content-length? and what the length would be of?
15:22:47  <zsoc>this would be like, if you're downloading a large file or something?
15:22:58  * smccarthyquit (Remote host closed the connection)
15:23:10  <jaawerth>zsoc: so, like, select ('{"a": {"b": [1, 2, 3] }}'::jsonb)#>>'{a, b, 1}' => 2
15:23:11  <ozette>does this make any sense to you? at 1 file upload of 2.5GB = lengthComputable is false after 'two cycles', so halts the upload almost immediatly. two file uploads of 2.5GB = lengthComputable isn't false for about 2 minutes and then the upload is aborted
15:23:34  * smccarthyjoined
15:23:47  <zsoc>jaawerth: ooo.. i see
15:23:52  <ozette>zsoc: i don't know, the server saying it accepts whatever the client is trying to upload perhaps?
15:24:30  * LiftLeftjoined
15:24:43  <ozette>i'm not a http guru unfortunately, almost every day i learn something new that makes no sense to me
15:24:44  <zsoc>ozette: n.. no. That SO post is an example of *downloading* a file, not uploading one
15:24:55  <jaawerth>zsoc: you could also, of course, do doc->'a'->'b'->1 but I dunno if the query planner optimizes out the intermediate or not
15:24:58  <zsoc>If you are uploading a file, *you* are the one setting the content-length header lol
15:24:59  <bradleymeck>ozette: do you mean to be using XHR.upload per https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Monitoring_progress
15:25:02  * dongustonquit (Ping timeout: 265 seconds)
15:25:23  <zsoc>jaawerth: right that's how i would always do it
15:25:51  <ozette>zsoc: riiight
15:26:11  * Praisequit (Ping timeout: 260 seconds)
15:26:35  <moldy>so, if you use nvm on linux -- how do you get the executables of installed packages into your $PATH?
15:26:45  <jaawerth>I am finding jsonb_to_record and jsonb_to_recorset increasingly useful when dealing with documents you want to "project" into a normal table for using with relations
15:27:01  <zsoc>moldy: use npx or install globally
15:27:19  <zsoc>but installing globally is ugh so.. npx or npm scripts or node_modules/.bin/
15:27:29  <jaawerth>moldy: global ones, you mean? or project-local?
15:27:31  <moldy>zsoc: i did install globally
15:27:31  <bradleymeck>i'm lazy `$(npm bin)/executable`
15:27:35  * bdunavantquit (Remote host closed the connection)
15:27:38  <ozette>bradleymeck: yes, i'm trying to monitor the progress and the lengthComputable of the event is false whenever the file is like 2GB or larger (1.5GB according to my colleague)
15:27:50  <bradleymeck>npx is never gonna be something i run until we get a whitelist and code signing
15:27:58  <jaawerth>moldy: if they're global, you just need to rehash your path. `hash -r` in bash, `rehash` in zsh
15:28:02  <ozette>and when uploading two files, it's only false after 2 minutes
15:28:09  <zsoc>bradleymeck: that's... probably good advice lol
15:28:12  * quidquojoined
15:28:15  * setpillquit (Quit: o/)
15:28:27  <jaawerth>moldy: it will be automatic next time you open a new shell too, rehashing is just faster to get your PATH updated in your current shell
15:28:34  <ozette>when uploading 3 files, it's immediatly false. and when uploading 7 files of 2.5GB it's only false after 2 minutes again
15:28:35  <moldy>jaawerth: hmm doesn't seem to work here
15:28:42  * goodenoughquit (Read error: Connection reset by peer)
15:28:42  <bradleymeck>ozette: dunno but xhr.upload is purely on browser side
15:28:52  <jaawerth>odd. and you're sourcing nvm in your bashrc/zshrc?
15:28:52  <zsoc>ozette: if you are trying to upload a file larger than 1.5Gb to a node process and that node process is trying to store it in memory... yes it's going to crash / heap overflow. Is that what you're experiencing?
15:28:59  <ozette>this happens consistently across all browsers and all client systems
15:29:04  <moldy>zsoc, jaawerth: so i now have ~/.npm/versions/node/v10.5.0/lib/node_modules/polymer-cli/bin/. but that's not on my $PATH?
15:29:21  <bradleymeck>ozette: curious, but don't see how it would be affected by a server
15:29:31  <zsoc>moldy: polymer is supposed to install the exec into node_modules/.bin/
15:29:36  <zsoc>or a symlink i guess
15:29:49  * N3RG4L_joined
15:29:57  * goodenoughjoined
15:29:58  <ozette>zsoc: i'm experiencing unexpected end of multipart data errprs
15:30:02  <moldy>zsoc: hmm, that directory doesn't exist
15:30:14  <merpnderp>I've been looking over Django and Ruby and they do a TON of magic for you. The only thing in node.js I could find similar is sails and it seems to barely be used. What is node doing that isn't done much better by Django/Rails?
15:30:21  * N3RG4Lquit (Read error: Connection reset by peer)
15:30:36  <ozette>zsoc: not memory related
15:30:37  <zsoc>merpnderp: django and rails are terrible for 98+% of projects, you don't want magic
15:30:49  <moldy>zsoc: omg, ignore me
15:30:50  <zsoc>merpnderp: see https://gist.github.com/joepie91/7f03a733a3a72d2396d6
15:31:00  <moldy>zsoc: i just realized the command is called "polymer", not "polymer-cli" :)
15:31:08  <jaawerth>moldy: global installs o cli tools should symlink executables (as configured in the "bin" field in package.json) in the path shown by `npm -g bin`, which should be in your PATH. in nvm that's $HOME/.nvm/versions/node/vX.Y.Z/bin
15:31:15  <jaawerth>at least, that's what it defaults to
15:31:37  <merpnderp>zsoc: I just watched a Ruby video showing putting together a blog, and they had it all working with auth in like 12 minutes. And if you wanted API calls from your routes you just append .json to the uri.
15:31:37  <ozette>bradleymeck: me neither, but this is very weird, at first i thought this only happened at even numbers, then i thought prime numbers, but it's random, yet consistent
15:31:38  <zsoc>jaawerth: the global bin dir is not .bin? TIL
15:31:49  * Caspinoljoined
15:31:55  <moldy>jaawerth: yeah. thanks :)
15:31:57  <zsoc>merpnderp: yep, and read that small gist - it outlines why you don't want that. What it shows in the video is literally the only thing it's good for.
15:32:00  <jaawerth>hehe, np
15:32:16  <zsoc>trying to create real world things drags increasing headache and technical debt into every iteration
15:32:20  <ozette>1 file = abort, 2 file = abort after 2 minutes, 3 file = abort, 4 file = abort after 2 minutes, 5 file = abort, 6 file = abort, 7 file = abort after 2 minutes, 8 file = abort
15:32:33  <jaawerth>zsoc: yeah, presumably it does that in node_modules to hide it from require.resolve resolution
15:32:39  <jaawerth>would be my guess
15:32:46  <jaawerth>but unnecessary for global
15:32:48  <merpnderp>zsoc: okay, good because I was going through an existential crisis thinking I'd been wasting all my time writing node apps when rails could have been magically generating all the oh-so-similar code I've been writing over and over.
15:32:51  <ozette>doesn't happen with smaller files though
15:33:03  * macwinnerjoined
15:33:10  <ozette>only when they're over 1.5GB supposedly, so ..
15:33:21  <nomoney4u>is it common for developers to know multiple frameworks such as nuxt, vue, react, ejs, jade, etc...? is there any reason why you would simply stick with 1 and disregard the rest?
15:33:25  <zsoc>ozette: if the problem was related to multipart... why would 1 file immediately abort but 2 files... only abort after the first file is done? that's all really odd
15:33:43  <ozette>also we have a test server with the same exact application running, and 2.5GB uploads work fine there
15:33:52  <nomoney4u>i might have used "frameworks" wrongly there, might be better to replace that with "rendering engine"
15:33:57  <ozette>zsoc: the first file never finishes
15:34:14  <zsoc>merpnderp: rails does horrible things... for instance your schema (that you create in your application layer) is what creates your database migrations.. so your database is not your source of truth. You could write a 3 hour presentation on why this is terrible
15:34:19  <ozette>zsoc: the whole process just bothers to transfer some megabytes before it decides to stop
15:34:25  * shokyquit
15:34:45  <zsoc>ozette: what is different between the 'test server' and what you're trying? browser the same? what about node env?
15:34:47  <ozette>and then node errors: unexpected end of multipart data
15:34:51  <merpnderp>zsoc: but the results are incredible. Complex relational apps written in minutes.
15:35:00  <ozette>zsoc: both node version 6.1.0
15:35:18  <zsoc>merpnderp: Yes! simple contrived ones that have no real world application.
15:35:50  <ozette>ive been told by our network guy that there is no difference between the servers (i may have to inquire some more) but he's said that there's no proxy in between or anything
15:35:54  <merpnderp>zsoc: Is that really true? Haven't large successful companies been written on Rails?
15:36:17  <zsoc>I don't dislike ruby or the ruby ecosystem.. but rails and django are dying as quickly as their popularity exploded. They have a place. There are always going to be CRUD apps that have 1 purpose that you can make in a week and never need to touch again
15:36:25  <zsoc>those are a vast minority of web apps tho
15:36:32  * Rojolaquit (Quit: Rojola)
15:36:32  * Caspinolquit (Ping timeout: 276 seconds)
15:36:51  <zsoc>ozette: you're using multer i assume?
15:36:51  <jaawerth>it's still popular in dev ops stuff but go seems to be slowly overtaking it in that space
15:37:02  <jaawerth>but hey, Gitlab uses rails. I think airbnb does too?
15:37:24  <ozette>zsoc: yep multer
15:37:37  <merpnderp>jaawerth: Gitlab serves their frontend in rails?
15:37:37  * macwinnerquit (Ping timeout: 248 seconds)
15:37:39  <bradleymeck>in other news, not all HTTP services are for making HTML output and CRUD apps
15:37:53  <zsoc>Yes and a lot of large applications use rails from a time when rails was hype, and they would have been considerably better off not doing so. And they will know better next time heh
15:37:58  * shokyjoined
15:38:26  <merpnderp>zsoc: man if setting up auth wasn't such a pain in the arse to do over and over I likely wouldn't even be considering this.
15:38:39  <zsoc>bradleymeck: i wish i possessed your cogency. i should try tweeting more lol
15:38:47  <zsoc>merpnderp: i don't fine auth complex at all in node
15:38:57  <merpnderp>csrf, xss, then all the boilerplate route handlers, user module lookups, and passport callbacks is just a pain in the ass.
15:38:58  <zsoc>maybe i should write a gist on it or something...
15:39:00  <jaawerth>merpnderp: rails still plays a role but I think now they're doing stuff with vue and webpack
15:39:07  * Jetimonjoined
15:39:14  <merpnderp>jaawerth: if I used rails, I'd still use React/Vue.
15:39:30  <merpnderp>I'm not so interested in the auto-genned views Rails creates
15:39:44  <jaawerth>this is mostly going on what I've seen in their omnibus package, which I run internally, and reading a couple of their blog posts
15:39:45  <bradleymeck>node is great for a variety of use cases, but just find the one that does what you need best. if some person (not a company) wants a very simple blog/payment/very basic crud system i'd point them to wordpress honestly
15:39:48  <ozette>i've been trying to troubleshoot this, but i can't figure out why this happens
15:39:54  * macwinnerjoined
15:40:00  <jaawerth>there are a lot of integrated systems and moving parts so rails does sort of make sense for coordinating everything I guess
15:40:49  * m00dyjoined
15:41:07  <zsoc>merpnderp: 1.) don't use passport unless you have to support multiple login strategies (like local + facebook or something), all it does is create complexity, 2.) csrf is fixed with the csurf package, it's like 2 lines of code on the front and back end, 3.) xss is a security concern which is not really related to auth but how you render your views
15:41:11  * fatajoined
15:41:11  <jaawerth>a lot of gitlab's newer services seem to be implemented in go, like gitlab pages and, I think, their CI runner
15:41:13  <fata>hi
15:41:22  <stennowork>in a node.js project, where would be a good place to write general configuration variables which need to be accessible to many components? for example static ips from services and the like
15:41:23  <fata>what's the best way to run background jobs with node?
15:41:24  <ozette>i can share some code, but it isn't really interesting afaics, so i'll try to screencap what i'm seeing later, because i'm not at liberty to give access to the application
15:41:25  * macwinnerquit (Remote host closed the connection)
15:41:27  <fata>managing them
15:41:39  <fata>crontab?
15:41:41  * macwinnerjoined
15:41:57  <ozette>gotta run now though, bye
15:42:03  <zsoc>stennowork: i like the '/constants' dir convention... unless it's config data and then a root config.json is usually good enough
15:42:09  <ozette>quit
15:42:12  * ozettequit (Quit: WeeChat 2.1)
15:42:27  <stennowork>zsoc, this should be static constants, that looks like a good convention, thanks
15:42:46  <jaawerth>stennowork: for complex setups I like using hierarchical configuration (so env vars override config files, and flags override env vars) with one or more config files, depending on your needs, managed by nconf or convict
15:42:50  <zsoc>I think it was jaawarth actually that pointed me to using a constants dir top level xD
15:42:52  <stennowork>those are values that change by each deployment
15:43:01  <merpnderp>zsoc: I like the option to add facebook/twitter/github logins later. csurf sounds like magic I desperately want. But even without passport, there's still some annoyingly large amount of boilerplate to write for user model lookups and user auth routing.
15:43:03  <jaawerth>and yeah I keep my config files in a top-level dir
15:43:20  <jaawerth>preferably in something more human-writable than JSON, like TOML or at least json5
15:43:40  <jaawerth>hell, even yaml
15:43:48  <jaawerth>but usually toml or json5
15:43:56  <merpnderp>yaml-yaml-yellow-camel.
15:44:01  * mzl0quit (Ping timeout: 248 seconds)
15:44:03  <zsoc>my only experience with toml is .editorconfig and honestly i think it's boss
15:44:15  <jaawerth>I find it really nice. basically a souped up ini
15:44:16  <stennowork>i was linked an article in another channel yesterday regarding yaml
15:44:31  <zsoc>merpnderp: you're talking authentication? what kind of boilerplate? you use express-session along with the store for your db... then all you're doing is serializing the user onto the request... what else is there?
15:44:31  <jaawerth>easy to read even without any familiarity, easy to write
15:44:51  <merpnderp>you have to use express-session-yourdb
15:45:01  <stennowork>something about yaml being 'unsafe' but i didn't understand the gist of it
15:45:15  <jaawerth>the only plus for yml is that if you need to repeat large swaths of config for, say, different ENVs, yml's anchor/mixin ability can be handy keepin things clean
15:45:16  <stennowork>here is the article https://arp242.net/weblog/yaml_probably_not_so_great_after_all.html
15:45:46  <jaawerth>it's unsafe and terrible as a serialization/transfer format
15:45:46  <stennowork>i don't understand how a serializing format can be 'unsafe' but ah well
15:45:56  <jaawerth>for config files, meh, you're the one writing those anyway
15:46:02  <stennowork>right
15:46:06  * goodenoughquit (Read error: Connection reset by peer)
15:46:15  <zsoc>merpnderp: well it depends on your interface.. i generally use express-session + connect-session-knex .. that works with any major db :p but sure
15:46:17  * m00dyquit (Ping timeout: 276 seconds)
15:46:22  <zsoc>there are very few wires and only a few lines of glue
15:46:28  <merpnderp>zsoc: for instance, here's my user model
15:46:52  <merpnderp>https://www.irccloud.com/pastebin/4iR6ZAfK/
15:47:12  <Sven_vB>do you really consider YAML the format insecure or is it just about the unfortunate naming in the python lib?
15:47:39  <zsoc>okay...
15:47:42  <jaawerth>well it has a ton of unsafe features and most of the utils for it don't block them in the default load method, not just python's
15:47:59  <jaawerth>unsafe is sorta the default
15:48:13  <jaawerth>so if you're loading remotely-submitted yaml.. that's a bad
15:48:16  <merpnderp>zsoc: that doesn't look like a massive pile of boilerplate to carry around project to project?
15:48:26  <stennowork>but isn't that a general rule for user-submitted data
15:48:37  <zsoc>merpnderp: so you could get rid of most of this 'boilerplate' by using something like Objection... but then the boilerplate is in the model itself... i don't know, this is all abstracted away... why is this 'bad'?
15:48:40  <stennowork>like i wouldn't call raw sql queries from the user
15:48:46  * Metalsuttonjoined
15:48:53  <stennowork>that doesn't make sql unsafe
15:49:09  <merpnderp>zsoc: well for one I have to remember what the heck is going on with hex/unhex, which is annoying.
15:49:11  <zsoc>it's 40 lines of necessary functionality which you are able to properly document and/or grok and not have it be magic hidden being things
15:49:22  <merpnderp>Packing my guid's into tight spaces since 1997.
15:49:25  <zsoc>what is that and why are you doing it
15:49:28  * smccarth_joined
15:49:41  <jaawerth>stennowork: you don't see remote SQL apis, though
15:49:42  * smccarth_quit (Remote host closed the connection)
15:49:42  <zsoc>why do users need a guid?
15:49:44  <merpnderp>zsoc: pack a varchar guid into a 15 byte array
15:49:46  <jaawerth>SQL *is* unsafe
15:49:53  <zsoc>but why
15:50:02  <merpnderp>zsoc: a unique identifier in case they change their username/email
15:50:11  <zsoc>yes use a sequence
15:50:15  * smccarth_joined
15:50:27  <merpnderp>zsoc: but then haxxorz can guess userids
15:50:47  <stennowork>isn't that the 'fault' of the way the data is read/parsed/interpreted and not of the data itself
15:50:52  <jaawerth>the idea being static encoding formats are safer for data transfer when you don't necessarily trust the source, and yaml defaults to not being wholly static
15:50:53  <zsoc>b...ut, you don't do anything by the userid, that's only for internal relations.
15:51:01  * goodenoughjoined
15:51:02  <stennowork>i seem to be missing something conceptually here lol
15:51:32  <merpnderp>zsoc: with csrf tokens it's unlikely a userid would allow the haxx to take effect, but I'm not perfect.
15:51:52  <stennowork>shoudl i be careful when i talk to 3rd-party json api's
15:51:55  <zsoc>merpnderp: no that's the point of session secrets
15:52:15  <zsoc>so session ids can't be reverse engineered
15:52:17  <jaawerth>there is nothing in JSON.parse that can ever cause remote code execution
15:52:18  <stennowork>like is doing JSON.parse(<3rd party json string>) harmful
15:52:21  <stennowork>right
15:52:29  <stennowork>but in yaml there is?
15:52:33  <Sven_vB>if you need yaml mixing, checkout the configly module.
15:52:34  <stennowork>i understand now
15:52:34  * jkridnerquit (Remote host closed the connection)
15:52:36  <Sven_vB>also merge-options
15:52:37  <merpnderp>zsoc: ah, so I would need to remember to never ever send a userid to the client.
15:52:42  * smccarthyquit (Ping timeout: 245 seconds)
15:52:46  * horseyjoined
15:52:46  <jaawerth>the worst you can run into with JSON is certain types of DDoS
15:52:58  <merpnderp>zsoc: so if I have a list of comments, I just list them as their username.
15:53:00  <zsoc>merpnderp: the userId is attached to the *session*, which never goes to the client. Client gets the session id
15:53:15  <merpnderp>zsoc: and hope that username never changes?
15:53:21  <merpnderp>Orphaning comments?
15:53:32  <stennowork>so far i basically thought of yaml as json but different
15:53:38  * Limarsonquit (Read error: Connection reset by peer)
15:53:42  <zsoc>Okay so you're talking about a situation where you have, lets say, a forum or something or a comment system
15:53:43  <merpnderp>zsoc: nevermind.
15:53:46  <stennowork>i know that yaml is a superset of json
15:53:54  <merpnderp>zsoc: yes, just a hypothetical. But I see my error.
15:53:58  <zsoc>okay
15:54:12  <merpnderp>I jus tneed to make sure I purge every resultset of userids before returning to the client.
15:54:13  <jaawerth>the safe load kills most (possibly all, I haven't looked because I only ever use it for configs) dangerous forms of yml syntax
15:54:28  <jaawerth>then it's more like a superset I guess
15:54:34  * jkridnerjoined
15:54:41  <zsoc>merpnderp: regardless, knowing a userId in and of itself should also not be a security problem
15:55:12  <zsoc>since the userid isn't some magical code to logging in or stealing a session, the id itself is only valuable in an auth'd session already
15:55:12  <merpnderp>zsoc: But I've already implemented my hex which is 16 bits in length.
15:55:28  <zsoc>sure why not lol, i mean it doesn't seem like a .. bad thing? I just didn't get why
15:55:35  * RzRquit (Read error: No route to host)
15:55:37  <Sven_vB>stennowork, the only "unsafe" thing about yaml is that lots of libraries require you read their docs to pick which function to use. maybe I should just make a new module configyaml that combines configly + js-yaml.safeLoad so nobody has to deal with that again.
15:55:39  <merpnderp>zsoc: right, it's just a channel into some other possible security error. Like I said, I know I'm not perfect.
15:55:59  <zsoc>merpnderp: have you ever worked a monolithic framework before?
15:56:01  <merpnderp>If someone has an admin userid, they could perhaps hunt down some mischief.
15:56:05  * RzRjoined
15:56:07  <zsoc>like.. wordpress
15:56:23  <stennowork>jaawerth, Sven_vB i understand now, thanks for the explanations
15:56:25  <merpnderp>zsoc: I used to work on a Perl monolithic CMS many years ago.
15:56:29  <merpnderp>Before Node was born.
15:56:37  <merpnderp>zsoc: but never with wordpress.
15:56:37  <jaawerth>Catalyst-based?
15:56:41  <zsoc>eh "perhaps hunt down some mischief" is a silly way to look at it imo... you should expect your attackers have any and all information about your system
15:56:42  <merpnderp>jaawerth: no
15:56:45  <zsoc>and secure it based on that
15:57:15  <jaawerth>what was the other big monolithic perl framework..
15:57:18  <jaawerth>Mojolicious
15:57:21  <merpnderp>zsoc: of course, but programmers aren't perfect. They make mistakes. So hiding what you can to make it harder seems wise.
15:57:21  * horseyquit (Ping timeout: 264 seconds)
15:57:34  <jaawerth>I guess you mean more of a CMS-specific thing though
15:57:41  <merpnderp>jaawerth: although I did write a LOT of catalyst at a long ago job. Forgotten all about that one.
15:57:52  <merpnderp>jaawerth: yeah, not a framework, but an actual CMS.
15:57:57  <Sven_vB>zsoc, maybe not the information in /etc/shadow, or at least not the original passwords. ;)
15:58:17  <jaawerth>merpnderp: I tried both Catalyst and Mojolicious and they were my first real introduction to frameworks and MVC. then I tried Dancer and was like "lol forget all that other stuff"
15:58:24  <zsoc>merpnderp: that's called Security by obscurity and it brings 0 benefits. No actual security organization recognizes its usefulness. It just brings a false sense of security and nothing else.
15:58:37  * jkridnerquit (Read error: Connection reset by peer)
15:58:52  <jaawerth>I don't do perl anymore but dancer (based on ruby's Sinatra) and express are sort of similar in philosophy
15:59:13  <merpnderp>jaawerth: Sinatra's paradigm for life!
15:59:14  * cthulchujoined
15:59:14  * jkridnerjoined
15:59:22  <Sven_vB>there's a blurred line between security by obscurity and security in depth.
15:59:37  <Sven_vB>I think it's defense in depth rather
15:59:39  <stennowork>sinatra is the best thing ever
15:59:40  <merpnderp>Plus my packed guids are smaller than an int.
15:59:59  <stennowork>i learned rails (my first web framework), then switched to sinatra and never looked back
16:00:08  <zsoc>"System security should not depend on the secrecy of the implementation or its components." as the somewhat famous quote goes - but yeah... to the depth thing.. i mean obviously you aren't going to want to allow a stack trace in prod that shows your db relations and the directory structure of your server
16:00:09  <jaawerth>hehe I'm seeing a pattern here
16:00:20  * Metalsuttonquit (Quit: Leaving)
16:00:21  <zsoc>express == sinatra so...
16:00:21  <jaawerth>I think that's why nothing ever really threatens to unseat express
16:00:22  <stennowork>also express ftw of course! because its sinatra-like
16:00:28  <stennowork>yep
16:00:35  <zsoc>is sinatra even the original sinatra?
16:00:39  <stennowork>yeah
16:00:58  <stennowork>python flask was inspired by sinatra and express mentions sinatra too
16:01:10  <stennowork>and then i think there is a php sinatra-like too
16:01:14  <zsoc>i mean they... all look exactly the same
16:01:21  <zsoc>yeah a hugely popular php thing whose name escapes me
16:01:25  <stennowork>sinatra was the first, i think
16:01:32  <stennowork>sinatra was the first sinatra :)
16:01:33  <zsoc>Slim? Flim? Flam?
16:01:44  <stennowork>silex?
16:01:44  <zsoc>Slim
16:01:46  <stennowork>ah
16:01:47  <zsoc>https://www.slimframework.com/
16:01:50  <jaawerth>there might be a proto-instra out there but I don't know of it
16:01:57  <jaawerth>proto-sinatra*
16:01:58  <stennowork>oh yeah so good ^_^
16:02:01  <Sven_vB>express is based on the design flaws of connect. the only thing that gives it some validity is the vast amount of modules for it. it's like in the video wars.
16:02:16  * N3RG4L_part
16:02:19  <zsoc>Sven_vB: which flaws are that?
16:02:21  <zsoc>*those
16:02:26  <stennowork>express middleware concept is awesome
16:03:05  <Sven_vB>zsoc, one of them is to pass around multiple arguments to its handler functions.
16:03:12  * goodenoughquit (Read error: Connection reset by peer)
16:03:20  <merpnderp>Sven_vB: that's a node thing and the world keeps turning.
16:03:34  <zsoc>Sven_vB: that's a design decision... like (req, res, cb) vs (ctx)
16:03:37  <merpnderp>Mistakes were made, people died, node isn't perfect, but we still love it.
16:03:48  <zsoc>well koa goes the ctx route
16:03:49  <stennowork>middleware concepts will mutate request object which feels a bit strange imo
16:03:50  <Sven_vB>zsoc, yeah. that's why I called it a design flaw.
16:03:56  <stennowork>but thats basically the core of the concept
16:03:59  * moldyquit (Read error: Connection reset by peer)
16:04:12  <stennowork>so if you want to pass data down the middleware chain, you do it by changing the req
16:04:18  <zsoc>But mutating the request object is the whole idea
16:04:22  <stennowork>right
16:04:31  <jaawerth>yeah I mean if I had my way I'd probably try and avoid the whole mutating req in middleware but avoiding that would need to make it a less-thin layer over node http/s
16:04:34  <stennowork>but its not always the most fitting thing to do imo
16:04:36  <zsoc>it's an individual request and it represents that request throughout the whole process
16:04:54  * akivajoined
16:05:10  <zsoc>There's some bad magic in express... like using handler arity to denote error handlers.. ahem
16:05:14  <jaawerth>yeah but you could have another way of passing things downstream than sticking properties to req
16:05:20  <stennowork>jaawerth, yeap
16:05:27  <zsoc>jaawerth: okay, like what?
16:05:28  * kakashiA1joined
16:05:39  <stennowork>an addition parameter bag passed down?
16:05:45  * Caspinoljoined
16:05:50  <stennowork>like req, res, params, next
16:05:53  <zsoc>and that's just a bag of context? how is that different from req.someNameSpace
16:06:14  <jaawerth>you could pass context to next
16:06:14  <Sven_vB>I'd like a web framework optimized for functional programming. I tried to revive "web" but couldn't find enough info on what its interface shuld have been.
16:06:20  <stennowork>well it keeps the actual request object free from data that might not relate to the request object
16:06:40  <jaawerth>I mean, IF we were to do it all again, where (err, res) is less prominent in style and where next needn't only take an error
16:06:41  * stennoworkthinks about how FP paradigms could be beneficial to a web framework
16:06:46  <zsoc>stennowork: all the data relates to the request object (and/or the response, i guess) since literally the whole point is to represent the flow of req->response... it abstracts http
16:07:17  <stennowork>zsoc, unfortunately i cannot think of a specific example right now, but there were moments where i felt wierd just extending req
16:07:37  <ryzokuken>hey, any idea how I could invoke a function in the global context?
16:07:40  <jaawerth>if observables were native earlier on I would probably make middleware that utilizes them, by attaching observers
16:07:46  <zsoc>jaawerth: well look at koa... it was a good *concept* to return a promise from "next" all the way "down" and then unravel all the way back "up" after the response... but in practice it's overly complex
16:07:49  <jaawerth>but I'm ok with it is how it is
16:07:58  <merpnderp>jaawerth: if we did it again, it would use promises.
16:08:05  <jaawerth>yeah, or promises at least
16:08:05  * goodenoughjoined
16:08:09  <zsoc>ryzokuken: there is no global context in node, only module context xD can you show an example?
16:08:14  * Rashadquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:08:15  * jkridnerquit (Remote host closed the connection)
16:08:19  <Sven_vB>ryzokuken, not sure what the global context is. what are you trying to achive with that?
16:08:20  <ryzokuken>like... say I had a JS object of type Function, how do I invoke it inside a particular context.
16:08:26  <jaawerth>zsoc: yeah but koa also had the downside of breaking direct compat and all using `this` but keeping the mutation
16:08:38  <ryzokuken>Sven_vB zsoc rebuilding the cjs loader lol
16:08:43  <bradleymeck>ryzokuken: you cannot remap JS scopes like you can in lua
16:08:46  <jaawerth>also the express promise-router is an awesome way of getting all the good stuff from koa without any of the downsides
16:08:51  <Sven_vB>ryzokuken, do you mean to invoke it with a chosen "this" context?
16:08:55  <ryzokuken>so I'm wrapping all the module code inside a function
16:08:56  <merpnderp>zsoc: Ryan should have keep 'window' around :P
16:08:59  <zsoc>merpnderp: you can use promises with express right now. You replace the express.Router() with express-promise-router. It is a drop in replacement. You return a promise from your routes, all rejections are propagated through next()
16:09:06  <ryzokuken>Sven_vB I know how .apply works lol
16:09:13  <zsoc>ryzokuken: oh... uh.. okay then, continue lol
16:09:14  <gajus>Is there anyone from #npm support that's around to take a look at my ticket?
16:09:17  <merpnderp>zsoc: boom, err, next fixed.
16:09:22  <ryzokuken>I want to pass in require, global, __dirname, __filename etc
16:09:26  <jaawerth>express-promise-router works very nicely with async functions, too
16:09:32  * ext0quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:09:37  * xkapasteljoined
16:09:42  <ryzokuken>Because I'm out of C++ land and into JS land, it seems a tad more difficult.
16:09:49  <gajus>(why #npm channel was completely muted, rather than simply stating there no official support is beyond me)
16:09:51  * bitmaskjoined
16:10:06  <jaawerth>iirc it was super inactive all the time
16:10:15  <Sven_vB>ryzokuken, those names are bound to their scope at the time the function is created. you'd have to recompile the function from its source in the target scope.
16:10:15  * Caspinolquit (Ping timeout: 245 seconds)
16:10:36  <bradleymeck>i think he wants to setup something like setfenv like in lua
16:10:53  <zsoc>ryzokuken: can i ask why you're "rebuilding" the cjs loader? is this like a hobby project thing?
16:10:54  <gajus>who cares... at least you were able to know who are the people working at #npm and reach out to them in a developer friendly way
16:11:02  <ryzokuken>I compiled the function in the correct scope (env->context())
16:11:05  <stennowork>i had an eye-opening conversation with some express hackers about middleware and all that simply by them asking the question: "Define what a 'controller' is"
16:11:09  <gajus>freenode is about developer communitites
16:11:09  <zsoc>if devsnek is here i'm sure he would have a suggestion, he's rebuilt that loader like 14 times :3
16:11:09  <stennowork>in MVC
16:11:15  <stennowork>its not an easy question to ask
16:11:17  <ryzokuken>zsoc no, it's for a PR for core.
16:11:18  <stennowork>to answer
16:11:24  <stennowork>easy to ask, hard to answer :P
16:11:26  <zsoc>ryzokuken: try #node-dev ?
16:11:34  <ryzokuken>bradleymeck could we talk on #node-dev?
16:11:39  <bradleymeck>sure
16:11:40  <ryzokuken>if you had a min?
16:12:20  <zsoc>stennowork: MVC doesn't fit into the web, that's why... because it's a nonsense question that sounds like it should have an answer
16:12:24  <zsoc>!mvc @ stennowork
16:12:24  <ecmabot>stennowork: You probably don't actually need MVC. http://aredridel.dinhe.net/2015/01/30/why-mvc-does-not-fit-the-web/
16:12:35  <stennowork>zsoc, yep
16:13:09  <stennowork>after looking into express i never applied mvc pattern again
16:13:25  <stennowork>its not a good abstraction
16:13:35  * Laptop_minijoined
16:14:27  <stennowork>you could define a controller as a semantic collection of routes - but once things get 'semantic', you can't really keep a consistent pattern anyway
16:14:42  <stennowork>there is not always a strict rule which route belongs to which controller
16:15:21  <stennowork>in the worst case, you end up with a controller where all the routes are that don't just fit in any other controler
16:15:24  <stennowork>just chaos
16:15:37  * bdunavantjoined
16:15:55  <zsoc>right, if you are defining 'controllers' then they are 1-to-1 with your routes
16:15:58  <zsoc>which seems pointless
16:16:02  <zsoc>*route handlers
16:16:42  * jmdrawneekquit (Remote host closed the connection)
16:16:52  * znc-quit (Ping timeout: 245 seconds)
16:17:08  * jmdrawneekjoined
16:17:54  * quidquoquit (Ping timeout: 260 seconds)
16:21:35  * jmdrawneekquit (Ping timeout: 255 seconds)
16:22:42  * duderonomyquit (Ping timeout: 245 seconds)
16:24:08  * SexiestManAlivequit (Quit: Connection closed for inactivity)
16:24:40  * apparitionquit (Quit: Bye)
16:24:43  <tuskkk___>Hello, our io game app is having latency issues, how do I debug the cause?
16:26:14  * zzo38joined
16:26:38  <devsnek>zsoc: what u want
16:27:02  * sxaquit (Ping timeout: 256 seconds)
16:27:08  <zzo38>How to use the Linux capabilities system with Node.js? (For example, to specify if a script is allowed to use CAP_NET_BIND_SERVICE)
16:27:43  <devsnek>node.js doesn't integrate with that
16:28:07  <zsoc>devsnek: k :p
16:28:08  * hph^joined
16:28:09  * hph^quit (Max SendQ exceeded)
16:28:18  <zsoc>sorry to be pinged oh snekish one
16:28:39  * hph^joined
16:29:22  <jaawerth>zzo38: same way you use it with any executable?
16:30:14  <zzo38>There is the possibility to set the capabilities for the "node" executable itself, but I want Node.js to use the capabilities of the script. I suppose another way would be to make a copy of the "node" executable with the capabilities set; will that work, or will Node.js get confused if the file is copied?
16:30:20  * sergeyjoined
16:30:27  <Sven_vB>tuskkk___, is there a network involved?
16:31:03  * hph^quit (Client Quit)
16:31:14  * cannapquit (Read error: Connection reset by peer)
16:31:17  <tuskkk___>Sven_vB: yes
16:31:19  * apowers313joined
16:31:29  * chachan_joined
16:31:40  <Sven_vB>zzo38, you can probably copy it.
16:31:49  * cthulchuquit (Remote host closed the connection)
16:32:01  <Sven_vB>zzo38, I don't think a script file can have those capabilities.
16:32:06  * cthulchujoined
16:33:04  <Sven_vB>tuskkk___, so is most of the latency in the network, or a server, or a client? tell us more about how the latency issues manifest.
16:33:29  <Sven_vB>also how you measured it etc
16:33:47  * kjartanquit (Read error: Connection reset by peer)
16:33:54  * jsatkjoined
16:35:05  * chachanquit (Ping timeout: 255 seconds)
16:36:10  * Caspinoljoined
16:39:02  * kjartanjoined
16:39:33  * orderslupquit (Quit: Bye)
16:41:40  * mezodquit (Remote host closed the connection)
16:42:00  * m00dyjoined
16:44:13  * tymczenkojoined
16:44:22  * zumba_ad_joined
16:44:41  <tuskkk___>https://usercontent.irccloud-cdn.com/file/0vPsVhig/Screen%20Shot%202018-06-22%20at%2010.13.50%20PM.png
16:45:14  * tymczenkoquit (Remote host closed the connection)
16:45:18  <tuskkk___>Sven_vB: notice that purple box, 450ms
16:46:14  * Sharaaljoined
16:46:35  * m00dyquit (Ping timeout: 240 seconds)
16:47:09  <tuskkk___>how do I figure out that its server side or client side?
16:47:51  <tuskkk___>these lag spikes are for all users though, what can I do at the server to minimize it?
16:50:07  * smccarth_quit (Remote host closed the connection)
16:50:08  * bdunavantquit (Quit: Leaving...)
16:50:50  * Sharaalquit (Ping timeout: 256 seconds)
16:50:51  <Sven_vB>tuskkk___, do I read the unit of the purple box correctly as B/s and an up arrow? that would make it sound like bandwidth.
16:51:38  <Sven_vB>I'll need to understand what kind of lag is a lag spike? how do you measure it? what is the trigger to start and to stop the stopwatch?
16:51:54  <tuskkk___>Sven_vB: sorry, the one that says 450 ms is lag
16:52:08  <tuskkk___>light purple
16:52:20  * Caspinolquit (Remote host closed the connection)
16:52:22  * apowers313quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:53:03  <tuskkk___>Sven_vB: its something like, when you are moving the unit in a game, you lose control for a fraction of a second
16:53:16  <tuskkk___>that corresponds to a spike in that box
16:56:02  * bdunavantjoined
16:57:38  <Sven_vB>so we have to break down the "move a unit in the game" to more technical detail. the help box on the top looks like there's a keyboard event, which then probably causes some message being sent to the server, server receives it, server answers, client receives it, client draws something. you'll need timing measurements between all those events to see how the lag is composed, usually. a browser like Firefox can easily show you the time
16:57:38  <Sven_vB>between network requests and responses, so I'd first look at that, maybe that's already the biggest part of your lag spike.
16:58:18  <Sven_vB>oh wait. I guess that's already what's being displayed there
16:58:28  * Sven_vBjust discovered the "Developer Console"
16:58:33  * renlojoined
16:59:02  * mzl0joined
16:59:16  * RyansWorldjoined
16:59:18  <Sven_vB>what software is it that shows these graphs?
16:59:54  <Sven_vB>tuskkk___, ^
17:00:01  * goodenoughquit (Read error: Connection reset by peer)
17:00:44  <RyansWorld>I have a question about the URL. I bought a domain name which redirects just fine. When you are redirected to my site instead of showing www.MyDomainName.com it shows my servers IP instead. How do you make it show www.MyDomainName.com instead?
17:01:24  * heyitsramaquit (Remote host closed the connection)
17:03:12  * DeltaHeavyjoined
17:05:18  <zsoc> don't redirect to your server ip heh... set your server ip as an A record in the DNS zone of your domain
17:05:51  * renloquit (Ping timeout: 240 seconds)
17:07:07  * jkridnerjoined
17:07:20  * renlojoined
17:08:09  <tuskkk___>Sven_vB: don't know, other dev put that there
17:08:38  * cdransfjoined
17:09:17  <Sven_vB>tuskkk___, then you'll have to find out what parts of the chain are measured in that lag spike.
17:09:36  * marthinalquit (Remote host closed the connection)
17:09:48  <tuskkk___>ok, anything specific I can check on the server to minimize lag?
17:10:13  * zzo38part
17:10:34  <Sven_vB>tuskkk___, yeah. what communication protocol do you use? HTTP? websockets?
17:10:41  <tuskkk___>web sockets
17:10:51  * dongustonjoined
17:12:00  * cdransfquit (Client Quit)
17:12:05  <Sven_vB>tuskkk___, then you can log high precision timestampts for each message received and sent, figure out which belong together, calculate the difference and you know how much lag is produced by the server software.
17:12:59  * mezodjoined
17:14:45  <Sven_vB>for a node.js server you can use the V8 profiler to see what it's doing for how long.
17:15:57  * beefjoequit (Remote host closed the connection)
17:17:29  <tuskkk___>ok
17:17:35  * mezodquit (Ping timeout: 240 seconds)
17:18:06  * Laptop_miniquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:18:11  * kakashiA1quit (Ping timeout: 260 seconds)
17:20:17  * heyitsramajoined
17:21:10  <Sven_vB>tuskkk___, also when you discover there are several tasks that take a long time each, maybe the server can do some of them in parallel instead of one after the other.
17:21:57  <tuskkk___>Sven_vB: ok, another point to note is, I tried deploying the server on a high end azure machine, there was very less lag
17:22:02  * mr_loujoined
17:22:19  <tuskkk___>Sven_vB: its just resource hungry I guess
17:22:57  <Sven_vB>tuskkk___, as you say, that's a guess. high-precision timestamps can give you a better approximation of truth.
17:23:12  <tuskkk___>right
17:23:52  * Praisejoined
17:23:52  * Praisequit (Changing host)
17:23:52  * Praisejoined
17:24:36  * kingarmadilloquit (Ping timeout: 260 seconds)
17:25:35  <Sven_vB>also compare with a very simple server that just responds to pings. maybe you can tune the basic network settings. because that might be another aspect where the azure server might be optimized.
17:26:00  * hollusionquit (Quit: Leaving)
17:26:29  * ^escjoined
17:27:35  * eckhardt_joined
17:29:05  * heyitsramaquit (Ping timeout: 248 seconds)
17:31:31  * robo7joined
17:31:52  * bdunavantquit (Remote host closed the connection)
17:32:37  * MrAbaddonquit (Remote host closed the connection)
17:33:05  * khromejoined
17:34:49  * goodenoughjoined
17:35:22  * kingarmadillojoined
17:38:26  * heyitsramajoined
17:43:03  * m00dyjoined
17:43:49  * bdunavantjoined
17:43:58  <tuskkk___>Is there something like https://github.com/remy/nodemon, for production? I am running the app in a screen, and for CI/CD, I will trigger a pull, how do I get the changes reflected?
17:44:57  * jsatkquit (Quit: Lost terminal)
17:45:52  * bdunavantquit (Read error: Connection reset by peer)
17:46:10  * mezodjoined
17:47:53  * spicerackjoined
17:47:56  * spicerackquit (Max SendQ exceeded)
17:47:59  * TheRev_mobilejoined
17:48:13  * goodenoughquit (Read error: Connection reset by peer)
17:48:31  * m00dyquit (Ping timeout: 260 seconds)
17:49:36  * bdunavantjoined
17:49:45  * goodenoughjoined
17:50:27  * mezodquit (Ping timeout: 240 seconds)
17:50:43  * jsatkjoined
17:51:13  <jaawerth>tuskkk___: It's not the only way but pm2 is popular for such things - it does a LOT of other stuff that you can take advantage of or not to your liking
17:52:20  <TheRev_mobile>Is there any known issues where node automagically does not load the prototype for an object
17:52:51  <jaawerth>no, that's pretty fundamental to javascript
17:52:57  * Sharaaljoined
17:53:33  * horseyjoined
17:53:34  <tuskkk___>jaawerth: ok, can it also run the app similar to a service fashion, so that I can do something like stop, take pull, start?
17:53:34  * Laptop_minijoined
17:54:08  <TheRev_mobile>let me run this next series of tests.... but in one test the prototype is as expected
17:54:12  <TheRev_mobile>(functions etc)
17:54:16  <TheRev_mobile>in the next it's empty...
17:54:47  <jaawerth>tuskkk___: yeah, plus it will auto-restart on error (configurably). there's also restart and reload
17:55:04  <tuskkk___>cool, thanks!
17:55:13  <jaawerth>tuskkk___: though you only get the benefits from reload if you configure pm2 to spin up more than one "fork" in cluster mode (it wraps the cluster module) and code the app so it's stateless and shuts down gracefully when you get a stop signal - if you do that, you can actually restart the app without interrupting service
17:56:11  <tuskkk___>jaawerth: ok, i am good with stopping/starting it through a ci tool.
17:56:16  <jaawerth>kk
17:56:42  <jaawerth>You don't strictly need pm2 for this - you could also just write, say, a systemd service for your app. pm2 just saves some time
17:56:47  * sz0joined
17:57:02  <jaawerth>it can also *generate* a systemd/systemv/upstart service via a command, that you can installl so that the app will automatically start if the server reboots
17:57:24  <tuskkk___>aha, I'd need that too
17:57:27  * Sharaalquit (Ping timeout: 256 seconds)
17:58:33  * horseyquit (Ping timeout: 264 seconds)
17:59:19  * igemnacequit (Quit: WeeChat 2.1)
17:59:42  * paulcarrotyjoined
17:59:58  <jaawerth>but you can in theory do it all with systemd but pm2 has a lot of convenience features
18:00:21  <jaawerth>you can even tell it to catch memory leaks by forcing a restart if it passes a memory use threshhold
18:00:31  <jaawerth>(but hopefully you don't have memleaks!)
18:00:40  * turboteddyquit (Quit: /q)
18:00:54  <tuskkk___>oh we might have, sounds a must have tool to me
18:01:48  * lpinquit (Quit: Textual IRC Client: www.textualapp.com)
18:02:32  * Mattiaslndstrmquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:02:34  * jjidojoined
18:03:03  * goodenoughquit (Read error: Connection reset by peer)
18:03:18  * Mattiaslndstrmjoined
18:03:58  * jplohjoined
18:04:27  <TheRev_mobile>within a mocha test is there reason to expect that an object.__proto__ would evaluate to {} on a console.log in one environment
18:04:45  <TheRev_mobile>but within another (specifically VS code's debugger evaluate as expected
18:05:39  * tvwquit (Ping timeout: 268 seconds)
18:06:10  <jaawerth>well, first - .__proto__ is a deprecated way to access a prototype, it's better to use Object.getPrototypeOf. That aside, it's possible that the prototype's properties are non-enumerable, in which case they wouldn't show up in console.log
18:07:13  <jaawerth>TheRev_mobile: maybe try logging Reflect.ownKeys(Object.getPrototypeOf(object)) or for all the info about the props, Object.getOwnPropertyDescriptors(Object.getPrototypeOf(object))
18:07:25  <TheRev_mobile>capital O (ie not the instance)
18:07:50  <jaawerth>yeah, the functions I'm talking about are on Object itself
18:07:58  * goodenoughjoined
18:08:05  <TheRev_mobile>oh, so it's on the Object object
18:08:07  <TheRev_mobile>tight
18:08:28  <jaawerth>n> Object.getOwnPropertyDescriptors(Object.getPrototypeOf([]))
18:08:30  <jellobot2>(okay) { length: { value: 0, writable: true, enumerable: false, configurable: false }, constructor: { value: [Function: Array], writable: true, enumerable: false, configurable: true }, concat: { value: [Function: concat], writable: true, enumerable: false, configurable: true }, find: { value: [Function: find], writable: true, enumerable: false, configurable: true }, findIndex: { value: [ ...
18:09:12  <TheRev_mobile>@jaawerth: That would be good for printing the associated functions, yes?
18:09:36  <jaawerth>probably more verbose than what you need in most cases since it gives you the full descriptor for each property
18:10:13  <jaawerth>keep in mind that when writing tests you don't realy need to log it anyway - if you want to verify the prototype you can just check the property keys and/or values
18:10:35  * chachan_quit (Ping timeout: 240 seconds)
18:11:05  <jaawerth>doesn't matter if they're enumerable or not - being enumerable just determines whether they show up in things like Object.keys, console.log, or JSON.stringify (for non-functions), etc
18:11:31  <jaawerth>Reflect.ownKeys will give all of an object's own (not inherited) keys, enumerable or not
18:11:42  * KieronWiltshirejoined
18:12:01  <TheRev_mobile>hrmm...
18:12:21  <jaawerth>n> const protoKeys = val => Reflect.ownKeys(Object.getPrototypeOf(val)); protoKeys([])
18:12:23  <jellobot2>(okay) [ 'length', 'constructor', 'concat', 'find', 'findIndex', 'pop', 'push', 'shift', 'unshift', 'slice', 'splice', 'includes', 'indexOf', 'keys', 'entries', 'forEach', 'filter', 'map', 'every', 'some', 'reduce', 'reduceRight', 'toString', 'toLocaleString', 'join', 'reverse', 'sort', 'lastIndexOf', 'copyWithin', 'fill', Symbol(Symbol.iterator), Symbol(Symbol.unscopables) ]
18:12:56  <jaawerth>which you use depends on what kind of test you're trying to write, though
18:13:09  <jaawerth>I don't usually check a prototype - I just try to use the prototype methods I've defined and make sure they work as expected
18:13:53  <TheRev_mobile>well the problem is that in my tests a certain method is coming up as not existing
18:14:07  <jaawerth>ah
18:14:08  <TheRev_mobile>furthermore it is only within one test environment
18:14:21  <TheRev_mobile>so I'm trying to figure out what might be responsible for it
18:19:02  * xkapastelquit (Quit: Connection closed for inactivity)
18:19:54  * goodenoughquit (Read error: Connection reset by peer)
18:20:14  * mezodjoined
18:20:19  * Sven_vBquit (Disconnected by services)
18:20:21  * Sven_vBjoined
18:20:25  * duderonomyjoined
18:22:19  * dijksterhuisjoined
18:22:24  * dijksterhuisquit (Remote host closed the connection)
18:22:42  * IanLiuquit (Quit: IanLiu)
18:24:06  * sauvinquit (Remote host closed the connection)
18:24:33  * mezodquit (Ping timeout: 248 seconds)
18:26:19  * raynoldquit (Quit: brb)
18:27:15  <TheRev_mobile>yeah printing that verbose version of the prototype gives me an undefined
18:28:13  * nvh^joined
18:28:18  * heyitsramaquit (Remote host closed the connection)
18:30:48  <Wes->bradleymeck: Interesting. I wonder what lessons they learned w.r.t. making one embedding run on both platforms. There aren't a lot of teams doing that.
18:34:06  * sethjoined
18:34:29  * sethchanged nick to Guest4616
18:37:39  * goodenoughjoined
18:37:53  * Guest4616quit (Client Quit)
18:39:04  * jkridnerquit (Remote host closed the connection)
18:40:38  <TheRev_mobile>So i have a null prototype for an object within a testing environment
18:40:41  <TheRev_mobile>:/
18:42:24  * grimaronjoined
18:42:30  * grimaronquit (Client Quit)
18:42:37  * Sven_vBquit (Disconnected by services)
18:42:39  * Sven_vB_joined
18:43:41  * tvwjoined
18:43:43  * grimaronjoined
18:44:09  * m00dyjoined
18:44:40  * grimaronquit (Client Quit)
18:44:58  <bradleymeck>TheRev_mobile: ok, that can happen
18:45:10  * ch007m_2joined
18:45:27  * renloquit (Ping timeout: 240 seconds)
18:45:58  <TheRev_mobile>what would cause it
18:46:15  <TheRev_mobile>and why is it preventing one very specific method from being called'
18:46:33  * reactiv3joined
18:46:45  <bradleymeck>someone used Object.create(null), someone used class extends null, the value is an ESM Namespace object, someone used Object.setPrototypeOf(v, null) ....
18:47:02  <devsnek>lol
18:47:08  <devsnek>speaking of class extends null
18:47:16  <TheRev_mobile>That is most certainly not the case here
18:47:19  <devsnek>isn't that supposed to be fixed at some point
18:47:19  <zumba_ad_>I'm on the side of starting an existing app from scratch using a different library while existing app is being maintained. Some officemates disagreed with me. However, I said that because I know myself. However, am I wrong?
18:47:47  <bradleymeck>TheRev_mobile: i don't understand the question about the method, but I'm assuming the method is trying to use something off Object.prototype like .hasOwnProperty and since the value doesn't have that prototype, it fails
18:47:55  <bradleymeck>devsnek: no one wants to right the PR, but yes
18:48:01  <jaawerth>TheRev_mobile: well, it's a testing environment, right? Assuming this is a custom object, is there a mock for the thing? If it's native, are there shims that maybe weren't loaded in teh test environment?
18:48:22  <bradleymeck>we know how to fix it but it has a nasty question about evaluation ordering vs early errors on the `extends` operand
18:48:33  <TheRev_mobile>basically I'm calling object.method() and in one testing environment (vs code) it works as excpected
18:48:40  <devsnek>is the agreement that it should work
18:48:42  <devsnek>or not work
18:48:48  <reactiv3>Hi! Is res.render() supposed to render files inside the 'views' directory by default even if i didn't specify it with app.set('views', ./views)?
18:48:49  * ch007mquit (Ping timeout: 268 seconds)
18:48:52  <devsnek>cuz its like 50/50 rn
18:49:00  <reactiv3>or is this unexpected behavior?
18:49:03  <TheRev_mobile>then when i run it as part of a testing script with npm testL I get a function does not exist error
18:49:04  * renlojoined
18:49:08  <TheRev_mobile>this is 100% unexpected
18:49:17  <TheRev_mobile>and inconsistent among environments
18:49:30  <devsnek>are you using uh
18:49:31  <devsnek>expres
18:49:36  <devsnek>express*
18:49:38  <TheRev_mobile>on the back end
18:49:38  <bradleymeck>devsnek: who said it shouldn't work? last meeting I talked about it in was just about how spec is broken, not that it shouldn't work
18:49:39  <TheRev_mobile>yes
18:49:50  * goodenoughquit (Read error: Connection reset by peer)
18:49:50  * m00dyquit (Ping timeout: 256 seconds)
18:49:54  <TheRev_mobile>if it's @ me
18:49:57  <jaawerth>it's hard to say without seeing the test code and the module that's being tested
18:49:59  <devsnek>bradleymeck: i haven't seen anyone say anything about it really
18:50:03  <devsnek>thats why i was asking lel
18:50:22  * ch007m_2quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:50:26  * goodenoughjoined
18:50:59  * smccarthyjoined
18:51:05  <reactiv3>devsnek, if you're asking me i'm using express
18:51:08  <bradleymeck>devsnek: it is mostly that you can use Object.setPrototypeOf after instantiating a class so the use case is possible, and fixing the spec is... brutally hard
18:51:13  * akivaquit (Ping timeout: 248 seconds)
18:51:35  <devsnek>hmmmmmm
18:52:20  * RLajoined
18:52:34  * Laptop_miniquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:53:28  <jaawerth>can you even instantiate a class that extends null?
18:53:31  <jaawerth>I'd imagine it would break
18:54:00  <devsnek>no it throws
18:54:04  <jaawerth>oh, I suppose theoretically you could defining, THEN set the prototype, and it would magically would
18:54:08  <devsnek>but i think the idea is that people want it to work
18:54:58  * renloquit (Ping timeout: 264 seconds)
18:55:05  <bradleymeck>jaawerth: you were supposed to be able to
18:55:11  <bradleymeck>but the spec is totally broken
18:55:32  <bradleymeck>they made extra spec text about how it should work, but it didn't work actually
18:55:33  * smccarthyquit (Ping timeout: 264 seconds)
18:55:38  <devsnek>y'all need to unit test the spec /s
18:55:41  <GreenJello>n> class X extends Object.assign(function(){}, { prototype: null }) {}; const x = new X(); x.hasOwnProperty
18:55:43  <jellobot2>(okay) undefined
18:56:41  * jellobot2quit (Remote host closed the connection)
18:56:47  * jellobotjoined
18:56:58  <bradleymeck>n> class X {} ; Object.setPrototypeOf(x.prototype, null); new X(); x.hasOwnProperty // more common
18:57:00  <jellobot>(okay) undefined:1 class X {} ; Object.setPrototypeOf(x.prototype, null); new X(); x.hasOwnProperty // more common ^ ReferenceError: x is not defined at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551: ...
18:57:06  * stairmast0rquit (Quit: bye)
18:57:14  <GreenJello>still haven't figured out how to get jellobot to update its nick when it gets changed
18:57:18  <bradleymeck>n> class X {} ; Object.setPrototypeOf(x.prototype, null); const x = new X(); x.hasOwnProperty
18:57:19  <jellobot>(okay) undefined:1 class X {} ; Object.setPrototypeOf(x.prototype, null); const x = new X(); x.hasOwnProperty ^ ReferenceError: x is not defined at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) a ...
18:57:28  <bradleymeck>n> class X {} ; Object.setPrototypeOf(X.prototype, null); new X(); x.hasOwnProperty
18:57:30  <jellobot>(okay) undefined:1 class X {} ; Object.setPrototypeOf(X.prototype, null); new X(); x.hasOwnProperty ^ ReferenceError: x is not defined at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function ...
18:57:33  <jaawerth>n> class Foo extends null {}; Object.setPrototypeOf(Foo, Map); Foo.prototype = Object.create(Map.prototype); new Foo().set('a', 1)
18:57:34  <bradleymeck>bah
18:57:35  <jellobot>(okay) undefined:1 class Foo extends null {}; Object.setPrototypeOf(Foo, Map); Foo.prototype = Object.create(Map.prototype); new Foo().set('a', 1) ^ TypeError: (intermediate value).set is not a function at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) ...
18:59:41  * jjidoquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:59:45  * zsocquit (Disconnected by services)
18:59:48  * zsocwjoined
19:00:26  <jaawerth>yup, pretty broken!
19:00:30  <devsnek>code is hard 😓
19:00:32  * Sharaaljoined
19:00:53  <jaawerth>it makes sense though, setPrototypeOf and .prototype don't cover all the crap class does particularly wrt extending builtins
19:00:57  * myratjoined
19:01:21  <jaawerth>Map was probably a bad one to try it on because you can't actually extend that with just those methods
19:02:18  * MrAbaddonjoined
19:03:39  * goodenoughquit (Read error: Connection reset by peer)
19:03:42  * heyitsramajoined
19:03:54  * MrAbaddonquit (Remote host closed the connection)
19:04:47  * Sharaalquit (Ping timeout: 245 seconds)
19:05:17  <jaawerth>ohhh this is interesting
19:06:43  <jaawerth>n> class A extends null {}; require('util').inherits(A, Array); Object.getPrototypeOf(A.prototype);
19:06:44  <jellobot>(okay) []
19:06:47  <merpnderp>I wonder why helmet doesn't include csurf?
19:06:55  <jaawerth>huh, it didn't do that when I did it manually lol
19:07:01  * Caspinoljoined
19:07:46  <jaawerth>n> class A extends null {}; require('util').inherits(A, Array); var a = new A(); a.push(1); a;
19:07:47  <jellobot>(okay) undefined:1 class A extends null {}; require('util').inherits(A, Array); var a = new A(); a.push(1); a; ^ TypeError: Super constructor null of A is not a constructor at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/mod ...
19:07:51  <jaawerth>I give up
19:08:01  <jaawerth>(and will stop botspamming the channel.. sorry)
19:08:33  <paulcarroty>don't give up
19:08:36  * goodenoughjoined
19:08:39  <jaawerth>lol
19:11:04  <merpnderp>Is there a csrf token lib that doesn't require me to handle csrf tokens in my forms as my app is 99% webapi.
19:11:38  * darutokoquit (Quit: Any sufficiently advanced technology is indistinguishable from magic. (Arthur C. Clarke))
19:11:48  * Caspinolquit (Ping timeout: 256 seconds)
19:12:06  * renlojoined
19:12:15  * RLaquit (Quit: Leaving)
19:12:40  * jjidojoined
19:12:41  * heyitsramaquit (Ping timeout: 265 seconds)
19:13:09  * plasticlequit (Quit: WeeChat 2.0.1)
19:14:00  <merpnderp>Oh, duh, if you're making ajax calls, you don't have to worry about csrf.
19:14:02  <merpnderp>CORS :P
19:15:03  * jkridnerjoined
19:15:12  * stairmast0rjoined
19:16:20  * plasticlejoined
19:16:30  <jaawerth>devsnek, bradleymeck: got it, lol
19:16:35  * tymczenkojoined
19:16:49  <jaawerth>n> class M extends null {}; [[M, Map], [M.prototype, Map.prototype]].forEach(ab => Object.setPrototypeOf(...ab)); new M().set('a', 1)
19:16:51  <jellobot>(okay) Map (1) {'a' => 1}
19:17:10  * zedsjoined
19:17:15  * zedspart
19:17:21  * renloquit (Ping timeout: 248 seconds)
19:17:28  * plexigrasquit (Ping timeout: 256 seconds)
19:17:29  * chachanjoined
19:17:41  * glitchmasta47joined
19:18:15  * plexigrasjoined
19:18:26  * tymczenkoquit (Remote host closed the connection)
19:18:40  <jaawerth>Class.prototype is non-writable and non-configurable so you can't set it, you gotta use setPrototypeOf on it instead, as well as on the class itself
19:18:54  <jaawerth>forgot about that
19:19:26  * GlitchMasta4754joined
19:19:32  * reactiv3quit (Quit: Leaving)
19:19:48  <glitchmasta47>oh hi
19:19:59  * jkridnerquit (Ping timeout: 256 seconds)
19:20:17  * glitchmasta47quit (Quit: yeet)
19:20:33  * GlitchMasta4754part
19:21:56  * xkapasteljoined
19:24:32  * Sven_vB_changed nick to Sven_vB
19:25:48  * eckhardt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:26:13  * zsocjoined
19:26:13  * zsocquit (Changing host)
19:26:13  * zsocjoined
19:30:05  * zsocwquit (Ping timeout: 265 seconds)
19:32:08  * ch007mjoined
19:32:49  * zsocquit (Disconnected by services)
19:32:49  * zsocwjoined
19:33:42  * ch007mquit (Client Quit)
19:33:44  <merpnderp>How can I combine this into a single function?
19:33:49  <merpnderp>https://www.irccloud.com/pastebin/6E7CGUX9/
19:36:52  * renlojoined
19:38:03  * wopijoined
19:38:44  <wopi>Hi, what template engine for express should I use? I would use partials and layouts (comming from the Rails world)
19:39:06  <DeltaHeavy>wopi I like Pug. It's kinda like HAML in a sense. Handlebars is also popular.
19:39:19  * RyansWorldquit (Quit: Connection closed for inactivity)
19:39:34  * jjidoquit (Ping timeout: 256 seconds)
19:39:37  * lord|joined
19:39:52  <wopi>DeltaHeavy: thought more about something htmlish, don't lile the haml/slim syntax, horrible for reusing examples from the web
19:39:58  <jaawerth>merpnderp: something like `const loginHandler = predicate => predicate(req, res) ? /* handle login */ : /* error */`
19:40:04  <zsocw>wopi: nunjucks
19:40:18  <DeltaHeavy>wopi Handlebars is like that then.
19:41:12  <jaawerth>merpnderp: then you can do, like, router.post('/login', loginHandler(req => req.body.email && req.body.password))
19:41:31  * NomadJim_quit (Read error: Connection reset by peer)
19:41:40  * ahmedelgabrijoined
19:42:54  * weird_errorquit (Quit: weird_error)
19:43:08  <wopi>thx guys, does I understand it right, handlebars doesn't support layouts out of the box (handlebars-layouts plugin) ?
19:43:16  <zsocw>merpnderp: what's wrong with just doing router.post('/login', validateForm, handleLogin) ?or something similar
19:43:37  <zsocw>wopi: which is one of many reasons i recommend nunjucks :p
19:44:12  <wopi>zsocw: makes sense, just asking because I heard here and there about handlebars, never a thing about nunjucks, but makes sense
19:44:39  <wopi>zsocw: will give nunjucks a shot :)
19:45:11  * weird_errorjoined
19:45:16  <jaawerth>merpnderp: actually I'd probably just do router.post('/login', hasEmailAndPassword, handleLogin), where hasEmailAndPassword would be (req, res, next) => { if (!req.body.email || !req.body.password) return res.status(422).json(blah); next(); }
19:45:24  <jaawerth>damn, zsocw beat me to it
19:45:27  <zsocw>^ that ultimately
19:45:29  <jaawerth>but yeah, just let middleware do its thing
19:45:39  <zsocw>but if you have a lot of routes with form validation you probably want to create something more cohesive
19:45:42  * m00dyjoined
19:45:46  * goodenoughquit (Read error: Connection reset by peer)
19:45:53  <zsocw>like hasFields([ ...fieldNames ]) or something
19:46:18  <jaawerth>yeah some kind of descriptor for checks and actions based on the failed validation
19:46:24  <jaawerth>with a consistent api
19:46:29  <zsocw>then you could do router.post('/login', hasFields(['email', 'password']), handleLogin) or similar
19:50:41  * goodenoughjoined
19:50:45  * m00dyquit (Ping timeout: 264 seconds)
19:52:07  * akivajoined
19:54:16  * bdunavantquit (Remote host closed the connection)
19:56:52  <timwis>Hey folks, is there a convention for making it clear what your primary export is, but also exporting other functions for unit testing purposes? With ES6 imports I'd use export default and regular export for this, but I'm writing an AWS lambda function, (node 8.10) so I assume ES6 imports are out.
19:56:55  * kakashiA1joined
20:00:28  <ljharb>timwis: the best is putting those in separate files.
20:01:01  <timwis>ljharb: interesting - why do you recommend that? if they're quite closely related, and the helper functions are only a couple lines long and not used by other files
20:01:02  * paulcarrotyquit (Quit: Leaving)
20:01:04  <rom1504>just write it in the doc
20:01:17  <ljharb>timwis: use directories to group related files.
20:01:24  <ljharb>timwis: it's best when each file/module exports one thing.
20:01:34  * kakashiA1quit (Ping timeout: 264 seconds)
20:01:36  <ljharb>timwis: if they're not used by other files, then you wouldn't want to export them at all
20:01:43  <ljharb>timwis: exporting things just for testing isn't necessarily a good idea.
20:02:12  <zsocw>neither is 100% coverage
20:02:29  <ljharb>i don't agree there
20:02:32  * bdunavantjoined
20:02:45  <zsocw>well, not in a top level application
20:02:45  <ljharb>100% coverage is a minimum. it's not nearly sufficient testing, but there's no good reason not to strive for it.
20:02:56  <ljharb>it's not as necessary and not as easy, but it's still never bad
20:03:03  * CaribGuyjoined
20:03:10  * CoolerYjoined
20:03:18  <zsocw>except using those development cycles for better forms of qa
20:03:25  <timwis>interesting
20:03:27  <CoolerY>what do i need to specify when returning otf files in a http response?
20:03:57  <CoolerY>right now i am doing fs.createReadStream(fontfilepath).pipe(res);
20:04:05  <ljharb>zsocw: that's a prioritization concern, and is unrelated to what we're talking about
20:04:15  <CoolerY>but thats messing up the returned binary
20:04:24  * NomadJimjoined
20:04:26  <zsocw>CoolerY: you mean a mimetype? it's font/opentype
20:05:00  <zsocw>oh i'm wrong, it's application/x-font-opentype apparently, huh
20:05:02  <zsocw>TIL
20:05:41  <jaawerth>ljharb: a minimum? what's ideal, then?
20:05:44  <jaawerth>don't say infinite
20:05:46  * goodenoughquit (Read error: Connection reset by peer)
20:05:52  * chachanquit (Remote host closed the connection)
20:05:54  * mzl0quit (Ping timeout: 268 seconds)
20:06:09  <ljharb>jaawerth: for just coverage, the ideal is "as close to 100 as possible"
20:06:20  <ljharb>jaawerth: what i mean is, there's no reason you want anything except "100%"
20:06:24  * goodenoughjoined
20:06:25  <zsocw>ljharb: sure i'll buy "never bad" as long as everything better is done before :p
20:06:26  <ljharb>jaawerth: but, once you have 100%, that doesn't mean your tests are done.
20:06:30  * chachanjoined
20:06:44  <zsocw>The most useful tests are the ones you write after fixing a bug to protect regression :p
20:06:57  <jaawerth>ljharb: lol, ok. calling it a minimum to me implies hitting 100% is like "well I GUESS that's ok... you should really do more though"
20:07:28  <rom1504>yeah
20:07:29  * sz0quit (Quit: Connection closed for inactivity)
20:07:53  <rom1504>I don't think it's very complicated to create fake tests that achieve 100% coverage but actually test nothing
20:08:14  <rom1504>just call all the functions with automatically generated parameters
20:08:25  <rom1504>do no assert on that neither checks
20:08:45  <jaawerth>ljharb: I just worry that pushing 100% will end up resulting in tests that are too tightly coupled to implementation details in the push for full coverage
20:08:47  <zsocw>even tests that legitimately test *something* often do not test even close to the most optimal things for the lines they are claiming to cover, etc
20:08:51  <zsocw>coverage just for coverage is meh
20:09:22  * bdunavantquit (Ping timeout: 264 seconds)
20:09:24  <ljharb>jaawerth: yes that's right
20:09:28  <ljharb>jaawerth: you should do more than 100%
20:09:37  <ljharb>jaawerth: coverage is just "this line executed", not "this line did the right thing"
20:09:45  <jaawerth>ljharb: which makes refactoring impossible if you define "refactor" as "changing code without having to change the tests"
20:09:51  <ljharb>i don't agree
20:09:57  * kingarmadilloquit (Ping timeout: 240 seconds)
20:10:08  <ljharb>100% coverage means your tests exercise all the code. it doesn't mean the tests mandate anything about those lines.
20:10:15  <ljharb>and specifically, that's only possible by using public API.
20:10:27  * chachanquit (Ping timeout: 240 seconds)
20:10:29  <ljharb>so if you have nothing private, then *that* is what makes refactoring impossible :-)
20:10:50  <CoolerY>zsocw, still not working
20:10:51  <jaawerth>fair
20:10:58  <jaawerth>I thought some coverage tools snooped past the public api
20:11:09  * catearsjoined
20:11:22  <jaawerth>I suppose that would require a level of code analysis that would make it take way longer than it does though
20:11:27  <ljharb>none that i know of
20:11:28  <zsocw>!not working @ CoolerY
20:11:28  <ecmabot>CoolerY: What do you mean it doesn't work? Is it unemployed? What happens when you try to run it? What did you try to run? What's the output? What's the error message? What did you want or expect to happen? Can you post a screenshot or a fiddle?
20:11:35  <ljharb>i mean like, istanbul rewrites your code to instrument it
20:11:40  <ljharb>but that doesn't impact how your tests actually work
20:11:49  * ahandyquit (Quit: Connection closed for inactivity)
20:11:50  <jaawerth>yeah, I take your point
20:12:43  <jaawerth>you just tricked me into a good argument for bundling helpers hidden inside modules in a non-reusable way so now my head asplode
20:12:47  * CaribGuyquit (Ping timeout: 276 seconds)
20:14:22  <CoolerY>zsocw, https://paste.pound-python.org/show/hngguif1qvSSFbDegBPG/
20:14:42  * KieronWiltshirequit (Remote host closed the connection)
20:14:48  * chachanjoined
20:14:53  <CoolerY>zsocw, the returned binary data does contain parts of the font file but it also contains other stuff
20:15:08  <CoolerY>which makes it an invalid otf file if you try to open it
20:15:37  * psychicist__quit (Quit: Lost terminal)
20:15:46  <zsocw>why aren't you using express? or at least the part of it that does this (the `send` module)
20:15:52  <ljharb>jaawerth: lol
20:16:24  * kingarmadillojoined
20:16:31  <zsocw>there's more to sending a file than just setting the header... generally a content-length is expected? i think? i dunno, i don't know the details. And I don't have to, I use existing libraries that implement it properly :p
20:16:33  * TheRev_mobilequit (Ping timeout: 264 seconds)
20:16:40  <zsocw>*than just setting the content-type header
20:17:05  * nodweberquit (Ping timeout: 248 seconds)
20:17:16  * userxjoined
20:17:34  <zsocw>but there's no reason why what you show there would send anything more than the actual file.. so i'm not sure what you mean by 'other stuff'
20:17:40  <zsocw>what does the client show in the js console?
20:18:13  * RLajoined
20:18:50  * nodweberjoined
20:19:10  <CoolerY>zsocw, if you open the file you get in sublime text you can see that the bytes are same as the original otf file in the beginning
20:19:17  <CoolerY>but then start to change
20:19:20  <merpnderp>zsocw: sorry went on a coffee run. Yes, that sounds much better actually :)
20:19:22  <CoolerY>and parts of it match up
20:20:00  * ed209quit (Remote host closed the connection)
20:20:01  <zsocw>at the very least you probably need to also fs.stat the file and and add `res.setHeader('content-length', stat.size);
20:20:04  <zsocw>but again just use `send`
20:20:06  * ed209joined
20:20:28  * devslashjoined
20:20:34  <devslash>npm audit is showing 7 vulnerabilities and all of them say that the dependency is karma [dev]
20:21:04  <devslash>How i installed karma but its still showing these vulnerabilities
20:21:44  * heyitsramajoined
20:21:50  <zsocw>karma is a dev-only dependency... i don't see how there are related vulns to that
20:21:59  <devslash>i dunno
20:22:14  <CoolerY>zsocw, hmm actually it seems that its not a node issue
20:22:22  <CoolerY>the file it was serving got corrupted somehow
20:22:30  <zsocw>devslash: oh the vuln's are in karma's deps... in that case i'd just ignore it
20:22:51  * nodweberquit (Ping timeout: 240 seconds)
20:22:56  <zsocw>CoolerY: i see.. okay
20:23:47  <devslash>are you sure ?
20:24:09  <devslash>call me crazy but I like to run npm audit and see 0 vulnerabilities found
20:24:12  <zsocw>yes? the point of npm audit is to inform you of possible vulnerabilities and for you to assess the issues yourself
20:24:23  <zsocw>yes that is crazy, because you are supposed to look at each one and make a decision
20:24:43  <zsocw>and in this case the only vulns you see are related to a dev-only package (and it's dependencies, at that) so they are meaningless to the production deployment of your application
20:24:46  <devslash>zsocw, the packages themselves that have the vul. arent karma but they all have karma as a dep.
20:24:58  <zsocw>no it's the other way around, karma depends on them
20:25:03  <devslash>ok
20:25:52  <zsocw>now i'd still look at them.. ofc it's possible that having some vuln in a dev dep may open your local dev machines up to some issue... but i super highly doubt that in these instances
20:26:50  <DeltaHeavy>zsocw++
20:27:17  * heyitsramaquit (Ping timeout: 255 seconds)
20:28:07  * zsocwis now NaN
20:32:58  <doodadjs>zsocw.reset()
20:33:05  * evilbugquit (Ping timeout: 240 seconds)
20:33:19  <zsocw>i wish people would stop coercing me
20:33:46  * nodweberjoined
20:33:58  * kingarmadilloquit (Ping timeout: 256 seconds)
20:34:04  <zsocw>although += 1 isn't any better I guess, eventually zsoc111111111111111111111 would get too long for freenode to accept... maybe js needs a way to override operators xD
20:36:22  * jj-quit (Ping timeout: 264 seconds)
20:36:57  * pandemquit (Ping timeout: 264 seconds)
20:38:40  * pandemjoined
20:39:45  * lord|quit (Quit: WeeChat 2.1)
20:40:10  * lord|joined
20:42:52  * jj-joined
20:43:01  * Laptop_minijoined
20:44:53  * kingarmadillojoined
20:45:58  * alexi5joined
20:46:03  * goodenoughquit (Read error: Connection reset by peer)
20:46:06  <jaawerth>zsocw.valueOf = () => 9001
20:46:20  <zsocw>D:
20:46:50  * m00dyjoined
20:48:25  * EREVANquit
20:49:16  * lord|quit (Quit: WeeChat 2.1)
20:50:57  * goodenoughjoined
20:51:13  * lord|joined
20:52:21  * m00dyquit (Ping timeout: 256 seconds)
20:54:25  * kingarmadilloquit (Ping timeout: 248 seconds)
20:56:29  <zsocw>some apis just make me want to ... change my line of work
20:57:33  * Sven_vBquit (Disconnected by services)
20:57:35  * Sven_vBjoined
20:57:48  <zsocw>It responds with a urlencoded string in the body (which is then also htmlencoded... why? it's a REST api...) with a field that is an array like &data[]=...&data[]=... where the field is actually JSON
20:58:31  <zsocw>So I have html encoded " in a string that is, in theory, JSON otherwise
20:58:52  <zsocw>i'm sure i can parse this using some combination of `qs` and JSON parsing but it's just so obnoxious
20:59:42  * apowers313joined
21:00:26  * Sven_vBquit (Disconnected by services)
21:00:28  * Sven_vB_joined
21:00:53  * apowers313quit (Client Quit)
21:01:25  * renloquit (Ping timeout: 256 seconds)
21:03:50  * goodenoughquit (Read error: Connection reset by peer)
21:04:30  * kingarmadillojoined
21:04:36  * renlojoined
21:08:33  * Sven_vBjoined
21:10:59  * Sven_vB_quit (Ping timeout: 250 seconds)
21:11:22  * robo7quit (Ping timeout: 256 seconds)
21:11:24  * Keanu73quit (Read error: Connection reset by peer)
21:13:00  * goodenoughjoined
21:13:37  * Sven_vBquit (Disconnected by services)
21:13:39  * Sven_vBjoined
21:15:26  * Sven_vBquit (Disconnected by services)
21:15:28  * Sven_vBjoined
21:19:51  * Aquazi_joined
21:19:55  * Ergoquit (Quit: WeeChat 1.9.1)
21:22:08  * Guest4616joined
21:22:38  * plexigrasquit (Ping timeout: 255 seconds)
21:22:57  * Aquaziquit (Ping timeout: 256 seconds)
21:23:54  * devslashpart ("Leaving")
21:33:19  * heyitsramajoined
21:36:49  * ShrewdSpiritjoined
21:37:03  <ShrewdSpirit>Hello. Is nodejs suitable for a web based multiplayer game?
21:37:45  <ShrewdSpirit>I'm not sure if node's way of handling connections and lack of threads can handle a realtime multiplayer game
21:40:55  * codymjquit (Quit: Leaving)
21:44:25  * ShrewdSpiritquit (Remote host closed the connection)
21:44:37  * sergeyquit
21:46:20  * goodenoughquit (Read error: Connection reset by peer)
21:48:00  * Caspinoljoined
21:48:18  * m00dyjoined
21:49:00  <rom1504>yes
21:49:46  * NomadJimquit (Read error: Connection reset by peer)
21:49:49  <DeltaHeavy>Depends on the game
21:51:11  * Sven_vBquit (Disconnected by services)
21:51:13  * Sven_vB_joined
21:51:13  * goodenoughjoined
21:51:34  * smccarthyjoined
21:52:52  * Caspinolquit (Ping timeout: 256 seconds)
21:53:26  * m00dyquit (Ping timeout: 256 seconds)
21:55:23  * horseyjoined
21:55:34  * NomadJimjoined
21:56:09  * smccarthyquit (Ping timeout: 264 seconds)
21:56:14  * darkSeidjoined
21:58:23  * banisterfiendjoined
21:59:35  * horseyquit (Ping timeout: 240 seconds)
22:05:22  * zsocwquit (Quit: Leaving)
22:05:53  * Sven_vBjoined
22:06:36  * DeltaHeavyquit (Quit: Textual IRC Client: www.textualapp.com)
22:06:53  * jottrjoined
22:07:35  * paraxialquit (Quit: The Lounge - https://thelounge.github.io)
22:07:35  * zsocjoined
22:07:57  <gajus>My new project open-source project https://github.com/gajus/palantir
22:08:00  <gajus>https://medium.com/@gajus/automating-persistent-integration-testing-and-alerting-d507572a2618
22:08:02  * paraxialjoined
22:08:11  * Sven_vB_quit (Ping timeout: 250 seconds)
22:08:36  <chachan>hi. Any idea why I'm not seeing node_modules in /srv/www/ here: https://gist.github.com/chachan/fe95e107a2c7bae9df92e89bda0b9678 ?
22:10:22  <chachan>hold on. I see, just not through docker-compose. It's a different story, ignore me
22:11:50  * falafeljoined
22:12:58  * heyitsramaquit (Ping timeout: 264 seconds)
22:16:03  * goodenoughquit (Read error: Connection reset by peer)
22:16:58  <chachan>funny stuff. Volume is overriding node_modules folder
22:18:04  * cthulchu_joined
22:20:45  * ericlimaquit (Remote host closed the connection)
22:20:58  * mac_ifiedquit (Remote host closed the connection)
22:21:19  * cthulchuquit (Ping timeout: 256 seconds)
22:23:47  <jaawerth>chachan: generally you would want docker to build and manage its own node_modules (in a volume during dev for speed and persistence, in the actual container image for deployment). If you try to bind it to the host node_modules, weird stuff can happen particularly if you have any modules that use native addons
22:24:16  * grr12314quit (Quit: Page closed)
22:25:10  <chachan>jaawerth: that's exactly what I want to do (have docker manage it). Though I found this https://stackoverflow.com/q/30043872/
22:25:13  * goodenoughjoined
22:25:50  <chachan>so seems I was right about the override. I'm going to set a new volume for node_modules to "protect it"
22:26:01  * ahmedelgabriquit (Ping timeout: 265 seconds)
22:26:18  <chachan>that way devs won't see the node_modules in their root dir
22:27:26  <jaawerth>yeah, that's what you'd want to do - have a dedicated volume for node_modules
22:28:44  <chachan>the thing I was reading is what docker handle that. Seems like links that node_module with a dir in the host but in a different space
22:29:05  * chachanis testing
22:29:19  * smccarthyjoined
22:29:32  * greggerzquit (Quit: Leaving)
22:29:40  <chachan>seems like it worked :p
22:30:45  <jaawerth>nice
22:33:41  * weird_errorquit (Quit: weird_error)
22:36:22  * weird_errorjoined
22:36:59  * Kronuzquit (Ping timeout: 268 seconds)
22:38:54  * falafel_joined