00:01:22  <nomoney4u>morenoh149: http://www.passportjs.org/docs/facebook what do you mean which endpoint to POST? the strategy is doing the work, new FacebookStrategy() and is returning a callback, the accessToken is also being returned w/ the person's profile
00:01:23  <sinapinto1>ljharb: still fails
00:01:54  <ljharb>sinapinto1: interesting. what OS? what's in package.json?
00:01:57  <ljharb>also try `npm cache clear` iirc
00:02:07  <sinapinto1>npm WARN ajv-keywords@2.1.1 requires a peer of ajv@^5.0.0 but none is installed. You must install peer dependencies yourself.
00:02:13  <sinapinto1>could this be relevant?
00:02:56  <ljharb>i mean, you'd have to fix that, sure, but that wouldn't cause this
00:03:00  <ljharb>are you using an old eslint?
00:04:38  <sinapinto1>ljharb: running osx, here's the package.json https://gist.github.com/sina-mist/b182a5f762d3f60b6d1c3d6085f3f209
00:05:22  <sinapinto1>seems eslint is a version old
00:05:28  <sinapinto1>major version*
00:05:53  <ljharb>ah, the git repo might be causing problems
00:06:04  <ljharb>i suspect if you delete that line in package.json `npm install` will work fine
00:06:09  <sinapinto1>ohhh
00:06:37  <sinapinto1>well i mean npm install works, its just running eslint that throws
00:07:21  * cypher0x9joined
00:08:15  <ljharb>oh
00:08:20  <ljharb>well in that case try updating eslint :-p
00:09:57  * jamesdrawneekquit (Remote host closed the connection)
00:10:17  <sinapinto1>same issue on eslint 5.12.0
00:11:45  * aerex_quit (Ping timeout: 256 seconds)
00:12:20  <sinapinto1>stack trace is super unhelpful https://gist.github.com/sina-mist/167d53403f493cb4348a8ddd4f0fb839
00:12:50  * kakashiA1joined
00:14:18  * cypher0x9quit (Remote host closed the connection)
00:14:46  * heyitsramaquit (Remote host closed the connection)
00:15:12  * heyitsramajoined
00:17:02  <ljharb>oh
00:17:07  <ljharb>that's a bug in eslint-plugin-react
00:17:18  * kakashiA1quit (Ping timeout: 250 seconds)
00:17:24  <ljharb>which i think is fixed if you update it to latest
00:17:48  * aerex_joined
00:18:00  <ljharb>and if not, then please file an issue on eslint-plugin-react and i'll fix it :-)
00:18:26  * RoriconKnight_joined
00:19:25  <sinapinto1>ljharb: still fails on latest for me, ok thanks!
00:19:37  * duderonomyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:20:09  * heyitsramaquit (Remote host closed the connection)
00:20:16  * heyitsramajoined
00:22:11  <ljharb>sinapinto1: please provide your eslint config
00:22:42  * kliqquit (Ping timeout: 252 seconds)
00:22:46  * RoriconKnightquit (Ping timeout: 272 seconds)
00:22:53  * ahmed_elgabriquit (Quit: WeeChat 2.3)
00:27:13  * AvianFlujoined
00:31:10  <morenoh149>nomoney4u: I don't need an access token, I need user registration with said access token
00:31:28  <morenoh149>take a peek at https://github.com/drudge/passport-facebook-token
00:31:34  <morenoh149>gtg
00:33:03  * dlwicksellquit (Quit: Leaving.)
00:33:35  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:34:59  * RoriconKnight_quit (Quit: So, it has come to this.)
00:35:22  * RoriconKnightjoined
00:36:48  * morenoh149quit (Ping timeout: 250 seconds)
00:39:14  * xrashquit (Ping timeout: 272 seconds)
00:39:24  * xrashjoined
00:39:44  * lexileojoined
00:40:30  * Jervis_quit (Ping timeout: 272 seconds)
00:41:38  * dsiypl4quit (Ping timeout: 268 seconds)
00:43:02  * rtnquit (Ping timeout: 272 seconds)
00:44:54  * morenoh149joined
00:47:40  * electricarkquit (Read error: Connection reset by peer)
00:48:02  * electricarkjoined
00:49:22  * morenoh149quit (Ping timeout: 250 seconds)
00:49:58  * darkSeidquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:53:26  * bradfordli123quit (Remote host closed the connection)
00:59:33  * heyitsramaquit (Remote host closed the connection)
00:59:56  * sinapinto1quit (Quit: WeeChat 2.1)
01:04:38  * al-damiriquit (Quit: Connection closed for inactivity)
01:05:57  * on3pkquit (Ping timeout: 252 seconds)
01:09:25  * Sven_vBquit (Remote host closed the connection)
01:09:44  * sneequit (Ping timeout: 250 seconds)
01:11:03  * Sven_vBjoined
01:12:35  * nascentEpochjoined
01:12:58  * orbyt_joined
01:13:46  * Stephen66quit (Quit: Connection closed for inactivity)
01:14:52  * orbyt_quit (Client Quit)
01:16:39  * Sharaaljoined
01:17:03  * sneejoined
01:17:06  * nascentEpochpart
01:20:00  * ed209quit (Remote host closed the connection)
01:20:01  * gli|wfhjoined
01:20:07  * ed209joined
01:20:17  * dlwickselljoined
01:20:48  * foolibarjoined
01:21:38  * Sharaalquit (Ping timeout: 268 seconds)
01:23:33  * kjartanquit (Read error: Connection reset by peer)
01:24:22  * slajaxjoined
01:24:28  * tmquit (Ping timeout: 250 seconds)
01:26:12  * sternsquit (Ping timeout: 246 seconds)
01:26:26  * kjartanjoined
01:27:54  * tmjoined
01:31:14  * userxjoined
01:33:21  * aerex_quit (Ping timeout: 256 seconds)
01:37:02  * renloquit (Ping timeout: 250 seconds)
01:37:51  * rohan__joined
01:38:29  * waveframequit (Quit: ZNC 1.6.1 - http://znc.in)
01:39:05  * mezodquit (Remote host closed the connection)
01:39:10  * waveframejoined
01:39:29  * Laptop_miniquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:39:46  * sternsjoined
01:48:27  * superloujoined
01:50:58  * igemnacejoined
01:53:27  * marthinaljoined
01:56:25  * slajaxquit (Ping timeout: 246 seconds)
01:57:39  * Cabanossiquit (Quit: Bye, bye...)
01:57:42  * marthinalquit (Ping timeout: 246 seconds)
01:58:42  * Cabanossijoined
02:02:51  * theWhisper_joined
02:07:11  * promethquit (Quit: My Mac Mini has gone to sleep. ZZZzzz…)
02:08:10  * bberryquit (Quit: Connection closed for inactivity)
02:09:14  * not_finger_gunsjoined
02:09:22  <not_finger_guns>hey anyone active at the moment?
02:10:27  * gnugnugnuquit (Quit: WeeChat 2.3)
02:10:32  * rohan__quit (Quit: Page closed)
02:11:13  * not_finger_gunspart
02:11:18  * gxtquit (Quit: WeeChat 2.3)
02:12:21  <MrTrick>Is there a good practice for wrapping/contextualising a low-level error before re-throwing it / percolating it up?
02:12:27  * jellobotquit (Remote host closed the connection)
02:12:35  * jellobotjoined
02:14:01  <MrTrick>How is something like this? try { ...... } catch(err) { err.message = "Failed to do context... error was: " + err.message; throw err; }
02:15:27  * mezodjoined
02:23:24  * topaxiquit (Read error: Connection reset by peer)
02:23:45  * bradfordli123joined
02:25:13  * bradfordli123quit (Read error: Connection reset by peer)
02:25:30  * topaxijoined
02:25:35  * bradfordli123joined
02:25:58  <GreenJello>MrTrick, you can do something like this https://gist.github.com/brigand/f9912df68a474a84f521d740cbaf0811
02:26:35  <GreenJello>MrTrick, that's a common pattern in rust, and works well in JS as well
02:27:43  <MrTrick>That's easy enough. I wonder if it's worth trying to keep the full stacktrace.
02:28:15  <GreenJello>that happens naturally, someone just traverses the 'cause' chain if they want the lower level stack trace
02:28:50  * bradfordli123quit (Remote host closed the connection)
02:28:57  <GreenJello>while (err.cause) { err = err.cause }; console.log(err) // lowest level error
02:29:10  * gxtjoined
02:31:35  <MrTrick>if someone goes to look for it - it won't show up in the normal error log
02:31:44  <MrTrick>Not a reason to avoid that pattern, all good.
02:32:03  <MrTrick>probably better to wrap the Error than mutate it, anyway.
02:34:05  * orbyt_joined
02:34:35  <GreenJello>oh, mutating the error sounds sketchy. If you want a full stack trace, you can do super(`${message}\n\n${cause}`)
02:34:53  <GreenJello>when you convert errors to a string, by default, you get the message and stack trace
02:35:15  <GreenJello>n> fs.readFile('nope', (err) => console.log(String(err))
02:35:16  <jellobot>Error: SyntaxError: missing ) after argument list
02:35:20  <GreenJello>n> fs.readFile('nope', (err) => console.log(String(err)))
02:35:21  <jellobot>(okay) undefinedError: ENOENT: no such file or directory, open 'nope'
02:35:33  <GreenJello>n> console.log(String(new Error("foo"))
02:35:34  <jellobot>Error: SyntaxError: missing ) after argument list
02:35:36  <GreenJello>n> console.log(String(new Error("foo")))
02:35:37  <jellobot>(okay) Error: foo undefined
02:35:39  <GreenJello>huh
02:35:57  <GreenJello>it usually works for me; not sure why it isn't here
02:36:35  * bradfordli123joined
02:37:12  * dlwicksellquit (Quit: Leaving.)
02:37:51  * netametaquit (Quit: Leaving)
02:39:47  <GreenJello>guess I'm wrong about that
02:40:08  * esrsejoined
02:40:19  <GreenJello>oh, other way around... new Error("foo").stack includes the 'message'
02:40:28  * bradfordli123quit (Remote host closed the connection)
02:40:52  <GreenJello>n> console.log(String(new Error("foo").stack))
02:40:53  <jellobot>(okay) Error: foo at evalmachine.<anonymous>:1:21 at Script.runInThisContext (vm.js:123:20) at run (/run/run.js:49:19) at /run/run.js:88:28 at process.internalTickCallback (internal/process/next_tick.js:77:7) undefined
02:41:41  * bradfordli123joined
02:46:03  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:48:05  * bradfordli123quit (Remote host closed the connection)
02:49:56  * superlouquit (Quit: Leaving)
02:53:58  * ebiquit (Quit: Connection closed for inactivity)
03:03:31  * gregf_quit (Ping timeout: 256 seconds)
03:06:55  * bradfordli123joined
03:10:39  * EyePulpjoined
03:16:07  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:16:13  * netametajoined
03:17:26  * trevorjoined
03:21:17  * dlwickselljoined
03:22:05  * orbyt_joined
03:26:53  * duderonomyjoined
03:30:49  * im3very1quit
03:32:42  * electricark__quit (Ping timeout: 252 seconds)
03:33:04  * electricarkquit (Ping timeout: 268 seconds)
03:34:56  * tlentjoined
03:39:13  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:43:42  * dskwlkrquit (Ping timeout: 252 seconds)
03:45:48  * slajaxjoined
03:46:19  * uptimequit (Quit: Riddlin.)
03:47:15  * tlentquit (Ping timeout: 244 seconds)
03:47:19  * EyePulpquit (Remote host closed the connection)
03:47:35  * craigojoined
03:51:25  * ensyde__joined
03:51:39  * ensyde__changed nick to ensyde
03:52:08  * the_antjoined
03:54:36  * sharkboyquit (Quit: The Lounge - https://thelounge.github.io)
03:55:01  * sharkboyjoined
03:57:28  * ^escquit (Ping timeout: 272 seconds)
03:58:17  * ^escjoined
04:00:41  * RoriconKnightquit (Ping timeout: 244 seconds)
04:02:37  * eajrjoined
04:05:55  * braincrashquit (Quit: bye bye)
04:06:24  * bradfordli123quit (Remote host closed the connection)
04:06:58  * bradfordli123joined
04:07:50  * nexiiquit (Ping timeout: 250 seconds)
04:08:00  * tlentjoined
04:10:00  * awghquit (Ping timeout: 250 seconds)
04:10:29  * braincrashjoined
04:11:18  * bradfordli123quit (Ping timeout: 250 seconds)
04:15:59  * howdoijoined
04:16:09  <MrTrick>thanks GreenJello, that helps.
04:18:09  <MrTrick>quick ES6 question, is there a shorthand for "take multiple specific properties from object and store in 'this'" ?
04:18:14  * tlentquit (Remote host closed the connection)
04:18:48  <MrTrick>eg instead of this.foo = options.foo; this.bar = options.bar; ....
04:19:45  * theWhisper_quit (Ping timeout: 252 seconds)
04:20:55  * RoriconKnightjoined
04:21:10  * kapil____joined
04:21:16  * morenoh149joined
04:23:33  <MrTrick>Hmm this seems okay: const {foo, bar} = {foo:'a',bar:'b',baz:'c'}; Object.assign(this, {foo, bar});
04:25:13  * userxquit (Quit: userx)
04:25:24  * qrestlovequit (Ping timeout: 268 seconds)
04:25:43  * morenoh149quit (Ping timeout: 258 seconds)
04:30:30  * Cabanossiquit (Ping timeout: 264 seconds)
04:30:49  * Cabanossijoined
04:31:07  * stalledquit (Ping timeout: 240 seconds)
04:34:24  * userxjoined
04:35:31  * userxquit (Client Quit)
04:37:54  * marthinaljoined
04:39:17  * fuzzyrainbowsquit (Remote host closed the connection)
04:42:30  * marthinalquit (Ping timeout: 250 seconds)
04:48:14  * daisongyujoined
04:48:45  * stalledjoined
04:49:12  * slajaxquit (Ping timeout: 246 seconds)
04:50:15  * cthu|quit (Ping timeout: 246 seconds)
04:51:07  * slajaxjoined
04:51:52  <ljharb>MrTrick: you can do that but you shouldn’t litter the instance with properties.
04:52:19  <MrTrick>which ones, the foo bar? or the properties on this?
04:52:25  * carb0n_joined
04:52:31  <ljharb>the latter
04:52:47  <MrTrick>they're not littered, they're public properties that should be there.
04:52:49  <ljharb>why not `this.options = options`
04:53:10  <ljharb>isn’t that up to you?
04:53:20  * keepLearning512joined
04:53:50  * nexiijoined
04:54:28  * daisongyuquit (Quit: WeeChat 2.3)
04:55:58  * slajaxquit (Ping timeout: 244 seconds)
04:56:07  * gambl0rejoined
05:04:56  * DeltaHeavyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:06:09  * slajaxjoined
05:09:02  * nexiiquit (Ping timeout: 258 seconds)
05:09:24  * snowgogglesquit (Quit: Leaving)
05:10:47  * slajaxquit (Ping timeout: 240 seconds)
05:12:40  * kantoijoined
05:14:09  * qrestlovejoined
05:15:41  * jlipps_quit (Quit: My comp has gone to sleep. ZZZzzz…)
05:17:42  * morenoh149joined
05:21:34  * uptimejoined
05:21:48  * morenoh149quit (Ping timeout: 244 seconds)
05:22:45  * Mattiaslndstrmquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:23:57  <MrTrick>ljharb: because. ;-)
05:25:04  <MrTrick>Haha I win a fool-prize: node recognises you accidentally typing npm commands into the repl and tells you off.
05:25:32  * chargen_joined
05:26:52  * marthinaljoined
05:26:53  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:27:42  * adam_quit (Ping timeout: 246 seconds)
05:28:24  * chargenquit (Ping timeout: 246 seconds)
05:29:15  * led_dark_1quit (Quit: led_dark_1)
05:29:15  * nexiijoined
05:31:13  <joepie91>MrTrick: you'd be surprised how common of a mistake that is :)
05:31:31  * brinyquit (Read error: Connection reset by peer)
05:32:08  * BrokenSwordXIIIjoined
05:35:39  * kjartanquit (Read error: Connection reset by peer)
05:36:17  * kjartanjoined
05:40:17  <systemfault>I didn't know, haha
05:40:57  * BrokenSwordXIIIquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:41:09  * dlwicksellquit (Ping timeout: 252 seconds)
05:48:52  * noraatepernosquit (Quit: noraatepernos)
05:49:14  * noraatepernosjoined
05:49:38  * noraatepernosquit (Client Quit)
05:51:28  * orbyt_joined
05:53:02  * orbyt_quit (Client Quit)
05:54:17  * sillysluxquit (Ping timeout: 268 seconds)
05:54:25  * bitmaskquit (Quit: Gone to sleep...)
06:00:16  * BrokenSwordXIIIjoined
06:00:46  * BrokenSwordXIIIquit (Client Quit)
06:01:20  * DeltaHeavyjoined
06:02:43  <ljharb>n> npm install
06:02:44  <jellobot>Error: SyntaxError: Unexpected identifier
06:02:54  <ljharb>works in the repl tho, that's hilarious
06:03:17  <GreenJello>wait, what?
06:03:25  <GreenJello>you can run the npm cli in the repl?
06:03:29  <nomoney4u>I wonder if there's someone sitting behind jellobot just typing that for the heck of it ;)
06:03:45  * GreenJellolooks at the ground
06:03:46  <GreenJello>nope!
06:05:23  * CrazyEddyquit (Ping timeout: 268 seconds)
06:15:35  * rtnjoined
06:18:19  <joepie91>lol
06:18:30  <joepie91>n> are you GreenJello?
06:18:31  <jellobot>Error: SyntaxError: Unexpected identifier
06:18:59  * cthulchujoined
06:25:20  * kantoiquit (Quit: WeeChat 2.2)
06:27:53  * lpinjoined
06:31:50  * xrashquit (Ping timeout: 258 seconds)
06:34:00  * keepLearning512quit (Remote host closed the connection)
06:35:21  * banseljajjoined
06:39:32  * mgoljoined
06:44:18  * steve__quit (Read error: Connection reset by peer)
06:46:42  * nexiiquit (Ping timeout: 268 seconds)
06:47:00  * Gazoooquit (Quit: Ping timeout (120 seconds))
06:47:57  * awghjoined
06:50:10  * Gazooojoined
06:50:10  * Gazoooquit (Remote host closed the connection)
06:50:22  * s3govesusquit (Ping timeout: 272 seconds)
06:50:23  * cthulchu_quit (Ping timeout: 272 seconds)
06:50:49  * Gazooojoined
06:52:07  * carb0n_quit (Ping timeout: 240 seconds)
06:54:38  * kakashiA1joined
06:56:53  * playingbogart_joined
06:56:54  * Gazoooquit (Quit: Ping timeout (120 seconds))
06:59:38  * CrazyEddyjoined
07:00:31  * Gazooojoined
07:03:26  * darkSeidjoined
07:03:43  * conyersquit (Ping timeout: 246 seconds)
07:04:35  * Gazoooquit (Client Quit)
07:05:56  * morenoh149joined
07:08:18  * daN-R-Gquit (Ping timeout: 252 seconds)
07:09:32  * kapil____quit (Quit: Connection closed for inactivity)
07:10:33  * morenoh149quit (Ping timeout: 258 seconds)
07:10:40  * gambl0requit (Ping timeout: 268 seconds)
07:12:29  * carb0n_joined
07:13:03  * slajaxjoined
07:13:19  * Gazooojoined
07:20:27  * mrkakequit (Ping timeout: 240 seconds)
07:20:52  * mrkakejoined
07:22:47  * sQVejoined
07:23:47  * carb0n_quit (Read error: Connection reset by peer)
07:24:06  * carb0n_joined
07:27:27  * RoriconKnightquit (Ping timeout: 240 seconds)
07:29:36  * RoriconKnightjoined
07:34:08  * keepLearning512joined
07:38:59  * adam_joined
07:39:36  * darkSeidquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:40:50  * slajaxquit (Ping timeout: 258 seconds)
07:43:05  * unbearablejoined
07:49:55  * darutokojoined
07:51:28  * shushjoined
07:58:02  * rendarjoined
08:03:35  * hakatashi1joined
08:07:29  * hakatashiquit (Ping timeout: 268 seconds)
08:10:41  * jkhsjdhj-joined
08:11:51  * jkhsjdhjsquit (Ping timeout: 252 seconds)
08:11:51  * jkhsjdhj-changed nick to jkhsjdhjs
08:12:28  * decalquit (Read error: Connection reset by peer)
08:13:15  * Gazoooquit (Quit: Ping timeout (120 seconds))
08:13:56  * Gazooojoined
08:14:26  * reberjoined
08:16:13  * saladjoined
08:18:02  * not_finger_gunsjoined
08:18:41  * not_finger_gunsquit (Remote host closed the connection)
08:19:10  * not_finger_gunsjoined
08:22:25  * ebijoined
08:24:44  * mona_xjoined
08:26:38  * not_finger_gunsquit (Ping timeout: 272 seconds)
08:27:15  * esrsequit (Quit: 좋은 주말~)
08:30:52  * bsaboiajoined
08:31:51  <grr12314>n> new Date('2001-01-01 GMT+0200')
08:31:52  <jellobot>(okay) 2000-12-31T22:00:00.000Z
08:32:59  * Gazoooquit (Quit: Ping timeout (120 seconds))
08:35:38  * EvanCarrollquit (Ping timeout: 250 seconds)
08:35:59  * Gazooojoined
08:36:09  * templar_joined
08:36:56  <templar_>Hey all... anyone ever work with Perlin noise? Specifically the simplex-noise.js library
08:40:55  * reberquit (Remote host closed the connection)
08:41:00  * codeashish247joined
08:41:48  * codeashish247quit (Client Quit)
08:44:56  * tymczenkojoined
08:50:22  * sillysluxjoined
08:50:40  * amarashovjoined
08:57:53  * BlackBlocjoined
08:57:54  * gloomyjoined
08:58:36  * hemstockquit
08:59:30  * Thurienquit (Quit: Connection closed for inactivity)
09:00:15  * darkSeidjoined
09:00:55  * hemstockjoined
09:01:27  * mona_xquit (Quit: mona_x)
09:02:46  * Gazoooquit (Quit: Ping timeout (120 seconds))
09:03:24  * shokyquit (Read error: Connection reset by peer)
09:03:29  * Gazooojoined
09:03:40  * shokyjoined
09:04:09  <joepie91>!ask @ templar_
09:04:09  <jellobot>templar_, Don't ask to ask, nor if anyone is here or alive or uses something. Just ask your question. http://www.mikeash.com/getting_answers.html http://www.catb.org/esr/faqs/smart-questions.html https://jvns.ca/blog/good-questions/
09:04:40  <templar_>lol
09:04:54  <templar_>...ok
09:05:04  <templar_>So I'm creating an MMO in Node.js
09:05:17  <templar_>I have the multiplayer all done and the basic engine
09:05:25  * setpilljoined
09:05:40  <templar_>But I'm currently stuck trying to get procedural terrain generation (2D)
09:06:23  * Ergojoined
09:06:27  <templar_>Basically what I want to do is convert a Perlin noise image into an array of ASCII characters that correspond to various tiles in my bitmap tileset
09:06:54  <templar_>a Renderer takes in these arrays as inputs and renders the map with the tiles based on that
09:07:13  * ahmedelgabrijoined
09:07:28  <templar_>I need an efficient way to convert the perlin noise image to the array format
09:07:48  * Luna_xoxoquit (Ping timeout: 272 seconds)
09:08:23  * Luna_xoxojoined
09:08:29  <templar_>example of array format: [0,0,0,1,1,1,2,3,3,2,1,1,0,0],[0,0,1,1,2,2,2,3,3,2,2,1,2,1],etc
09:08:44  <templar_>just rows of arrays like that that make up the map
09:09:17  <joepie91>templar_: Q: why do they need to be 'ascii characters' rather than just numeric values? that introduces a lot of overhead
09:09:42  <templar_>well yeah they can be any ASCII char
09:09:51  <templar_>numbers are actually what I was planning on using
09:10:04  <joepie91>also, ndarrays are a fairly conventional way to represent this data in JS-land; many libraries that deal with coordinate systems and maps etc. support them
09:10:09  <joepie91>templar_: numbers are not ascii characters :)
09:10:13  <joepie91>ascii characters are strings, numbers are not
09:10:18  <templar_>yikes
09:10:24  <templar_>so I'm also a n00b
09:10:29  <templar_>ty for pointing that out
09:10:45  <joepie91>like, there's a difference between ["0", "1"] and [0, 1] -- the latter is much much faster to deal with, and uses much less memory
09:11:11  <joepie91>all strings in JS are represented as UCS-2, which you can think of as UTF-16
09:11:21  <joepie91>which means, I believe, 2 bytes per 'character'
09:12:05  <joepie91>this gets worse when numbers get bigger :P as you need more characters to represent a single number
09:12:15  <joepie91>anyway, that aside
09:12:20  <templar_>interesting..
09:12:34  <joepie91>this is the ndarray thing: https://github.com/scijs/ndarray
09:12:43  <joepie91>though it's more of a standardized-ish type than a library
09:13:02  <joepie91>templar_: is the library you're refering to this one? https://www.npmjs.com/package/simplex-noise
09:13:12  <templar_>yes
09:13:14  <templar_>that's the one
09:13:20  <templar_>here let me share what I have so far
09:13:27  <templar_>https://codepen.io/templarventures/pen/REeyEp
09:13:59  <templar_>I have tweaked the params to generate the perfect balance of frequencies
09:14:07  <templar_>for the terrain I want to work with
09:14:29  <joepie91>oh, this is a pretty low-level implementation it seems, it generates the value for a specific coordinate
09:14:41  <joepie91>the lib I mean
09:15:05  * sQVequit (Quit: Bye!)
09:15:18  <templar_>yeah, all I need really
09:15:20  * sQVejoined
09:15:22  <templar_>the lighter weight the better imo
09:15:37  <joepie91>I said low-level, not light-weight :) that's not the same thing
09:15:41  <templar_>All I need it is for the first couple of seconds when a server is booted up
09:15:44  <templar_>hehe gotcha
09:15:53  <GreenJello>templar_, but you need to map it to a tile set, which means converting the floats into an index into the tileset
09:16:02  <templar_>server will just take a quick snapshot of the perlin noise and convert to the arrays
09:16:09  <templar_>client takes in the arrays and maps tileset to it
09:16:10  <joepie91>templar_: anyway, you mentioned 'converting from an image' but I'm not sure I see why that's necessary; you can *already* get a 2D array of values
09:16:19  <joepie91>there's no point in having an intermediate "plop it down on a canvas" step
09:16:26  <templar_>I suspected this
09:16:30  * d3x0rquit (Read error: Connection reset by peer)
09:16:35  <joepie91>I'd also really recommend grabbing a simplex implementation that produces an ndarray
09:16:39  <joepie91>and using ndarrays throughout your code
09:16:55  <joepie91>it'll make things much simpler to deal with, give you access to many more manipulation tools that Just Work, and most likely be faster too
09:16:56  <templar_>to be honest I just wanted the image to tweak the params and visually confirm it made sense
09:17:04  <templar_>I'm fine with removing that step obv
09:17:10  <joepie91>then just convert the noise to both an image *and* a tile map? :)
09:17:12  * d3x0rjoined
09:17:22  <templar_>good point
09:17:28  <joepie91>it makes sense as a goal to have a visual reference, I just don't think it's useful to then try and pick colors from the reference image
09:17:34  <joepie91>when you have the base data
09:17:43  <joepie91>which is more or less already in the format you need :P
09:18:35  <templar_>are there any other terms for "ndarray"?
09:18:47  <templar_>can't find any perlin libs that mention it
09:19:01  <templar_>and ty btw, this is very helpful
09:19:12  * paulcarrotyjoined
09:19:26  <joepie91>hm, that's odd, I can't find an ndarray implementation either
09:19:31  <joepie91>I'm *sure* that I looked at one a few months ago
09:19:36  * orbyt_joined
09:19:36  * orbyt_quit (Client Quit)
09:19:46  <joepie91>what the hell..
09:20:02  <templar_>I was using this as a base reference: http://www.nolithius.com/articles/world-generation/world-generation-breakdown
09:20:05  <joepie91>maybe it didn't explicitly mention the algo or something...
09:20:05  * lundibundijoined
09:20:17  <templar_>From their methodology I'm guessing they used arrays
09:20:21  <templar_>but the code is long gone
09:20:29  <templar_>it looks pre-github <_<
09:20:36  <joepie91>lol
09:20:36  * unomijoined
09:21:08  * CrazyEddyquit (Ping timeout: 250 seconds)
09:22:00  <templar_>hm, also, one other thing about image vs array
09:22:03  * duderonomyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:22:27  <joepie91>templar_: right, so given the apparent unfindability of what I recommended, I guess that simplex-noise will work fine :P I would still recommend exploring the pile of ndarray tools on npm though, and if there's anything useful amongst them, representing your generated noise as an ndarray
09:22:36  <templar_>by starting with an image and then "pixelating" it, it simulates the tiles in a sense
09:23:08  <templar_>if I did this strictly by grabbing an array from the data, wouldn't it be a massive dataset?
09:23:17  <templar_>like, pixel by pixel?
09:23:41  <templar_>of course I could reduce the output size, but wouldn't that also reduce the feature complexity?
09:23:50  <joepie91>I'm honestly not really sure what you mean - you're going to have a map of NxM tiles, which you would represent as a two-dimensional array of NxM simplex noise values, and visualized as a potentially-scaled-up reference image of NxM pixels
09:23:57  <joepie91>one pixel on your reference image maps to one world tile basically
09:24:17  <templar_>yeah... so that's the problem
09:24:40  <templar_>I would have to re-optimize the params of the noise to fit a really tiny square of data
09:25:02  <templar_>so that I didn't get 60,000+ tiles
09:25:09  <templar_>I don't think a browser can handle that
09:25:23  * sQVequit (Quit: Bye!)
09:25:24  <templar_>that's a massive world...
09:25:35  <templar_>at least I think it is...?
09:25:41  * sQVejoined
09:25:43  <joepie91>60,000 of anything isn't a lot :P
09:25:50  <joepie91>well, except 60,000 Chrome tabs
09:25:54  <joepie91>but that doesn't count
09:25:55  <templar_>lmao
09:26:13  <templar_>I'm 21 tabs currently
09:26:16  <templar_>x__x
09:26:21  <joepie91>I have a few hundred, though I use Firefox, so :P
09:26:27  <templar_>holy
09:26:47  <joepie91>anyway, consider this - assuming that each tile can be represented as a 1-byte number, ie. you have 256 or less different tiles, you'd be storing... 60KB of data, for 60k tiles
09:26:55  <joepie91>with some minor overhead for the array that's negligible
09:26:57  <joepie91>that's not a lot
09:27:21  <templar_>ok but think of it this way... each tile in my game is going to be, say, 100x100 px??
09:27:29  <templar_>no thats too much
09:27:35  <joepie91>there's only going to be a small amount of them visible
09:27:38  * BlackBlocquit (Ping timeout: 250 seconds)
09:27:38  <templar_>50x50?
09:27:47  <joepie91>like, it depends on your rendering method obviously
09:27:56  <joepie91>but in principle it shouldn't matter much how many tiles your total map is
09:27:58  <joepie91>for rendering cost
09:28:04  <joepie91>because most of them are offscreen and therefore not drawn at all
09:28:23  <templar_>hmm, ok
09:28:32  <templar_>for some reason I envisioned it "rendering" them in memory still
09:28:37  <templar_>like having them "on tap"
09:28:49  <joepie91>templar_: this more generally applies to performance in JS - don't worry about it unless you can *measure and prove* that something is slower than it should be
09:29:01  <joepie91>not just JS in fact, but especially in JS people tend to worry too much about perf
09:29:08  <joepie91>modern runtimes are very very good at optimizing things
09:29:20  * kpattichajoined
09:29:31  <templar_>you are seriously the only JS optimist I have ever encountered...
09:29:34  <templar_>gives me hope
09:29:43  <templar_>everyone has been sh*tting on this so far
09:30:20  <joepie91>templar_: I'm not going to pretend that JS is the best thing that has ever existed and ever will, because it's not; but my opinion of JS is based on actually *knowing* what the bad bits are :P whereas most of the complaints I see about JS are based on ill-informed bandwagoning
09:30:28  <joepie91>and overall, it's a pretty good choice for many things
09:30:31  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
09:30:53  <joepie91>so I'm not sure I'd call myself an 'optimist', because I can certainly be very critical
09:31:01  <joepie91>I just don't do the "lol js" thing
09:31:19  <templar_>yeah, it has compounded my technical acumen many times over.. just 3 days ago the most technical thing I could accomplish was a simple python scraper that spat out CSVs
09:31:34  <joepie91>to be fair, ill-informed bandwagoning is much less of a problem in this channel; all of the problem users seem to get caught up over in ##javascript and never make it here
09:31:34  <templar_>but after working with Node for just 3 days I'm already working with this level of stuff
09:31:50  * elichai2joined
09:32:00  <joepie91>:)
09:32:06  <templar_>sockets opened my eyes
09:32:11  <templar_>to the possibilities
09:32:29  <templar_>idk why everyone doesn't learn this and just build awesome stuff
09:32:36  <joepie91>heh
09:32:54  <templar_>had multiplayer working in 48 hours
09:32:56  <templar_>anyways
09:33:04  <templar_>ok, I'm going to keep hacking at simplex
09:33:17  <joepie91>it's nice to see the motivatedness, btw :)
09:33:18  <templar_>I had initially tried the array approach
09:33:34  <templar_>but the way I went about is probably totally wrong
09:33:40  <templar_>I went for the imagedata.data
09:33:51  <templar_>and it gave me pure pixel values
09:33:55  <joepie91>right, that'd be extracting from the image
09:34:18  <templar_>and when I tried to iterate over them and push to arrays (which I would later split), it just added their index number to the array
09:34:18  <joepie91>I think the only real error here was going noise -> image -> tile data, instead of noise -> tile data and image
09:34:28  <joepie91>if you correct that you'll probably manage fine
09:34:30  * mona_xjoined
09:35:00  * Roughyjoined
09:35:08  <joepie91>basically, think of the simplex noise as a 'virtual map' that gives you a numeric value for each coordinate when asked
09:35:23  <joepie91>and you could turn that into a pixel on a reference image, or into a tile image on a grid, etc.
09:35:55  <joepie91>of course pixels are smaller than tiles so it's practical to scale up your reference image a bit so that you can clearly see the pattern
09:36:14  <joepie91>but that doesn't change the internal coordinate system of the reference image, it just renders everything magnified
09:36:32  * shushquit (Remote host closed the connection)
09:36:47  <templar_>....I see. So in my codepen, for example, need to just remove all references to getImageData, putImageData etc, just forget all that and instead use something to extract the coordinate data
09:37:13  <templar_>...unfortunately the simplex lib gives no guidance on methods for that...
09:37:36  * shushjoined
09:37:48  <joepie91>well, putImageData will still be useful probably to *create* the reference image, but getImageData is not needed, as you don't need to extract anything *from* the image
09:38:30  <joepie91>templar_: and well, libraries generally only concern themselves with the purpose that they exist for; the JS ecosystem is very much designed around "lots of tools that do precisely one thing well, glue them together yourself"
09:38:37  * slajaxjoined
09:38:46  <joepie91>so what you *do* with the simplex noise is more or less out of scope for the simplex-noise library
09:39:22  <joepie91>it can be a bit tricky to figure out how to glue things together at first, but experimenting with it is cheap (because a single-purpose library is easy to throw out and replace), and once you get the hang of it, it's a very powerful way to develop software
09:39:34  <templar_>...hmm what would happen if I did "for(i in imagedata){array.push(i)}"?
09:39:39  * Stephen66joined
09:39:41  * CrazyEddyjoined
09:40:14  <templar_>imagedata should be the object that contains the arrays right?
09:40:18  <joepie91>what is `imagedata` in this case?
09:40:48  <templar_>ah, wrong
09:41:05  <templar_>imagedata == getImageData
09:41:37  * Gazoooquit (Quit: Ping timeout (120 seconds))
09:41:40  <templar_>I think I want a var that contains putImageData
09:41:43  <templar_>like you said
09:41:51  <templar_>since it's "putting" the arrays
09:42:11  <templar_>I'm just assuming that somewhere in there, there is an object that is essentially the body of arrays I need
09:42:22  * Gazooojoined
09:42:29  <templar_>may be a poor understanding
09:43:00  <joepie91>templar_: so, let's take a few steps back
09:43:11  <joepie91>what is your goal, described in a high-level way?
09:43:14  * shushquit (Ping timeout: 250 seconds)
09:43:16  <joepie91>with this question
09:44:10  <templar_>to convert the output of the Noise function into an "an array of arrays of normalized number values"
09:44:30  <templar_>...ah man was that the answer...>?
09:44:30  * kjartanquit (Read error: Connection reset by peer)
09:44:36  * the_antquit (Ping timeout: 246 seconds)
09:44:40  <templar_>do I just iterate over the function itself?
09:45:12  <joepie91>templar_: you can't "iterate over a function", it's not an array; functions can only be called
09:45:20  <joepie91>it might *return* something that you can iterate over though
09:45:26  <templar_>right, that's what I mean
09:45:36  <joepie91>but in the case of the simplex-noise library, the function it exports is just for obtaining a single value at a single coordinate
09:45:37  <templar_>I need a var that calls function and returns output
09:45:54  <joepie91>vars don't call functions :) you call a function and may store the result *in* a var
09:46:03  <templar_>got it
09:46:06  <joepie91>I'm not being a pedant, honest :P these are important details
09:46:13  <templar_>No I get that
09:46:18  <templar_>ty for patience tbh
09:46:20  <joepie91>anyway, I'm guessing that you copypasted the for loop from the docs?
09:46:25  <joepie91>for loops*
09:46:35  <templar_>more or less
09:46:47  * Gazoooquit (Client Quit)
09:47:04  * lundibundiquit (Ping timeout: 272 seconds)
09:47:06  <templar_>I use similar loops in python so I get them on a deeper level than just copy pasting but yeah
09:47:31  <joepie91>templar_: so one piece of advice: never ever ever copy-paste anything ever, even if you think you understand it
09:47:36  * kjartanjoined
09:47:52  <templar_>makes sense...
09:47:59  <templar_>won't be intuitive when it breaks..?
09:47:59  <joepie91>the reason for this is that humans in general tend to overestimate their understanding of something, and so when you copypaste something it's easy to miss a detail and have that bite you in the ass later
09:48:07  * Gazooojoined
09:48:16  <templar_>yeah I have experienced this :<
09:48:17  <joepie91>even literally typing the example code into your project is fine, so long as you don't copy-paste, because it forces you to consider what you're actually typing and what it means
09:48:25  * morenoh149joined
09:48:38  <joepie91>anyhow, that aside :P
09:48:44  <templar_>duly noted
09:49:01  <joepie91>the for loops basically just go through your coordinate system - note the x and y vars
09:49:13  <joepie91>and for each point in the coordinate system, 'pick' the value of that coordinate in your simplex noise
09:49:22  * GreenJelloquit (Quit: Ugh, I appear to have been pulled away from my computer...)
09:49:22  <joepie91>remember, the simplex noise is like a virtual map/coordinate system
09:49:35  <joepie91>and in your current codepen, it then simply assigns a bunch of values in an array based on that value
09:50:17  <joepie91>that array is in the canvas image data format, which is basically one long array going through each pixel, X-first from left to right, then one Y coordinate down, X from left to right again, etc.
09:50:36  <joepie91>and for each pixel it stores four values; the red color channel, green color channel, blue color channel, and finally alpha ('transparency')
09:51:20  <joepie91>the actual call to noise2D seems to do some maths to map what I think is from the 0-256 coordinate system to a 0-1 coordinate system
09:51:27  <joepie91>see what I'm describing in your code?
09:51:53  * groomjoined
09:52:03  <templar_>...the mechanism I want is being hijacked by this codepen
09:52:11  <templar_>it was buried in there
09:52:17  <templar_>?
09:52:26  * joaopaulosr_joined
09:52:39  <templar_>I need to intercept the process before it creates an image
09:52:57  <templar_>and divert it into some type of conversion mechanism
09:53:07  <templar_>into the normalized number values that I need
09:53:24  * morenoh149quit (Ping timeout: 272 seconds)
09:53:25  <joepie91>templar_: hold on
09:53:38  <joepie91>first of all, do you see the process I'm describing in the code in your codepen?
09:53:40  <templar_>while retaining the core mechanism that goes coord by coord
09:53:46  <joepie91>like, can you connect my descriptions to the pieces of code?
09:53:51  * akivaquit (Ping timeout: 258 seconds)
09:53:51  <templar_>ah
09:53:51  <templar_>yes
09:54:00  <joepie91>right, okay :)
09:54:04  <joepie91>so yes, you want to keep the coordinate iteration
09:54:07  <templar_>the connections are kinda frail but I see it
09:54:07  <joepie91>and the noise2D call
09:54:15  <joepie91>what you want to change is what it does *with* those values
09:54:30  * the_antjoined
09:54:33  <joepie91>the current code is useful for generating the reference image, but you want to use those same values in a different way
09:54:39  <joepie91>to create a simple array of tile IDs, probably
09:55:07  <joepie91>actually, hm
09:55:25  <joepie91>the noise2D calls in your current code seem to do some overlapping trickery to produce more randomness?
09:55:34  <templar_>yes
09:55:35  <joepie91>or at least to display different color channels differently
09:55:38  <templar_>this part I do understand
09:55:41  <joepie91>which looks fancy but is of no use for map generation :P
09:55:41  <templar_>can explain
09:55:48  <templar_>it is
09:55:56  <joepie91>at least not unless you can reconcile it into a single value
09:55:57  <templar_>this is why the colors were also important
09:56:06  <templar_>this represents biomes
09:56:22  <templar_>usually, perlin is used for 3d maps, "elevation"
09:56:29  <templar_>I am flattening it and mapping it to biomes
09:56:37  <templar_>so there needs to be more variety
09:56:52  <joepie91>right
09:57:04  <joepie91>but in the end, you still need a single value, an index into your set of possible tiles
09:57:05  <joepie91>no?
09:57:14  <templar_>yeah
09:57:36  <templar_>but to my knowledge, the second layer of is adding "roughness" to the mix
09:57:44  <joepie91>templar_: so, pretending for a moment that you're gonna be picking colors from the image - how would you translate those colors to tile indexes?
09:57:52  <joepie91>as a high-level description
09:58:46  <templar_>define a gradient of lowest value to highest values --> impose thresholds so that values are rounded up or down to nearest threshold
09:59:00  <templar_>ohhh
09:59:05  <joepie91>but there's no "lowest" or "highest"
09:59:05  <templar_>I think I see what ur saying
09:59:10  <joepie91>you're working with at least 3 channels worth of values
09:59:11  <templar_>it;s just colors
09:59:12  <joepie91>but you need one
09:59:19  <joepie91>so is it about the hue of the color, for example?
09:59:24  <joepie91>or about the brightness?
09:59:35  <joepie91>by which metric of the human-visible color would you pick a biome?
10:00:47  <templar_>I assumed there was some value that represented the color
10:01:00  <templar_>I am now inferring there is none
10:01:14  <joepie91>there's not "some value"
10:01:16  <joepie91>there's three :)
10:01:20  <joepie91>red, green, and blue
10:01:31  <joepie91>that's the problem - 'color' is not a single linear scale
10:01:42  <templar_>hm
10:01:48  <joepie91>so any kind of color representation is inevitably composed of multiple components
10:02:01  <joepie91>there are multiple schemes for that; for example red/green/blue is one, hue/saturation/value is another, and so on
10:02:15  <joepie91>hence my question: what aspect of the color is actually the one that you want to base your biome selection on?
10:02:34  <templar_>RGB I suppose
10:02:46  <templar_>to keep it simple
10:02:46  <joepie91>if you know for example that 'red' should be one biome with brightness deciding the exact tile type, but 'blue' should be another biome, etc. - that translation is easy enough to do from RGB
10:03:03  <joepie91>then you'll get a terrain that totally mismatches what you see in the reference image though
10:03:05  <joepie91>at least to the human eye
10:03:19  <joepie91>because you don't consciously perceive red, green and blue as separate colors; you see them mixed into a hue
10:03:20  * gregf_joined
10:04:07  <templar_>right
10:04:08  * kliqjoined
10:04:11  * gli|wfhquit (Remote host closed the connection)
10:04:21  <joepie91>see the problem? :P
10:04:46  <templar_>at the smallest tile level, it's going to be a salad of biomes?
10:05:02  * Gazoooquit (Quit: The Lounge - https://thelounge.chat)
10:05:11  <templar_>rather than smooth gradient
10:05:22  <joepie91>oh no, not at all
10:05:25  <joepie91>it'll be a smooth gradient
10:05:31  <joepie91>just a totally different one from what you see in the image
10:05:47  <templar_>...well
10:05:52  * Mohitjoined
10:05:56  <joepie91>so that makes the reference image sorta useless
10:06:10  <templar_>isn't that just a matter of assigning the right tiles..?
10:06:23  <joepie91>I feel like you're missing the underlying point :P
10:06:25  <joepie91>it's not about tiles
10:06:38  <joepie91>it's about "the red color channel" not resembling anything that you could visually identify from an image
10:06:52  <joepie91>so if you use a specific color channel to decide your tiles or whatever, it will have an unexpected outcome
10:07:00  * Gazooojoined
10:07:04  <joepie91>because the values you extract from that are not meaningful to the human eye
10:07:26  <joepie91>when you look at the output in your codepen, you can't identify "this particular spot has 34% red"
10:07:27  <templar_>Ok, right
10:07:39  <joepie91>you *can* identify "this spot is dark" or "this spot is more towards yellow"
10:07:50  <joepie91>but that is a different color model
10:08:16  <joepie91>HSV is specifically a color model that matches fairly well with what humans see
10:08:23  <templar_>well as I look at it now, I see areas that are blue, areas that are yellow, areas that are red, etc
10:08:31  <templar_>is there no way to capture this...?
10:08:34  <joepie91>Hue, for the 'color tone', Saturation, for how grayish or colorful it is, and Value, for '
10:08:36  <joepie91>oops
10:08:41  <joepie91>Hue, for the 'color tone', Saturation, for how grayish or colorful it is, and Value, for how dark or bright it is *
10:08:54  <joepie91>templar_: there is, but you need HSV for that
10:08:57  <joepie91>there is no 'yellow' in RGB
10:09:07  <templar_>....boom
10:09:08  <joepie91>or well, there is, but it's a combination of the other color channels
10:09:09  <templar_>I get it now
10:09:17  <joepie91>whereas in HSV you can just say "oh that's a Hue value of 0.2"
10:09:22  <templar_>I perfectly understand
10:09:23  <templar_>wow
10:09:31  <templar_>Can't believe I didn't get it
10:09:52  <joepie91>haha, it's difficult to explain without a visual reference, therefore also difficult to understand :)
10:10:17  * Mohitquit (Client Quit)
10:10:24  <templar_>when I thought about it.. "there is no yellow" there is just RGB... so how do you get "yellow" from the output
10:10:35  <templar_>you don't, it's your brain
10:10:45  <joepie91>templar_: ah, here: https://www.researchgate.net/profile/Vencislav_Popov/publication/323952018/figure/fig2/AS:607349488226304@1521814810246/a-the-RGB-color-space-black-arrows-show-the-three-main-color-dimensions-whose-values.png
10:10:46  * shushjoined
10:10:48  <joepie91>this illustrates it well
10:10:52  <joepie91>the difference between RGB and HSV
10:11:11  <joepie91>you can see how in RGB there's no reasonable way for you to map colors to the underlying values, it's all just one big gradient with many points
10:11:22  <joepie91>whereas with HSV on the right there's a clear mapping of one axis to 'shade' or 'tone'
10:11:34  <joepie91>and another axis to darkness or brightness, and another to grayness/colorfulness
10:11:46  * slajaxquit (Ping timeout: 272 seconds)
10:11:50  <templar_>...so now the question is, how can we extract HSV from the data we have?
10:12:01  <joepie91>by doing color model conversion :)
10:12:09  <joepie91>there's a lot of modules for this on npm
10:12:19  <joepie91>search 'rgb' and 'hsv' and you'll probably find one
10:12:30  <joepie91>keep in mind that there's two different conventions for representing colors; 0-255 and 0-1
10:12:41  <joepie91>so make sure you use the right one in the right place
10:12:50  <templar_>https://stackoverflow.com/questions/8022885/rgb-to-hsv-color-in-javascript
10:13:11  <joepie91>templar_: I strongly recommend against copying or using code from SO :)
10:13:19  <joepie91>copypasted code are just unupgradable unreviewable libraries
10:13:26  <joepie91>better to use an actual dependency from eg. npm
10:13:39  <joepie91>that way you'll get updates if bugs are fixed etc.
10:13:45  * b44joined
10:13:47  <templar_>but it's a standalone function
10:13:55  <joepie91>so are most dependencies on npm
10:13:57  <templar_>can't I replicate it by hand so I understand it?
10:14:04  <templar_>wasn;t going to c/p
10:14:09  <templar_>was going to actually get to know it
10:14:12  <emma22>Hi, I am trying to utilize the Discovery method on openid-client. When I call this client.js from my entrypoint.js script, it fails with error = Promises { <pending> }. Can anyone see why this is happening ? https://gist.github.com/emmawick/976515a2aa33ceef1afc1792bd7700fb
10:14:29  <joepie91>templar_: sure, you could, but even if you did that I would still recommend using a dependency from npm afterwards, just to reduce the amount of custom code you have
10:14:46  <joepie91>and in the case of RGB to HSV there's not much to learn; it's usually a fairly direct implementation of an algorithm
10:14:51  <joepie91>nothing really JS-specific to it, it's just number-wrangling
10:14:52  <templar_>right... at least for experimenting in codepen I guess
10:14:59  <templar_>makes sense
10:15:00  <joepie91>templar_: sec
10:15:26  <joepie91>there was a codepen-like site with npm support...
10:15:34  * unomiquit (Ping timeout: 272 seconds)
10:17:25  <joepie91>can't find it :./
10:17:27  <joepie91>:/*
10:17:56  * slajaxjoined
10:18:02  <templar_>all good
10:18:08  <templar_>I can make note for later
10:18:41  * RoriconKnight_joined
10:18:49  <joepie91>templar_: also, I'd recommend trying https://github.com/mattdesl/budo for local development
10:19:00  <templar_>once I get something working in codepen then I try to integrate it in a better way to my codebase
10:19:11  <joepie91>that'll run a local dev server and it'll automagically bundle the code you point at, so you can use npm modules etc.
10:19:16  <joepie91>will make development a lot easier
10:19:36  <joepie91>(index.js in the example instructions would be your JS file)
10:20:01  * ed209quit (Remote host closed the connection)
10:20:02  <joepie91>I also recommend using the --live flag
10:20:06  <templar_>hmm.. will this conflict with my current server setup?
10:20:08  * ed209joined
10:20:09  <joepie91>then whatever changes you save will automatically be shown in the browser
10:20:15  <joepie91>I have no idea what your current setup is like :)
10:20:24  <templar_>I currently just do typical node app.js
10:20:27  <templar_>and localhost it
10:20:28  <joepie91>this is more as a direct codepen replacement
10:20:34  <joepie91>but with npm support
10:20:38  <joepie91>and working with your own editor
10:20:45  <joepie91>(or well, module support, more strictly speaking)
10:20:50  <templar_>ah got it
10:20:51  <cdunklau>emma22: that doesn't look like an error
10:21:01  * ijashjoined
10:21:04  <joepie91>templar_: btw, you may find this useful:
10:21:07  <joepie91>!getting started @ templar_
10:21:07  <jellobot>templar_, A guide to getting started with JavaScript and Node.js: https://gist.github.com/joepie91/95ed77b71790442b7e61
10:21:33  <cdunklau>oh did the ecmabot factoids get moved to jellobot
10:21:41  <joepie91>... huh.
10:21:44  <joepie91>I hadn't even realized that.
10:21:48  <joepie91>ecmabot seems dead, so
10:21:48  * RoriconKnightquit (Ping timeout: 250 seconds)
10:21:57  <joepie91>probably? :P
10:22:01  <cdunklau>emma22: could you show the whole log?
10:22:09  * am0123joined
10:23:04  <templar_>Nice, I bookmarked that, ty
10:23:06  <templar_>also followed you
10:23:15  <cdunklau>joepie91: factoids weren't working for a while after ecmabot quit, but i guess GreenJello added them
10:23:18  <templar_>I already followed you on twitter xD
10:23:20  <cdunklau>like, later
10:23:22  * grr12314quit (Ping timeout: 258 seconds)
10:23:22  <cdunklau>¯\_(ツ)_/¯
10:23:35  <emma22>cdunklau: I think your right, it's not an error but it stops my program from running. I suspect it's because I have not used .then to resolve the Promise ?
10:23:38  <joepie91>templar_: oh, now I'm curious how you ran across me :P
10:23:50  <templar_>ctrl-x/ctrl-v
10:23:52  <templar_>c*
10:24:03  <templar_>lol
10:24:11  <cdunklau>emma22: it's hard to give suggestions without knowing the whole picture
10:24:18  <templar_>CrytoCC also looks interesting
10:24:20  <cdunklau>or at least, more of the picture than just one line from a log
10:24:21  <joepie91>templar_: at least, assuming that you meant you were following me before this conversation :P
10:24:29  <templar_>oh no
10:24:32  <templar_>lol
10:24:35  <joepie91>oh, I misunderstood then :P
10:24:38  <templar_>that would be strange twist
10:24:39  <emma22>cdunklau: Ok I will gist the point of failure in entrypoint, and log.
10:24:46  <joepie91>yeah, though not unheard of
10:24:54  <joepie91>I can be a bit... loud about programming issues
10:24:54  <templar_>I see you accept BTC...
10:25:04  <templar_>I am a BTC maximalist from early 2013
10:25:05  <cdunklau>joepie91: i don't believe you
10:25:06  <joepie91>so that tends to attract followers over time
10:25:17  <cdunklau>you're super mild-mannered
10:25:24  * joepie91stares at cdunklau
10:25:27  <cdunklau>no strong opinions or anything
10:25:32  <templar_>In fact, my current project you are helping me on is directly related to crypto
10:25:33  <joepie91>okay, you're definitely not serious
10:25:35  <joepie91>lol
10:25:36  <cdunklau>:)
10:25:48  <joepie91>templar_: I'm, uh, less than happy about the direction that cryptocurrency has moved in, frankly
10:25:58  <templar_>really?
10:26:10  <joepie91>yes
10:26:19  <joepie91>it's become an entire industry of snakeoil salesmen
10:26:28  <joepie91>and various other types of crooks
10:26:33  <templar_>but the snake oil is drying up
10:26:41  <joepie91>and somehow, the whole "it's experimental" has gotten forgotten
10:26:44  <joepie91>eh, hardly
10:26:56  <templar_>we had to go thru a dotcom phase man
10:27:01  <joepie91>I still regularly see people promoting blockchains for all kinds of things they're really not suitable for :)
10:27:27  <templar_>right, but enterprise CTOs aren't stupid enough to try and implement this vaporware
10:27:39  <templar_>they know it's just a highly specialized database
10:27:44  <templar_>for a very specific problem
10:27:45  <joepie91>as far as I'm concerned, anything in cryptocurrency-land since, say, 2012, is automatically suspect
10:27:47  <joepie91>templar_: ehhhhhhh
10:27:51  <joepie91>unfortunately my experiences are very different
10:28:18  <templar_>in fact, I don't think anyone really understand *exactly* what crypto is *for*
10:28:27  <joepie91>both individuals and companies are heavily investing in this stuff in earnest, only to discover a few years later that it really was a bad idea
10:28:30  <templar_>I think my project goes back to those exact roots
10:28:42  <joepie91>I mean, the original purpose was quite clear
10:28:44  <templar_>well that's darwinism then I suppose
10:28:48  <joepie91>no, not really
10:28:49  <joepie91>it's scams :)
10:28:54  <joepie91>scams and dunning-kruger
10:29:23  <joepie91>there's a whole generation of developers who believe that blockchains have all these magical properties because they have zero knowledge of prior work in the decentralized-systems space, and so they assign those properties to blockchains instead of the tech that came before it
10:29:34  <joepie91>stuff like "public auditability" which isn't a blockchain feature
10:29:42  <joepie91>and "authenticity verification" which also isn't a blockchain feature
10:29:44  <joepie91>etc.
10:29:52  <templar_>I agree with you
10:29:58  <cdunklau>joepie91: but buzzworrrrrds
10:30:04  * darkSeidjoined
10:30:06  <joepie91>and there's plenty of unscrupulous people who don't mind making a buck off that hype
10:30:09  <templar_>I just disagree that crypto is to blame for other people not doing research..
10:30:17  <joepie91>cryptocurrency*
10:30:20  <joepie91>crypto means cryptography :)
10:30:25  <templar_>right
10:30:27  <joepie91>and it's not cryptocurrency that's to blame
10:30:31  <joepie91>it's the people running the cons
10:30:34  <emma22>https://gist.github.com/emmawick/1be344b0a924ed49204c5591df8a944f - entrypoint.js with log :)
10:30:41  <joepie91>but they've pretty much fucked up the potential of it for everybody else
10:30:54  <joepie91>and I don't just mean cryptocurrency-as-an-actual-currency (which has seen less and less research effort)
10:30:55  <templar_>I don't think so dude...
10:31:01  <joepie91>it's also poisoned the entire decentralized systems space
10:31:11  <joepie91>basically all of the research into non-blockchain decentralized systems stopped around 2011
10:31:15  <templar_>the value is self-evident in places like Venezuela, Zimbabwe...
10:31:22  <joepie91>which is a *pain* if you're trying to design a decentralized system
10:31:32  <templar_>we have it easy in the West
10:31:38  <templar_>for now
10:31:43  * mezodquit (Remote host closed the connection)
10:32:01  <joepie91>templar_: that's kind of missing the point though
10:32:09  * mezodjoined
10:32:18  <templar_>... isn't that the entire point?
10:32:21  <joepie91>look at the Bitcoin scalability issues, which have *still* not been solved
10:32:27  <joepie91>and no, lightning is not a solution
10:32:32  <joepie91>it's a workaround with severe technical limitations
10:32:50  <joepie91>hell, barely anybody even understands what the scalability issue *is*
10:33:02  <joepie91>people keep jabbering on about block size even though it's 100% irrelevant other than as a mitigation
10:33:27  <joepie91>it just isn't getting any real attention
10:33:29  <templar_>it may be too technical for me
10:33:43  <templar_>but I believe in Bitcoin's resilience
10:33:59  <joepie91>I don't anymore :) the leadership behind it has failed pretty hard over the past few years
10:33:59  * hemstockquit (Read error: Connection reset by peer)
10:34:31  <joepie91>too many conflicts of interest getting involved, too many non-transparent decisions, too little addressing of the actual problems
10:34:58  <joepie91>Bitcoin realistically still hasn't left the experimental stage but people are using it like a production system
10:35:02  <joepie91>the PoW mechanism is failing
10:35:08  <joepie91>and not getting fixed
10:35:37  <joepie91>it used to be that the advice was "don't put more money into Bitcoin than you can afford to lose", and even though that still SHOULD be the advice, it's rarely ever given out anymore
10:35:48  <joepie91>instead people recklessly recommend that you buy into it
10:35:51  <templar_>but surely you don't believe that whatever barrier we see now won't simply be surpassed in some way?
10:35:55  * hemstockjoined
10:36:05  <joepie91>it won't be surpassed by the Bitcoin development team, that's for sure
10:36:07  <templar_>I went all in, 2013
10:36:16  <templar_>I didn literally the riskiest thing you could
10:36:18  <templar_>did*
10:36:40  <templar_>I sometimes wonder what my life would be like now if I hadn't made that decision
10:36:42  <joepie91>templar_: see, the thing is, there's this popular view that all the capital investment will somehow magically result in inevitable solutions
10:36:53  * igemnacequit (Quit: WeeChat 2.3)
10:36:55  <joepie91>but... this isn't how it works in regular business, it also isn't how it works in cryptocurrency
10:37:04  <joepie91>the actual innovative research isn't done by well-paid boards
10:37:19  <templar_>that's one way to look at it... but I don't think it's the money driving that.
10:37:21  <joepie91>it's done by underpaid researchers with an academic view living on noodles five days of the week
10:37:42  <templar_>I believe it's a specific underlying trend causing this
10:37:43  <joepie91>this is fairly consistently true of *any* technical innovation; it's almost always from the ranks of enthusiasts
10:38:03  <joepie91>templar_: my point here being: there's no chance of the current leadership coming up with a solution
10:38:08  <joepie91>decentralized systems design is *hard*
10:38:13  <templar_>Q: do you think that if TCP/IP had failed in early days, for whatever reason, we would be without Internet today?
10:38:16  <joepie91>a solution might come to exist in 10 years or so, from a random researchers
10:38:22  <joepie91>researcher*
10:38:32  * catbustersjoined
10:38:33  <joepie91>it will probably not be as a part of Bitcoin
10:38:34  <joepie91>but as a new system
10:38:48  <joepie91>because the current leadership has essentially ossificated
10:39:08  <cdunklau>templar_: you're assuming the things that lead up to TCP didn't have problems
10:39:18  <joepie91>templar_: that's an unanswerable question unless you define "internet"
10:39:25  <joepie91>and what it encompasses
10:39:25  <templar_>fair enough
10:39:26  <cdunklau>they did. lots of them. and they were addressed
10:39:46  <cdunklau>and it took like decades
10:39:51  <templar_>my point is, though, there is a specific *reason* why all this is happening. and we are moving towards it one way or another
10:40:01  <joepie91>that's wishywashy language :)
10:40:07  <templar_>I can clarify
10:40:18  <joepie91>there's currently no rational reason to believe that Bitcoin will overcome its technical problems, or at least no rational reason that anybody has been able to present to me
10:40:33  <joepie91>and the widespread "we will overcome this" is chest-beating
10:40:50  <templar_>The *reason* is what the post-modernists of the 60s theorized about... like Jean Baudrillard
10:40:57  <templar_>in his theory of "Hyperreality"
10:41:02  <templar_>bear with me
10:41:18  * ravustajaquit (Quit: leaving)
10:41:27  <templar_>in this world of Hyperreality, he predicted that humans would lose the ability to discern between Reality and Simulation
10:41:32  <templar_>Bitcoin is hyperreal money
10:41:41  <templar_>meaning, it is a simulation of the abstract concept of money
10:41:47  * slajaxquit (Ping timeout: 240 seconds)
10:41:49  <templar_>Something like this must exist
10:42:16  <templar_>in one form or another... and the specific *reason* why, is to build a transactional bridge between virtual economies and "real world" economies
10:42:27  <templar_>this is the key reason
10:42:34  * slajaxjoined
10:42:47  * lundibundijoined
10:43:14  <templar_>There was a study done by some professor at a CSU in 2013 I think, where they found that the GNP of "Norrath", the fictional world of Everquest... was $135 million
10:43:25  * shushquit (Ping timeout: 268 seconds)
10:43:35  <cdunklau>i don't think you can really count bitcoin as money. it's more like a commodity
10:43:42  <templar_>That was the same as Bulagria's at the time. People made an average hourly wage of $3.42
10:43:53  <templar_>in virtual currency terms of course
10:44:12  <templar_>Think about what a wage like that could do to improve someone's life in a place like India, or China/
10:44:30  <templar_>In the future, "work" and "play" will be basically the same thing
10:44:41  <joepie91>templar_: how does any of this support the notion that Bitcoin will overcome its technical problems, though? :)
10:45:13  <templar_>Well, maybe it won't, fine. Bitcoin is just our earthly approximation of Something that will exist no matter what
10:45:28  <templar_>It may be a poor imitation of the Form
10:45:42  <templar_>it may be good enough, we shall see
10:45:45  * sxajoined
10:45:47  <joepie91>so then we return to my original point: there's no reason to believe that Bitcoin will overcome its technical problems
10:46:02  <joepie91>everything right now points at it remaining mired in conflicts of interest and inaction forever
10:46:08  <joepie91>and likely a slow death resulting from that
10:46:19  <joepie91>with eventually some new thing coming along, out of nowhere, that solves the problems Bitcoin has
10:46:25  <joepie91>like usually happens with decentralized tech
10:46:36  * gloomyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:46:53  <templar_>I have no technical argument, sure... but I trust what Andreas Antonopoulos said to me about it
10:46:57  <templar_>I met him by chance
10:47:01  <templar_>before I knew who he was
10:47:02  <templar_>at a meetup
10:47:08  * nononojoined
10:47:19  <joepie91>don't trust, verify :)
10:47:32  <templar_>I even a photo of him with my sister, we just went randomly because I wanted to know more about this stuff I bought lol
10:47:42  <templar_>He told me that the longest chain would prevail
10:47:50  <templar_>No matter what
10:48:08  <joepie91>that's a fairly meaningless comment without context
10:48:08  <templar_>I didn't understand what he meant at the time
10:48:18  <templar_>But now I think I do
10:48:35  <templar_>Because no matter what, Bitcoin has quantifiable trust behind it
10:48:52  <templar_>This may not be a technical argument, but I think we can appeal to human nature here
10:49:18  <templar_>When it has grabbed onto something it *knows*, it is difficult to move that trust off of that and to something else
10:49:29  <templar_>so I think this constitutes some *force* that protect Bitcoin
10:49:34  <templar_>there is true Consensus behind it
10:49:40  <joepie91>tjat
10:49:42  <joepie91>that'
10:49:45  <joepie91>gah
10:49:50  <joepie91>that's a bit of a leap in logic *
10:49:58  <joepie91>yes, there is a network effect
10:50:07  <joepie91>but network effects don't solve technical problems
10:50:17  <joepie91>so the only thing this defends is the idea that there's some stability to your capital investment
10:50:24  <joepie91>which is great for you if capital investment is why you like Bitcoin
10:50:35  * slajaxquit (Ping timeout: 258 seconds)
10:50:35  <joepie91>but it's fairly useless if you want to use Bitcoin *as a transactional currency*
10:50:42  <joepie91>because then the technical failures become relevant
10:50:54  <templar_>I think presents an interesting point, yeah
10:51:02  <templar_>Because actually.. I don't use Bitcoin transactionally
10:51:05  <templar_>I will use Litecoin
10:51:07  <templar_>lol!
10:51:11  * joaopaulosr_quit (Read error: Connection reset by peer)
10:51:12  <joepie91>in particular the scalability issues that result in very high tx fees, and the proneness to network attacks due to mining centralization
10:51:19  <joepie91>which reduces the confidence of transactions
10:51:37  <joepie91>doesn't matter how much people have invested in it, if those issues exist, then you can't really use Bitcoin for transactional purposes
10:51:43  <joepie91>and that's pretty much where we're at now
10:51:53  * BlackBlocjoined
10:52:48  * slajaxjoined
10:52:58  <templar_>Fair enough
10:53:17  * gregf_quit (Ping timeout: 256 seconds)
10:53:23  <templar_>My friend is building a network layer on top of Bitcoin
10:53:44  <templar_>He says it can optimize the connection between them to improve propogation times. and remove the need for seed nodes.
10:53:51  <templar_>the nodes that is
10:54:04  <joepie91>that sounds too vague to tell me anything useful, frankly
10:54:18  * grr12314joined
10:54:22  <joepie91>and it goes into my "okay, where's the hidden centralized server" bucket :)
10:54:45  * sharkboyquit (Quit: Ping timeout (120 seconds))
10:54:47  <templar_>he claims it will actually make it more decentralized
10:54:55  <joepie91>I've seen a few of these 'optimization' proposals for Bitcoin and various other networks and so far they've all involved centralized servers while claiming to be decentralized
10:55:05  <joepie91>so, I'm skeptical unless I see technical details :p
10:55:08  <templar_>in his own words: "instead of using seed node lists you will be able to get a copy of the updmp database from any time that still has some nodes which still exist."
10:55:08  * gloomyjoined
10:55:17  * sharkboyjoined
10:55:20  <joepie91>templar_: is there something documented about this somewhere?
10:55:40  <templar_>"so instead of broadcasting a tx locally and giving away the details of the owners of coins to government, we can all process the tx and fire the rawtx to a random node and have them broadcast it instead."
10:56:07  <joepie91>eh...
10:56:08  <templar_>It sounds like it may be more about privacy than scalability, actually... now that I think about it.
10:56:14  <templar_>And no he hasn't shared any repo with me
10:56:16  <joepie91>who are "all"
10:56:20  <joepie91>"we can all process the tx"
10:56:45  <joepie91>I mean, at one point you're gonna have to broadcast the transaction to *some* other node to get it into the network
10:56:53  <joepie91>which can reveal where the transaction originaterd
10:56:56  <joepie91>originated*
10:57:12  <joepie91>so... if it's not broadcast to the network... but it's processed... then who was it sent to for processing?
10:57:17  <joepie91>and is that where the centralized server is? :)
10:57:17  <templar_>I think that's what the network layer is for though
10:57:33  <joepie91>right, but this doesn't seem to acknowledge the inherent tradeoff
10:57:34  * keepLearning512quit (Remote host closed the connection)
10:57:53  <joepie91>namely: either you send your tx to an untrusted random party, and transactions can be traced back to who originally broadcast it
10:58:01  <joepie91>or you send it to a trusted known party, and ta-da, centralization
10:58:11  <joepie91>there's no magical third option
10:58:23  <templar_>Gonna ask him next time
10:58:28  <templar_>Good point
10:58:35  <joepie91>(and an untrusted random party also means that that party could be the govt, for all you know :P)
10:59:38  <templar_>Anyways, now that I went off about virtual economies... do you see where I'm going with this Node.js MMO?
10:59:54  <joepie91>not exactly :)
11:00:00  <joepie91>I sure hope it's not microtransactions
11:00:06  <templar_>Lol no
11:00:22  * slajaxquit (Ping timeout: 250 seconds)
11:00:27  <templar_>Basically, create simple scalable open world protocol
11:00:32  <templar_>Like Minecraft
11:00:45  <templar_>but online, using HTML5/JS and Node
11:01:06  <templar_>allow for resource competition
11:01:11  <templar_>territory control etc
11:01:19  <templar_>allowing for natural MMO economy to emerge
11:01:28  <templar_>in-game currency= cryptocurrency
11:01:43  <templar_>some forked crypto, worthless at first
11:01:58  * tymczenkoquit (Quit: Leaving)
11:02:02  <templar_>get it listed on exchanges
11:02:03  <joepie91>I'm not immediately seeing what the goal here is other than "huh, you can do that"
11:02:07  * slajaxjoined
11:02:55  <grr12314>printing your own money?
11:02:57  <templar_>By having the virtual economy denominated in a cryptocurrency (which can be sent to an exchange and converted to BTC and then USD), you are are creating a bridge to the real world
11:03:01  <grr12314>if it catches on at least
11:03:13  <templar_>Well, not printing
11:03:20  <templar_>It's a cryptocurrency
11:03:21  <grr12314>same difference
11:03:27  <joepie91>templar_: that frankly just sounds like an extremely abuse-prone thing to me
11:03:35  <joepie91>not really anything that provides a benefit
11:03:48  <templar_>Well, remember what I said about Norrath?
11:03:53  * b44quit (Remote host closed the connection)
11:04:09  <templar_>If those people had a way to exchange their virtual currency for real world currency, they would be making $3.42 an hour
11:04:19  <templar_>That's because people *value* that virtual world
11:04:24  <templar_>so its economy has *value*
11:04:26  * b44joined
11:04:36  <joepie91>I think you underestimate the second-order effects of that kind of mechanism
11:04:39  <templar_>I am simply trying to create a world like that
11:04:50  <templar_>And then give it access to real world economies
11:04:53  <joepie91>look at eg. gold sellers around existing MMOs
11:04:55  <templar_>via a cryptocurrency
11:05:04  <joepie91>yeah but it doesn;t work that way
11:05:06  <templar_>Yeah. They are what opened my eyes to this.
11:05:14  <joepie91>implementing such a mechanism will itself affect the economy
11:05:17  <joepie91>and drive down value
11:05:25  * b44quit (Read error: Connection reset by peer)
11:05:27  <joepie91>and basically just encourage sweatshop labour
11:05:29  <templar_>Then that's fine. Free market.
11:05:35  * b44joined
11:05:35  <joepie91>no, that's not fine :)
11:05:39  <templar_>I never said I want to profit.
11:05:42  <joepie91>and the 'free market' is quite frankly a myth
11:05:55  <joepie91>it literally cannot exist
11:06:02  <templar_>Well hold on a sec.
11:06:14  <templar_>Why do you think it's a bad thing that people can monetize their virtual labor?
11:06:25  <joepie91>that is a dishonest question :)
11:06:31  <templar_>"sweatshop labor" as opposed to what?
11:06:32  <joepie91>because that is not what I said
11:06:40  <templar_>Ok, true
11:06:44  <templar_>Maybe I got a bit defensive lol
11:06:52  * slajaxquit (Ping timeout: 250 seconds)
11:06:59  <templar_>I'm passionate about this idea :<
11:07:15  <joepie91>I understand that, but you do have to realize that this is about real money, real people's livelihoods, and it has real consequences for people
11:07:23  <templar_>Talking to you right now is the first real break I have taken in 48 hours lol
11:07:24  <joepie91>that's different from a game you can just tune out of
11:07:42  <templar_>Well hold on
11:07:48  <templar_>This game doesn't even exist
11:07:56  <joepie91>no, but it will, I assume
11:07:57  <templar_>How do you know it will be so successful?
11:08:03  <joepie91>I don't
11:08:15  <joepie91>but I do know that if it does become successful, it will have significant negative effects
11:08:26  <templar_>:<
11:08:29  * slajaxjoined
11:08:43  <templar_>But you are holding me liable for their Choice!!
11:08:44  <joepie91>and if the two possible outcomes for a project are "it will not become successful" or "it will cause economic ruin" (hyperbolizing a bit) that's not a great look :)
11:08:54  <templar_>I create a beautiful magical world
11:09:10  <templar_>They choose to live in it
11:09:14  <templar_>What were they running away from?
11:09:27  <templar_>That is how I see it
11:09:35  <joepie91>templar_: so, two problems here, and I'm going to be very straightforward here even if it may not sound nice
11:09:43  <templar_>No, tell me
11:09:47  <templar_>I appreciate your perspective
11:09:54  * RoriconKnight_quit (Read error: Connection reset by peer)
11:10:12  <joepie91>1) I don't think you fully understand the economics of what you're proposing - and the research you quoted has only done the math from a passive observer perspective, not affecting the economy, so it doesn't directly map to your idea
11:10:24  * keepLearning512joined
11:10:25  <joepie91>2) you're grossly overestimating how much free choice is involved in people's participation in these things
11:10:42  <joepie91>I can pretty much guarantee you that this, if successful, will lead to effectively forced labour in low-wage countries
11:10:51  <joepie91>like gold trading for existing MMOs already has to some degree, but worse
11:11:07  <joepie91>(because here it is sanctioned and by design, and so there will be fiercer competition)
11:11:45  <joepie91>I would recommend reading up first on how 'gold farming' companies work, what the work conditions are there, the kind of people who work there and why
11:11:50  <joepie91>they're not people who enjoy playing the game
11:11:56  * DarkShymiajoined
11:12:04  * DarkShymiaquit (Changing host)
11:12:04  * DarkShymiajoined
11:12:09  <templar_>But are they really *forced*?
11:12:17  <templar_>I have seen these companies myself.
11:12:18  <_rgn>albeit an interesting topic of discussion shouldn't this be taken elsewhere?
11:12:34  <joepie91>I'm sure you can find a definition of 'forced' where they aren't forced, but I don't think that's a constructive endeavour; so I'm gonna say that yes, they are effectively forced
11:12:51  <joepie91>by having no other options available to them
11:13:28  <templar_>... so in a way you are holding me liable for creating an opportunity for them that's isn't a comfy 9-5 job with benefits...?
11:13:49  <templar_>Not being rhetorical/sarcastic
11:13:49  <joepie91>this isn't an "opportunity", this is a vector for abusive employment
11:14:10  <templar_>Well you started from an assumption that their situation was already crappy
11:14:16  <joepie91>(for the particular group of people I'm talking about, mind)
11:14:26  <joepie91>templar_: these kind of systems create a lemon market for jobs
11:14:45  <templar_>There's a kind of argument that I am not fond of
11:14:58  <templar_>At it's the "well someone else was going to do it so why not me??"
11:15:01  <joepie91>neither am I, but it's the reality
11:15:10  <templar_>Usually when people invoke this argument, they mean to do something bad
11:15:13  <templar_>to take away value
11:15:20  <templar_>but I will now invoke this argument
11:15:26  <templar_>because I am CREATING value
11:15:33  <joepie91>I frankly don't think you are
11:15:38  <joepie91>at least
11:15:44  <joepie91>not through the tie between in-game money and real-world money
11:15:54  * plutoniixquit (Quit: Leaving)
11:15:56  <joepie91>it is pretty much *just* an abuse vector
11:16:07  <templar_>:<
11:16:16  <templar_>It does sadden me that you think this way about it...
11:16:21  <templar_>But I also see your point...
11:16:31  <joepie91>that's not to say that you *can't* design a game where people can benefit from playing it, to be clear
11:16:33  <joepie91>just this design isn't it
11:16:36  * keepLearning512quit (Remote host closed the connection)
11:17:05  <joepie91>you really need to be very careful to design a system where 'gold farming'-like practices are disincentivized
11:17:15  <joepie91>and where the rewards only make sense on a personal level
11:17:48  * chargen_quit (Ping timeout: 258 seconds)
11:17:51  * hungrywolfjoined
11:17:53  * chargenjoined
11:18:15  <templar_>I see the plight of the over-worked gold farmer... sure... but what about the neet?
11:18:25  <templar_>What about the guy who lives in the first world
11:18:33  <templar_>and just wants some extra pocket money
11:18:49  * bjornquit (Ping timeout: 244 seconds)
11:18:50  <joepie91>the old-curmudgeon answer to this is, of course, "go mow some lawns" :)
11:18:54  * slajaxquit (Ping timeout: 272 seconds)
11:18:58  <templar_>do these guys outnumber the potential "victims"?
11:19:00  <joepie91>more seriously, there are plenty of ways to earn some extra pocket money
11:19:14  <templar_>Yes but they want to earn it on THEIR terms
11:19:19  <templar_>maybe they don't want to mow lawns
11:19:30  <templar_>Maybe they believe they are of a class of people who can sustain themselves in a virtual world
11:19:31  <joepie91>I'm sure, but the reality is that the world doesn't work on any one single person's terms
11:19:43  <joepie91>and that you do actually need to consider the consequences of things for others
11:19:49  <templar_>This might not be healthy thinking... but for some of them it also may be "their only option"
11:20:27  <templar_>I just think that the world of the future was accurately predicted by the Hyperrealists
11:20:32  <joepie91>templar_: so, entirely seriously, if you want to provide more opportunities to those people? one of the most effective things you can do is probably to tie the game in with access to counseling
11:20:33  <templar_>I want to be part of that vision
11:21:00  * slajaxjoined
11:21:01  <templar_>I don't agree with that future, I am not a post-modernist
11:21:16  <templar_>In fact, I intend to leave the cities for good and live off the land as a freesteader
11:21:30  * BrokenSwordXIIIjoined
11:21:47  <templar_>But I can still leave this economic experiment in my wake
11:21:48  <grr12314>somewhere with no internet?
11:21:55  <templar_>Yes probably
11:22:01  <grr12314>serves you right...
11:22:02  <templar_>I will come back when BTC moons :D
11:22:17  <joepie91>templar_: I'm not sure that "kickstarted a new sweatshop industry" is a great thing to leave in your wake :)
11:22:25  <templar_>Jokes aside though...
11:22:36  <templar_>I do see your point, I do.
11:22:49  * userxjoined
11:22:53  <templar_>But if this game really does become a success, there is a bigger picture.
11:23:20  <templar_>How do I know that these Chinese gold farmers don't find a way to just play the game from home and make money on their own terms?
11:23:26  <templar_>They have a Choice
11:23:30  <templar_>I believe I am giving people that
11:23:32  <templar_>A Choice
11:23:48  <joepie91>templar_: so I've been trying to kind of avoid this topic because it tends to get people on the defensive, but I think it has to be mentioned anyway...
11:23:55  <templar_>And I'm afraid I will cling to that notion
11:24:02  <joepie91>I feel like your perspective on this is very, very stuck in US ideology
11:24:07  * laurejoined
11:24:09  <joepie91>the 'pull yourself up by your bootstraps' ideology
11:24:13  <templar_>Because I have too much emotional attachment to this idea now
11:24:35  <joepie91>that same ideology is predicated on the idea that everybody lives by their own free choice
11:24:40  * laurequit (Client Quit)
11:24:53  <joepie91>and that merely offering a choice cannot be wrong since people choose voluntarily
11:25:03  <joepie91>but... in reality, this is not really true
11:25:15  <joepie91>and it's something that's really quite unique to US ideology/politics
11:26:03  <joepie91>in practice, society is a lot more complex than everybody living by a series of individual choices, and people can 'choose' things for reasons other than voluntary decision, and people's choices affect other people's lives, and people don't get equal opportunities, etc.
11:26:15  <joepie91>and these are all factors that that ideology doesn't account for
11:26:31  <joepie91>and it's precisely that point where abuse usually creeps into these systems
11:26:57  <joepie91>see eg. the US-based big tech companies that almost invariable produce apps and sites that are designed to be addictive throughout
11:27:03  <joepie91>invariably*
11:27:13  <templar_>It;s true
11:27:15  <joepie91>but that look 'voluntary' enough that they can get away with claiming that people choose to use them,
11:27:24  <joepie91>when in reality they are consciously designing for addiction
11:27:41  <templar_>In a way, I am doing the same
11:27:45  <templar_>You're right
11:27:56  * am0123quit (Ping timeout: 260 seconds)
11:28:18  <templar_>You have cut directly to the core of this game. The Why of this game.
11:28:28  <templar_>It's remarkable, really...
11:28:44  <templar_>it represents many struggles within my own life story even...
11:29:06  * bjornjoined
11:29:06  * bjornquit (Changing host)
11:29:06  * bjornjoined
11:29:25  <templar_>If it wasn't for Bitcoin, and my choices about Bitcoin, my life would be completely different right now
11:29:31  <templar_>Not in a good way
11:29:36  <templar_>I believe everything happens for a reason
11:29:45  <templar_>Just like I was telling you that Bitcoin happened for a reason
11:30:04  <templar_>3 days ago all I could code was stupid Python scrapers
11:30:24  * promethjoined
11:30:25  <templar_>This game is happening for a reason
11:30:31  <avu>"everything happens for a reason" is one of these things that's both totally true and totally meaningless.
11:30:47  <templar_>I don't think I can change the path I'm on now to be honest
11:30:50  * BlackBlocquit (Ping timeout: 258 seconds)
11:30:53  <joepie91>of course you can :)
11:31:07  <templar_>But I sincerely appreciate you for making me honestly consider the Why
11:31:25  <templar_>No one else could articulate it as well as you just did
11:31:25  * lordjancsojoined
11:32:01  <avu>Pratchett would say "because quantum"
11:32:37  <templar_>... I hope you don't regret helping me joepie91 :/
11:33:53  <joepie91>templar_: I'm confident that you'll realize the agency you have over your decisions, and that you're capable of optimizing for positive outcomes :)
11:34:07  * Guest63837quit (Ping timeout: 240 seconds)
11:35:14  * crisedjoined
11:35:32  <grr12314>eh, you mean thaum not quantum
11:35:50  <avu>grr12314: nono, I mean quantum
11:35:52  <grr12314>then again, roundworld here... ok
11:36:04  * b44quit (Remote host closed the connection)
11:36:40  * b44joined
11:36:41  * morenoh149joined
11:36:48  <avu>'And then there’s quantum, of course.’ The monk sighed. ‘There’s always bloody quantum.'
11:37:07  * DeltaHeavyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:37:15  * b44quit (Read error: Connection reset by peer)
11:37:32  <avu>( https://wiki.lspace.org/mediawiki/Quantum )
11:37:44  * wonko7quit (Quit: See You Space Cowboy..)
11:37:46  * b44joined
11:38:27  * DeltaHeavyjoined
11:38:40  * DeltaHeavyquit (Client Quit)
11:39:19  * wonko7joined
11:39:21  * DeltaHeavyjoined
11:39:27  * DeltaHeavyquit (Client Quit)
11:40:03  * DeltaHeavyjoined
11:40:13  * DeltaHeavyquit (Client Quit)
11:40:20  * gloomy_joined
11:41:42  * morenoh149quit (Ping timeout: 272 seconds)
11:42:05  * kakashiA1quit (Ping timeout: 268 seconds)
11:42:24  * test1600joined
11:43:38  * gloomyquit (Ping timeout: 252 seconds)
11:45:00  * carb0n_quit (Ping timeout: 246 seconds)
11:45:33  * the_antquit (Quit: the_ant)
11:49:23  * slajaxquit (Ping timeout: 250 seconds)
11:49:39  * wonko7quit (Ping timeout: 252 seconds)
11:50:36  * wonko7joined
11:50:50  * ravustajajoined
11:51:21  * shushjoined
11:51:29  * test1600quit (Quit: Leaving)
11:52:30  * slajaxjoined
11:52:53  * ijashquit (Quit: Leaving)
11:55:56  * shushquit (Ping timeout: 260 seconds)
11:57:17  * slajaxquit (Ping timeout: 258 seconds)
11:59:14  * slajaxjoined
11:59:23  * kakashiA1joined
12:01:30  * amarasho1joined
12:02:29  * sunil_bansaljoined
12:03:12  * amarashovquit (Ping timeout: 250 seconds)
12:03:22  * sunil_bansalquit (Remote host closed the connection)
12:04:06  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
12:04:17  * kakashiA1quit (Ping timeout: 268 seconds)
12:04:58  * amarasho1quit (Read error: Connection reset by peer)
12:05:08  * gxtquit (Ping timeout: 272 seconds)
12:05:16  * wonko7quit (Ping timeout: 260 seconds)
12:06:24  * gloomy_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:08:03  * errstjoined
12:11:24  * hollusionjoined
12:13:22  * BrokenSwordXIIIquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:14:28  * wonko7joined
12:14:55  * slajaxquit (Ping timeout: 258 seconds)
12:20:24  * kakashiA1joined
12:20:44  * userxquit (Quit: userx)
12:21:11  * dsiypl4joined
12:23:09  * elichai2quit (Quit: Connection closed for inactivity)
12:24:04  * gloomyjoined
12:25:15  * kakashiA1quit (Ping timeout: 268 seconds)
12:25:29  * userxjoined
12:27:39  * mezodquit (Remote host closed the connection)
12:27:54  * jrzzquit (Quit: ZNC 1.6.5+deb1+deb9u1 - http://znc.in)
12:28:11  * jrzzjoined
12:32:26  * jrzzquit (Client Quit)
12:34:05  * jrzzjoined
12:36:29  <paulcarroty>folks, https.get and node-fetch returns different data from the same api endpoint. how can I understand why?
12:38:00  <paulcarroty>https://nodejs.org/api/https.html#https_https_get_url_options_callback this example works, but return different structure than fetch.
12:38:57  <joepie91>paulcarroty: first you said 'data' but then you said 'structure' - what data are you actually referring to?
12:40:40  * TyrfingMjolnirquit (Ping timeout: 268 seconds)
12:40:44  * mezodjoined
12:40:50  * Jervis_joined
12:41:16  * kakashiA1joined
12:41:28  * lexileoquit (Ping timeout: 246 seconds)
12:42:21  <paulcarroty>joepie91, https://pastebin.com/HHm1Y9Pc
12:43:10  * banseljajquit (Quit: Connection closed for inactivity)
12:45:58  * kakashiA1quit (Ping timeout: 258 seconds)
12:46:38  * mona_xquit (Quit: mona_x)
12:49:13  * kliqquit (Ping timeout: 268 seconds)
12:49:48  * saladquit (Read error: Connection reset by peer)
12:49:54  <joepie91>paulcarroty: possibly node-fetch sends along an Accept header to indicate that it wants JSON?
12:50:07  * saladjoined
12:51:18  * carro7joined
12:52:54  * malbino[m]joined
12:54:03  * [Anthony]joined
12:54:17  <paulcarroty>joepie91, I'm not sure, cause https://encrypted.google.com/ returns HTML for both cases
12:54:37  <joepie91>it's up to the server whether to do anything with that header
12:54:38  * saladquit (Ping timeout: 245 seconds)
12:56:01  * TyrfingMjolnirjoined
12:58:10  <paulcarroty>joepie91, https://pastebin.com/FZ6iHMdm
12:58:21  * am0123joined
12:58:55  * wonko7quit (Quit: See You Space Cowboy..)
12:59:49  * wonko7joined
12:59:54  * badSophiajoined
13:02:27  * kakashiA1joined
13:02:37  * saladjoined
13:04:19  * redbisonjoined
13:04:34  * trevorjoined
13:05:23  * keepLearning512joined
13:06:28  * carro7quit (Ping timeout: 250 seconds)
13:10:02  * gamelasterjoined
13:11:03  * gxtjoined
13:11:19  * reberjoined
13:12:27  * mezodquit (Remote host closed the connection)
13:14:37  * craigoquit (Ping timeout: 252 seconds)
13:17:40  * dsiypl4quit (Ping timeout: 268 seconds)
13:22:23  * mona_xjoined
13:24:18  * am0123quit (Ping timeout: 258 seconds)
13:30:22  <grr12314>its likely a request header difference, dumping response headers wouldn't help much (except maybe content-type)
13:31:09  <grr12314>aside from accept header, apis often have other ways to pick what content type to return, like appending file extension or a query string parameter
13:32:03  <grr12314>but simplest would be to set the same headers
13:32:41  * robin___joined
13:34:48  * bberryjoined
13:37:42  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:38:53  * darkSeidjoined
13:41:34  * sternsquit (Ping timeout: 250 seconds)
13:48:01  * EyePulpjoined
13:49:42  <paulcarroty>grr12314, here's the two headers - https://pastebin.com/JzJM0Pn6
13:50:25  * bothoquit (Ping timeout: 246 seconds)
13:51:20  <paulcarroty>think it's api issue, maybe he likes browser way too much [irony]
13:53:28  * sternsjoined
13:55:15  * sattellitejoined
13:55:19  * mezodjoined
13:55:48  * BrokenSwordXIIIjoined
13:59:23  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
14:00:16  * bothojoined
14:02:39  * BrokenSwordXIIIquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:03:11  * flying_sausagesquit (Quit: You just lost the game. Peace Out.)
14:03:41  * flying_sausagesjoined
14:06:18  * marthinalquit (Remote host closed the connection)
14:06:36  * BlackBlocjoined
14:08:12  <MJCD>Short FB Messenger Privacy PSA: https://www.facebook.com/michael.debyl/posts/10213472056304526
14:10:02  * darkSeidjoined
14:14:04  <joepie91>MJCD: a bit unfortunate that it seems to recommend Telegram :/
14:14:19  <joepie91>other than that, yeah, didn't this news come out like a week ago?
14:15:27  <MJCD>joepie91, then abouts, yeah
14:15:45  <MJCD>its mainly for my facebook peeps, just thought i'd share
14:15:51  <MJCD>incase people hadn't seen it
14:16:01  <joepie91>right, fair enough
14:16:08  <MJCD>I don't know exactly why I'm shocked and outraged, but I am
14:16:10  * slajaxjoined
14:16:10  <joepie91>but yeah, my add-on advice: best avoid Telegram :)
14:16:22  <MJCD>why? it's source is available
14:16:27  <MJCD>you can literally sift through it yourself
14:16:31  <joepie91>they've been behaving sketchily for years now, and have a pretty poor history in terms of cryptography
14:16:48  * altabjoined
14:16:53  <joepie91>I mean, source being available isn't that useful if any criticisms about its security are consistently waved away as "eh, it's fine"
14:16:54  <MJCD>wickr is the only real competitor for just like, social use
14:16:56  <joepie91>which is basically what's happened
14:16:58  <MJCD>not for business or other use
14:17:11  <joepie91>MJCD: Signal? and from what I know, Wire is fine too
14:17:11  <MJCD>and that's much sketchier
14:17:14  <joepie91>wickr is also super sketchy
14:17:21  <MJCD>see new things are always regarded as fine
14:17:28  <MJCD>then over time they build a brand stigma
14:17:31  <joepie91>no, this isn't about them being 'new' at all
14:17:41  <joepie91>actually I think both Signal and Wire are older than wickr
14:17:42  <MJCD>it's invariable that all these platforms will, over time, have attacks against them
14:17:45  <MJCD>that will succeed
14:17:49  <joepie91>no, it's not
14:17:54  <joepie91>and that isn't the point here
14:18:00  <MJCD>I mean it took the CIA but they cracked tor
14:18:05  <joepie91>what matters is the way that providers deal with criticisms, with feedback, how they market themselves
14:18:08  <joepie91>?
14:18:21  <joepie91>last I checked Tor certainly wasn't "cracked"
14:18:27  <MJCD>sure, my experience thus far as a user in 2018 is wonderful with telegram
14:18:30  <joepie91>and I'd be very surprised if that were the case now
14:18:31  <MJCD>as I say its source is available
14:18:35  <MJCD>you can build it yourself even
14:18:44  <joepie91>MJCD: "source is available" is a cheap marketing trick for Telegram
14:18:45  <MJCD>go over every single line
14:18:47  <MJCD>and people do
14:18:50  <MJCD>not us
14:18:53  <joepie91>yes, and people do, and people have cast criticisms
14:18:56  <MJCD>more bored people
14:18:58  <joepie91>and Telegram has consistently waved them away
14:19:02  <joepie91>that is the problem
14:19:09  <joepie91>source availability is pointless if reviews are not taken seriously
14:19:13  * sQVequit (Quit: Bye!)
14:19:13  * leatherface416joined
14:19:13  <MJCD>lol well idk I used wireshark and it's definitely some very strong encryption *now*
14:19:19  <joepie91>?????
14:19:23  <MJCD>regardless of what your experience is
14:19:26  <joepie91>you can't assess cryptographic strength with wireshark...
14:19:30  <MJCD>right
14:19:34  <MJCD>I can't
14:19:43  <joepie91>sorry but I feel like you're stepping into crypto snakeoil traps :)
14:19:47  <MJCD>that's the point, I was unable to do anything, because the encryption is strong
14:19:55  <MJCD>it was like 2056 bit keys or something redonk
14:19:58  <joepie91>that's... no, that's not how encryption works at all
14:20:06  <joepie91>and amount of bits is meaningless
14:20:12  <joepie91>this is all snakeoil
14:20:22  <MJCD>More bits isn't entirely snakeoil
14:20:36  <MJCD>8 bit encryption is much easier to break than 24 bit encryption
14:20:48  <joepie91>MJCD: see https://www.schneier.com/crypto-gram/archives/1999/0215.html#snakeoil and https://www.schneier.com/crypto-gram/archives/1998/1215.html#contests and
14:20:50  <joepie91>MJCD: no, it is not
14:20:53  * lundibundiquit (Ping timeout: 245 seconds)
14:20:58  <joepie91>this is 100% pseudoscientific nonsense
14:21:05  * DeltaHeavyjoined
14:21:10  * DeltaHeavyquit (Client Quit)
14:21:11  <joepie91>and precisely the kind of BS marketing used by sketchy companies like telegram an wickr
14:21:13  <joepie91>and*
14:21:15  <MJCD>*shrug* ok well i'll add it to my reading list
14:21:30  <MJCD>and add Signal as a second recommendation
14:21:33  <MJCD>:)
14:21:50  <joepie91>amount of bits is only comparable *within implementations of the same algorithm* and even then you very quickly reach a point of diminishing returns (and sometimes higher-bit-size implementations can even be *weaker* because the implementation is different)
14:23:01  * marthinaljoined
14:23:17  <MJCD>there we go I edited it and even gave you a shoutout
14:23:17  * marthinalquit (Remote host closed the connection)
14:23:35  <MJCD>I know you reach a point of diminishing returns
14:23:45  <joepie91>oh I didn't even realize that was your post :P
14:23:47  <MJCD>I do have some base knowledge in this area
14:23:58  <MJCD>But no expert by any means
14:24:06  <joepie91>right
14:24:16  <MJCD>so thanks for the reading material and secondary app recommendation <3
14:24:31  <sillyslux>you are genuinely worried about privacy and facebook...
14:25:43  * cecilgoljoined
14:26:12  <joepie91>MJCD: hm, addition to the first link; that article dates from 1999 which is probably why it doesn't mention this, but for example elliptic curve cryptography generally needs way less key bits for equivalent cryptographic strength to 'traditional' things like RSA/DSA/etc.
14:26:38  <joepie91>and the security properties of ECC are different (better, I'd say) as well
14:27:01  * DarkShymiaquit (Remote host closed the connection)
14:27:03  <joepie91>so you'll end up with a lower bit size yet better security
14:27:13  * DarkShymiajoined
14:27:37  * BrokenSwordXIIIjoined
14:27:45  <joepie91>similarly, companies applying snakeoil marketing tend to focus on the key length of the asymmetric keypair because that makes for the highest numbers, even though that's often not the weakest point and what matters more is the algorithm and key size for the symmetric cipher
14:28:40  <joepie91>there's a whole host of "impressive numbers" marketing tricks like that :P
14:29:34  * cecilgolquit (Quit: WeeChat 2.2)
14:29:44  * gloomyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:30:47  * errstquit (Ping timeout: 240 seconds)
14:32:29  * carb0n_joined
14:36:00  <darkSeid>Hey, trying to set up Travis CI with one of my companys GH repos but it's failing during package installation (using yarn). The error is as follows: `error An unexpected error occurred: "https://registry.yarnpkg.com/@myCompany/package-name/-/package-name-4.25.0.tgz: Request failed \"404 Not Found\""`
14:36:09  <darkSeid>not too sure what would be causing this?
14:36:18  * grr12314quit (Remote host closed the connection)
14:36:23  * trevorjoined
14:36:32  <darkSeid>works fine when i install packages locally
14:37:26  * bsanfordjoined
14:37:35  * dsiypl4joined
14:37:38  <darkSeid>is this likely just a permissions issue or smth
14:42:15  * DeltaHeavyjoined
14:42:48  * marthinaljoined
14:44:02  * slajaxquit (Ping timeout: 258 seconds)
14:44:53  * dskwlkrjoined
14:46:11  * gloomyjoined
14:46:52  * batterylowquit (Quit: Leaving)
14:48:20  * uniquerockrzquit (Quit: ZNC 1.6.3+deb1ubuntu0.1 - http://znc.in)
14:49:22  * shushjoined
14:50:26  * duderonomyjoined
14:51:50  * bsanfordquit (Quit: Leaving)
14:54:10  * darutokoquit (Ping timeout: 252 seconds)
14:54:35  * unbearablequit (Remote host closed the connection)
14:55:41  * am0123joined
14:55:51  * EvanCarrolljoined
14:56:54  * daN-R-Gjoined
14:57:10  * batterylowjoined
14:58:54  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
15:03:30  * altabquit (Ping timeout: 252 seconds)
15:03:57  * shushquit (Ping timeout: 250 seconds)
15:05:22  * dsiypl4_joined
15:05:36  <MJCD>sillyslux, i'm not worried about it tbh
15:05:44  <MJCD>I just know people who will be
15:05:54  <MJCD>I don't have 5000 fb friends to not pander to them
15:05:56  <MJCD>;)
15:06:00  <MJCD>gotta #hustle
15:06:14  <MJCD>make dat cash
15:07:09  * sandrosantosjoined
15:07:25  * leatherface416quit (Ping timeout: 258 seconds)
15:07:26  * sandrosantosquit (Client Quit)
15:07:27  * jamiejacksonjoined
15:08:14  * carb0n_quit (Ping timeout: 250 seconds)
15:08:34  * dsiypl4quit (Ping timeout: 258 seconds)
15:10:55  * errstjoined
15:11:14  * shushjoined
15:11:20  * mgolquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:11:25  * avuquit (Quit: avu)
15:12:26  * itschinjoined
15:15:27  * adam_quit (Ping timeout: 244 seconds)
15:17:36  * m0therquit (Remote host closed the connection)
15:18:06  * m0therjoined
15:18:46  * DeltaHeavyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:19:52  * shushquit (Ping timeout: 264 seconds)
15:20:51  * redbisonquit (Remote host closed the connection)
15:21:10  * sunil_bansaljoined
15:21:12  * BlackBlocquit (Ping timeout: 252 seconds)
15:22:20  * itschinpart ("Leaving")
15:26:02  * badSophiaquit (Quit: badSophia)
15:27:41  * leatherface416joined
15:29:24  * avujoined
15:30:11  * iLoVuejoined
15:35:49  * saladquit (Quit: salad)
15:39:28  <cdunklau>joepie91: shit wouldn't it be more impressive to just say you're using "military grade encryption"
15:39:39  * zumba_ad_joined
15:40:01  <joepie91>cdunklau: also a classic
15:40:17  <joepie91>cdunklau: that one is especially hilarious to people who have actually worked for the military, apparently
15:40:29  <joepie91>because to them it translates to "under spec, over cost, barely meets requirements"
15:40:44  * cthulchu_joined
15:40:51  * [Anthony]quit (Quit: Textual IRC Client: www.textualapp.com)
15:40:51  <cdunklau>joepie91: i mean to normies
15:41:09  <cdunklau>but yes, military grade is quite funny
15:41:37  <cdunklau>reminds me of the quote from... Alan Shepard?
15:41:39  <cdunklau>maybe Glenn
15:42:04  * iLoVuequit (Ping timeout: 246 seconds)
15:42:39  <cdunklau>"I felt exactly how you would feel if you were getting ready to launch and knew you were sitting on top of two million parts -- all built by the lowest bidder on a government contract."
15:43:00  <cdunklau>it was Glenn, supposedly
15:43:29  * iLoVuejoined
15:43:51  <cdunklau>on the other hand, "military grade" could also be looked at in terms of the extensive testing that stuff gets put through before being accepted
15:44:05  <cdunklau>you know, barring stupid political endarounds :D
15:44:53  <cdunklau>"bah, it's not like this rifle will be used in a jungle or something, we don't need to chrome the barrels"
15:46:30  * will[c]joined
15:47:44  * greggerzjoined
15:48:07  * willcquit (Ping timeout: 240 seconds)
15:49:13  * emma22quit (Quit: Page closed)
15:49:25  * DeltaHeavyjoined
15:50:11  * shushjoined
15:50:20  <paulcarroty>joepie91, grr12314 Accept: "*/*" solved my issue
15:51:34  * dlwickselljoined
15:52:07  * dlwicksellquit (Client Quit)
15:52:40  * dlwickselljoined
15:54:34  * paulcarrotyquit (Remote host closed the connection)
15:54:36  * will[c]quit (Ping timeout: 250 seconds)
15:54:50  * shushquit (Ping timeout: 268 seconds)
15:55:43  * am0123quit (Ping timeout: 258 seconds)
15:56:32  * morenoh149joined
15:56:45  * redbisonjoined
15:57:06  * igemnacejoined
15:57:29  * led_dark_1joined
15:57:29  * redbison_joined
15:57:31  * mgoljoined
15:57:38  * bsaboiaquit (Ping timeout: 250 seconds)
15:58:13  * am0123joined
15:58:22  <morenoh149>found this today will try it out https://medium.com/@jackzhang0096/how-to-setup-oauth-2-0-token-strategy-on-feathersjs-1d77cc32118b
16:01:19  * redbisonquit (Ping timeout: 246 seconds)
16:02:10  * setpillquit (Quit: o/)
16:02:14  * zumba_ad_quit (Ping timeout: 258 seconds)
16:02:37  * rtnquit (Ping timeout: 258 seconds)
16:03:40  * Daifucojoined
16:04:25  * darkSeidjoined
16:04:32  * errstquit (Ping timeout: 272 seconds)
16:05:25  * duderonomyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:06:34  * am0123quit (Ping timeout: 246 seconds)
16:06:48  * playingbogart_quit (Ping timeout: 246 seconds)
16:09:52  * noraatepernosjoined
16:10:59  * Laptop_minijoined
16:11:49  * Aljonequit (Ping timeout: 246 seconds)
16:12:11  * Aljonejoined
16:13:24  * kakashiA1quit (Ping timeout: 272 seconds)
16:13:35  * nexiijoined
16:13:38  * aerex_joined
16:14:27  * mona_xquit (Quit: mona_x)
16:17:55  * mgolquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:19:25  * sherlockjoined
16:20:36  * redbisonjoined
16:21:56  * cthulchuquit (Ping timeout: 260 seconds)
16:24:10  * redbison_quit (Ping timeout: 272 seconds)
16:25:28  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:36:34  * orbyt_joined
16:39:57  * sherlock_joined
16:41:10  * reberquit (Remote host closed the connection)
16:41:14  * slajaxjoined
16:41:50  * sherlockquit (Ping timeout: 250 seconds)
16:44:19  * sherlock_quit (Ping timeout: 244 seconds)
16:45:33  * Soopamanjoined
16:48:54  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:49:54  * bradfordli123joined
16:49:58  * dlwicksellquit (Quit: Leaving.)
16:50:13  * bradfordli123quit (Remote host closed the connection)
16:50:39  * AtumTjoined
16:50:52  * bradfordli123joined
16:51:45  * Dbuggerjoined
16:53:20  * Daifucoquit (Remote host closed the connection)
16:54:03  * pokkquit (Remote host closed the connection)
16:59:25  * ahmedelgabriquit (Ping timeout: 246 seconds)
16:59:50  * akivajoined
17:00:45  * paulcarrotyjoined
17:01:11  * gh0st3djoined
17:02:58  <gh0st3d>Hey everyone... Pretty new to nodejs ... I'm familiarizing myself with building an api and adding unit tests with supertest & mocha. Curious what is the preferred way to test adding an object to the API then also removing it?
17:03:42  * Gond07joined
17:03:51  <gh0st3d>I was able to get the tests to run by putting the request to remove the new object inside of the .end() on the request to add the object... But in the test results it show as a success and a fail lol. Idk how I'm supposed to get the id from the add request into the delete request
17:07:04  <Sven_vB>how do I configure which filename patterns eslint will scan by default? I found https://github.com/eslint/eslint.github.io/blob/master/docs/user-guide/configuring.md#configuration-based-on-glob-patterns but that seems to apply only once eslint decided to scan a file at all.
17:09:52  * lordjancsoquit (Quit: Leaving)
17:10:39  <Sven_vB>is there a .eslintrc option to the effect of the --ext CLI option?
17:11:22  <cdunklau>gh0st3d: you're gonna need to pastebin some code
17:11:39  <gh0st3d>Sure, 1 sec
17:12:05  <cdunklau>i'm running away though, so direct it to the channel
17:12:23  * dastierjoined
17:13:12  <gh0st3d>Trying to figure out the proper way to test the adding/removing of an entry to the API... My current solution is the last it() statement in this, but it comes up as a success and a failure... https://pastebin.com/9yCEVXkV
17:14:04  * playingbogart_joined
17:14:20  * slajaxquit (Ping timeout: 250 seconds)
17:14:46  * redbisonquit (Remote host closed the connection)
17:14:47  * robin___quit (Remote host closed the connection)
17:18:25  * orbyt_joined
17:19:21  * redbisonjoined
17:19:50  * iclonquit (Read error: Connection reset by peer)
17:19:52  * iclon_joined
17:21:58  * MJCDchanged nick to MJCDzZz
17:23:04  * daN-R-Gquit (Ping timeout: 244 seconds)
17:23:41  * altabjoined
17:25:31  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
17:26:22  * cthulchujoined
17:27:15  * sunil_bansalquit (Remote host closed the connection)
17:28:32  * mandaputtrajoined
17:29:08  * pokkjoined
17:29:16  * kpattichaquit (Ping timeout: 268 seconds)
17:29:19  * dretnxjoined
17:30:20  * jlippsjoined
17:30:58  * paul__joined
17:33:07  * paulcarrotyquit (Ping timeout: 240 seconds)
17:33:26  * paulcarrotyjoined
17:33:34  * dretnxquit (Client Quit)
17:33:42  * paul__quit (Read error: Connection reset by peer)
17:35:03  * mandaputtraquit (Ping timeout: 256 seconds)
17:35:07  * GreenJellojoined
17:36:46  * shushjoined
17:37:09  * hollusionquit (Remote host closed the connection)
17:37:12  * sunil_bansaljoined
17:38:16  * am0123joined
17:41:54  * sunil_bansalquit (Ping timeout: 258 seconds)
17:42:01  * Laptop_miniquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:43:48  * Daifucojoined
17:47:52  * xrashjoined
17:48:11  * shushquit (Ping timeout: 250 seconds)
17:48:29  * i1nfusionjoined
17:48:36  * marthinalquit (Remote host closed the connection)
17:48:51  <Daifuco>hi I am just a learner, is a website made with express pug and some data a "static" website?
17:48:59  * Ergoquit (Quit: WeeChat 1.9.1)
17:49:02  * marthinaljoined
17:49:08  * rtnjoined
17:49:36  * b44quit
17:50:48  * shushjoined
17:51:38  <Daifuco>I guess they are dynamic since they dediver information based on requests?
17:52:06  <Daifuco>but they are not fancy self updating ajax ones
17:52:35  * sunil_bansaljoined
17:52:54  * sunil_bansalquit (Remote host closed the connection)
17:53:08  <paulcarroty>Daifuco, you don't need express for static website.
17:54:47  * willcjoined
17:55:03  <Daifuco>paulcarroty , well I have been following a tutorial about express. I GET what express is (sorry for pun)
17:55:07  * marthinalquit (Ping timeout: 240 seconds)
17:55:53  * DarkShymiaquit (Remote host closed the connection)
17:56:01  * renlojoined
17:56:08  * DarkShymiajoined
17:56:22  * shushquit (Ping timeout: 250 seconds)
17:56:30  * trevorjoined
17:56:45  <paulcarroty>Daifuco, https://en.wikipedia.org/wiki/Static_web_page
17:58:41  * errstjoined
17:58:45  <Daifuco>thanks. Ok I see
17:59:00  * BlackBlocjoined
18:00:12  * groomquit (Quit: Leaving.)
18:01:35  * electricark__joined
18:01:35  * electricarkjoined
18:02:50  * devnulljoined
18:03:07  * gambl0rejoined
18:04:28  * kjartanquit (Read error: Connection reset by peer)
18:06:44  * keepLear_joined
18:07:14  * kjartanjoined
18:08:22  * igemnacequit (Ping timeout: 246 seconds)
18:09:39  * keepLearning512quit (Ping timeout: 246 seconds)
18:10:36  * hussamjoined
18:10:53  * EyePulpquit (Read error: Connection reset by peer)
18:11:08  * EyePulpjoined
18:12:29  * tymczenkojoined
18:12:29  * tymczenkoquit (Client Quit)
18:12:35  * sinapintojoined
18:15:07  * Gond07quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:15:12  * b7hd6yz01joined
18:15:23  * shushjoined
18:16:08  <b7hd6yz01>Is this an appropriate channel to ask about Passport.js questions?
18:16:40  <rom1504>b7hd6yz01: we may never know
18:17:43  * shushquit (Remote host closed the connection)
18:17:50  <b7hd6yz01>Maybe not. Worth a shot though, right?
18:18:20  * catbustersquit (Quit: Connection closed for inactivity)
18:18:21  * shushjoined
18:18:45  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:19:07  <rom1504>if you don't ask your questions, you will never get answers
18:19:13  <paulcarroty>don't ask for ask
18:19:26  <rom1504>it's a pretty general thing, you can remember that also for other places than irc
18:20:17  * trevorjoined
18:21:15  * io_onejoined
18:21:20  * jcovingtjoined
18:22:03  <b7hd6yz01>https://pastebin.com/q09B3smv I am using the LocalStrategy in Passport to secure an endpoint. It seems to be authenticating correctly, but returning an error "done is not a function".
18:22:30  <b7hd6yz01>Searching on Google doesn't yield anything helpful. The few posts I've found that contain "solutions" do not work.
18:22:56  <b7hd6yz01>I am hoping someone has had experience with this strategy, or with this particular issue.
18:23:55  <b7hd6yz01>I should note there appears to be an open issue on the Github project, but it hasn't had movement since May of this year.
18:24:09  * blind_ioquit (Ping timeout: 268 seconds)
18:25:45  * sauvinquit (Read error: Connection reset by peer)
18:26:42  * nononoquit (Ping timeout: 250 seconds)
18:31:21  * playingbogart_quit (Ping timeout: 258 seconds)
18:31:55  * electricarkquit (Read error: Connection reset by peer)
18:32:21  * electricarkjoined
18:33:50  * brandly_joined
18:35:07  * shushquit (Remote host closed the connection)
18:35:32  <morenoh149>b7hd6yz01: passport is totally relevant here
18:37:05  <morenoh149>may of last year maybe
18:37:55  * Daifucoquit (Remote host closed the connection)
18:38:57  <b7hd6yz01>Ha, I guess my mental clock is off. Woops. Either way, the issue is open which is concerning. One user suggested editing the library file, but I really do not want to do that as it'll require editing in future updates, or prevent updating altogether. That this is an issue seems silly for a widely used platform, so I'm hoping I am either overlooking something by mistake, or there is a resolution out there.
18:39:08  <morenoh149>what's this signature doing? (user: any, done: any) => {
18:39:15  <morenoh149>is this typescript?
18:39:21  <ljharb>morenoh149: probably yes
18:39:24  <b7hd6yz01>It is TypeScript. Which line are you refering to?
18:39:38  <morenoh149>it's all over the file. disgusting.
18:39:43  <b7hd6yz01>Hah
18:39:46  * darkSeidjoined
18:39:46  <ljharb>(note that `: any` is silly, use `: unknown`)
18:39:53  <ljharb>if you're going to use any then why use TS at all
18:39:58  <b7hd6yz01>Yes yes, I will cast them better later. I just want to get this working.
18:40:09  <ljharb>lol then turn off typecript :-
18:40:11  <ljharb>:-p
18:40:21  * lpinquit (Quit: Textual IRC Client: www.textualapp.com)
18:40:29  <morenoh149>the error says "done is not a function" so first thing is to figure out why done is empty, is done supposed to be defined? I don't know, not my code.
18:41:32  <morenoh149>is "done is not a function" a ts compilation error?
18:41:34  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:41:54  <b7hd6yz01>Passport attempts to find the user, which it does, then pass that user object on to receive an OAuth2 token and a refresh token, then send that "verified" request back to Node.
18:42:11  <morenoh149>looks like it, as ljharb said if you turn off ts it'll run w/o error
18:42:32  * keepLear_quit (Remote host closed the connection)
18:43:07  <b7hd6yz01>I will try it as just JavaScript, but I do not think it's a TypeScript issue, as the open issue on GitHub has notes using just JavaScript.
18:43:58  <b7hd6yz01>It seems as though Passport or oauth2orize isn't sending the initial Node/Express request along, so it doesn't know how to handle that last step.
18:44:15  <Bombo>i'm trying to debug an app (not done by me) i can run it with 'npm start' but as soo as i change a file i get a sec error 'Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security Policy set or a policy with "unsafe-eval" enabled. This exposes users of this app to unnecessary security risks.' how can i disable that so i can debug?
18:45:38  <morenoh149>b7hd6yz01: hmm, I skimmed the issue, it might be just ts but clearly something is wrong in the use of the library or in a dependeny's use of the library. It's an open issue if you figure it out fix it for the community.
18:46:42  * bitmaskjoined
18:49:09  * _________joined
18:49:32  * _________changed nick to Guest11031
18:49:38  * gloomyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:49:55  * catbustersjoined
18:50:43  * EREVANjoined
18:52:00  <b7hd6yz01>morenoh149: I suppose working that suggested fix (after verifying it) into a pull request would be helpful. Ok, well thanks for taking a look!
18:52:20  <Dbugger>when I do "yarn" i get the message "There appears to be trouble with your network connection.". Is this happening to anyone else==
18:52:22  <Dbugger>??
18:53:31  <Bombo>i don't get it, it did work a minute ago, i just added 'console.log("foo");' and npm start worked, i see foo
18:53:39  <gh0st3d>Trying to figure out the proper way to test the adding/removing of an entry to the API... My current solution is the last it() statement in this, but it comes up as a success and a failure... https://pastebin.com/9yCEVXkV
18:53:46  <Bombo>then i added some more, now it doesn't
18:54:21  * mgoljoined
18:54:46  <morenoh149>Dbugger: yarn works for me. but my deps were already installed
18:54:53  * DarkShymiaquit (Quit: Leaving)
18:56:14  * shushjoined
18:57:10  * craigojoined
18:58:34  * sxaquit (Ping timeout: 258 seconds)
18:58:51  * aerex_quit (Ping timeout: 256 seconds)
18:59:18  * rendarquit
18:59:28  * marthinaljoined
18:59:53  <Dbugger>morenoh149, for me it fails... but in just a repo :/
19:02:16  * leatherface416quit (Quit: leatherface416)
19:02:48  * EyePulpquit (Remote host closed the connection)
19:02:49  * leatherface416joined
19:04:01  * shushquit (Ping timeout: 250 seconds)
19:05:04  * ahmedelgabrijoined
19:07:42  * brandly_quit (Ping timeout: 252 seconds)
19:11:03  * gxtquit (Ping timeout: 244 seconds)
19:11:23  * slajaxjoined
19:12:18  <Bombo>lol now every 3rd one i run 'npm start' the security warning dissappears
19:12:35  * renloquit (Quit: WeeChat 2.0.1)
19:14:03  <Bombo>what does the number mean 'WARNING in ...utils/makeRequest.js 11:16-46' line 11 char 16-46?
19:14:30  * crisedpart
19:15:37  <Bombo>var request = pretendingNotToRequire(module).XMLHttpRequest;
19:16:05  <Bombo>this line generates "Critical dependency: the request of a dependency is an expression"
19:16:27  <Bombo>what does that mean?
19:17:00  * jamesdrawneekjoined
19:18:07  * KidSk8joined
19:19:41  * renlojoined
19:20:02  * BlackBlocquit (Ping timeout: 258 seconds)
19:21:52  <Bombo>pretendingNotToRequire = require; var module = 'xmlhttprequest';
19:22:01  * salasrodquit (Quit: /quit)
19:22:39  <Bombo>so it doesn't find the required 'xmlhttprequest'? hmmm
19:22:51  * greggerzquit (Quit: Leaving)
19:23:43  * salasrodjoined
19:23:44  * marthinalquit (Remote host closed the connection)
19:24:11  * marthinaljoined
19:25:25  * mezodquit (Read error: Connection reset by peer)
19:25:55  <SGrover>Easy question I hope. I am tagging commits to my master branch with a version number. I know how I can get Git to give me that version number at the command line. How best to update a .env file with the version number?
19:26:09  * mezodjoined
19:26:14  <SGrover>Do I focus on a shell script, or is there some node magic I can call on ?
19:26:34  <GreenJello>SGrover, generate the .env file in CI with a script
19:27:17  <SGrover>My goal is that I want to display the version number in my web interface so I know when I'm dealing with "new" or "old" code.
19:28:36  * al-damirijoined
19:28:38  <SGrover>Thanks GreenJello I was hoping to avoid writing a windows batch file.. :) I'll see what Jenkins can do for me here.
19:28:40  * marthinalquit (Ping timeout: 250 seconds)
19:29:50  * Ryu945joined
19:30:20  * Laptop_minijoined
19:30:22  <GreenJello>SGrover, this is what it looks like in bash https://gist.github.com/brigand/ee78c584693ccc69eaa9a1d93c299108
19:30:38  <GreenJello>ew, windows in CI lol
19:30:55  <SGrover>We do what we can.. lol
19:31:12  * aerex_joined
19:31:27  <GreenJello>tag created with: git tag -a 'v0.3' -m 'third version'
19:31:29  <SGrover>I joined an all windows shop, and am slowly introducing them to a more enlightened view.. lol
19:31:34  <SGrover>yep..
19:32:02  <SGrover>and get describe --tag to get the tag.. (that's from memory though so may not be right)
19:32:53  <SGrover>er.. "git describe --tag" (not get)
19:33:21  * gloomyjoined
19:33:54  * i1nfusionquit (Remote host closed the connection)
19:34:06  * kakashiA1joined
19:34:20  * i1nfusionjoined
19:34:39  <SGrover>hmm.. OR I can maybe just be updating my package.json file's version property and make use of that...
19:35:57  * b44joined
19:36:15  * aerex_quit (Ping timeout: 256 seconds)
19:36:46  * snowgogglesjoined
19:37:29  * Mattiaslndstrmjoined
19:38:33  * kakashiA1quit (Ping timeout: 246 seconds)
19:39:06  * b44quit (Remote host closed the connection)
19:41:07  * DeltaHeavyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:41:33  * DeltaHeavyjoined
19:41:54  * DeltaHeavyquit (Client Quit)
19:42:05  * ryu_joined
19:42:13  * ryu_quit (Remote host closed the connection)
19:42:20  * DeltaHeavyjoined
19:42:41  * DeltaHeavyquit (Client Quit)
19:43:01  * DeltaHeavyjoined
19:43:27  * DeltaHeavyquit (Client Quit)
19:43:59  * DeltaHeavyjoined
19:44:15  * DeltaHeavyquit (Client Quit)
19:44:16  * iniminojoined
19:44:44  * DeltaHeavyjoined
19:44:48  * ecmabotjoined
19:44:56  * Ryu945quit (Ping timeout: 272 seconds)
19:45:02  * DeltaHeavyquit (Client Quit)
19:45:03  * slajaxquit (Ping timeout: 245 seconds)
19:45:05  <nomoney4u>do people still use response code 204 for empty data?
19:45:35  <nomoney4u>or just send an empty string?
19:45:35  * DeltaHeavyjoined
19:45:48  * DeltaHeavyquit (Client Quit)
19:46:15  * DeltaHeavyjoined
19:46:17  <SGrover>I don't think I've ever used 204. Just a 200 response with empty body to indicate success. (or with a body if I need additional data)
19:46:35  * DeltaHeavyquit (Client Quit)
19:47:03  * DeltaHeavyjoined
19:47:09  * Jervis_quit (Remote host closed the connection)
19:47:22  * DeltaHeavyquit (Client Quit)
19:47:42  * Jervis_joined
19:47:50  * DeltaHeavyjoined
19:48:03  * ppokojowczykjoined
19:48:08  * DeltaHeavyquit (Client Quit)
19:48:14  * keepLearning512joined
19:49:56  * io_onechanged nick to blind_io
19:50:53  * feelextrajoined
19:51:46  <nomoney4u>oh hmm
19:54:51  * jlippsquit (Quit: goodbye)
19:55:11  <feelextra>i'm using express-session to handle session for me. however when i send a request using axios from a browser to log the user out, the server does `req.session.destroy()` which destroys the session from the store but won't clear the browser's cookie when the response arrives.
19:55:13  * gloomyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:55:23  <ppokojowczyk>Hi guys. I'm working on a "FAQ/Documentation page" and I want to keep all items (in form of {title: "", content: ""} ) in a JSON file. But to ease a pain a little I want to write all text with regular new-line break. Is there any way to import/require a JSON file to variable so nodejs sees it as a valid .JSON file?
19:55:41  * b44joined
19:56:50  * gh0st3dquit (Quit: Page closed)
19:56:58  <feelextra>ppokojowczyk: how about read the file with fs module and then parse it using `JSON.parse`?
19:57:59  * Arcaelyxjoined
19:58:14  * xrashquit (Ping timeout: 272 seconds)
19:58:31  * tombusbyquit (Remote host closed the connection)
19:58:46  * tombusbyjoined
19:59:56  * leatherface416quit (Quit: leatherface416)
20:00:08  * EyePulp_joined
20:02:14  * Tristanquit (Disconnected by services)
20:02:18  * ebiquit
20:02:21  * morenoh149quit (Ping timeout: 246 seconds)
20:02:23  * Tristanjoined
20:02:47  * leatherface416joined
20:03:34  * Tristanquit (Disconnected by services)
20:03:42  * Guest53994joined
20:03:44  * am0123quit (Ping timeout: 258 seconds)
20:04:57  <feelextra>Does express-session not handle clearing cookie? it seems `req.session.destroy()` alone didn't clear it, but then res.clearCookie(...) did.
20:05:02  * Gazoooquit (Quit: The Lounge - https://thelounge.chat)
20:05:09  * leatherface416quit (Client Quit)
20:08:31  * leatherface416joined
20:08:40  * paulcarrotyquit (Remote host closed the connection)
20:09:26  * nexiiquit (Ping timeout: 244 seconds)
20:13:07  * gxtjoined
20:16:38  <tsglove>Is there a library that can provide user registration, email validation, authentication, etc?
20:18:25  <feelextra>tsglove: i think Passport is used for that
20:18:36  <tsglove>feelextra, thank you. I'm reading up on its documentation now.
20:19:06  <tsglove>I want to check if it can do the "validation this email hasn't been used before"... and the "validate this username is not taken"... etc
20:19:20  * mezodquit (Remote host closed the connection)
20:20:00  * ed209quit (Remote host closed the connection)
20:20:08  * ed209joined
20:20:14  * aerex_joined
20:20:19  <feelextra>tsglove: i have no experience with it but i think it's a flexible library. i guess just have to find out the exact API it exposes for it.
20:20:36  <tsglove>Yea... I'm reading up now.
20:20:38  <tsglove>Thank you feelextra
20:20:57  * b7hd6yz01quit (Quit: Konversation terminated!)
20:21:30  * brandly_joined
20:21:59  * morenoh149joined
20:23:06  * plasticlequit (Quit: WeeChat 2.2)
20:24:39  * plasticlejoined
20:25:28  * zsocquit (Quit: Leaving)
20:28:54  * i1nfusionquit (Remote host closed the connection)
20:29:08  <samsch>tsglove, Passport is primarily for third party authentication (sign in with Google/FB/OAuth, etc). I don't think it provides anything particularly useful for local username/login (unless integrating that with third party), nor any registration functionality.
20:29:25  * i1nfusionjoined
20:29:49  <tsglove>samsch, I'm a n00b... yet I think they have "over 500 strategies" ... and I think you can hook-them-up middleware-style.
20:30:01  <tsglove>Which could provide the functionality for username/login/role-based
20:30:13  * xrashjoined
20:33:13  <samsch>tsglove, The strategies are implementations for specifics services (FB, Google, Reddit, etc), standards and generics (Oath, "api key", BrowserId, etc), and some random things. It supports username/password, but basically you still are doing all the work you'd do without the library.
20:33:13  * leatherface416quit (Read error: Connection reset by peer)
20:34:49  <tsglove>samsch, ahh... thank you.
20:34:57  <tsglove>That's why I wasn't finding what I was looking for.
20:35:11  * leatherface416joined
20:35:32  <tsglove>So, samsch, do you know a way (library?) to do all of this via node/express? User registration, email verification, password hash and save to database, etc?
20:35:44  <tsglove>I mean, is such a library opensource somewhere?
20:37:14  <samsch>It'd really be tough to make a user login/registration/authentication library which is both generic enough to be applicable to most people and provide features most people need. I'm not familiar with any for Node that aren't part of larger (and bad) frameworks.
20:39:42  <samsch>I can point you at an example app I wrote which implements most of the parts of basic email/password user stuff. It's missing proper email validation and password resets because I didn't want to attach the example to a mail server/service. https://github.com/samsch/express-blog/
20:41:02  <tsglove>samsch, thank you!
20:41:06  <tsglove>On my way!
20:41:35  <tsglove>samsch, I have used this php library in the past,.... which is quite, quite nice --> https://github.com/delight-im/PHP-Auth
20:43:26  * dlwickselljoined
20:46:30  <samsch>tsglove, I've used Symfony's user auth system previously as well. The modern "correct" way to develop Node apps makes it difficult to have certain types of generic functionality without having some kind of overreaching "standard" (or framework). The advantages (organization of and in single-purpose modules, "cheaper" technical debt, flexibility) outweigh the tradeoff of that loss in probably most cases though.
20:48:37  <tsglove>Thanks. I´m still new to all of this... so I am still figuring out what works for me and what doesn´t. Thanks for your help and feedback!
20:48:42  * DeltaHeavyjoined
20:51:43  * nexiijoined
20:52:35  * orbyt_joined
20:54:36  * Mattiaslndstrmquit (Ping timeout: 272 seconds)
20:55:34  * b44quit (Remote host closed the connection)
20:55:50  * Soopamanquit (Quit: Leaving.)
20:55:50  * mezodjoined
20:56:28  * zedsjoined
20:56:39  * zedspart
20:56:43  * leatherface416quit (Quit: leatherface416)
20:57:28  * dastierquit (Remote host closed the connection)
20:59:18  * catbustersquit (Quit: Connection closed for inactivity)
20:59:56  <feelextra>tsglove: sorry that Passport was a bad suggestion given that you're not looking for 3rd party (i should've asked). if it helps, i just implemented email/password -based auth for my Express-based server. i ended up doing email validation myself based on a Regex pattern i googled. it looks like there is package for validation (validator?) that has functions like `isEmail(string)` but i didn't find that it added a lot of value for
20:59:57  <feelextra>it's worth which samsch noted before
21:00:32  * brandly_quit (Ping timeout: 250 seconds)
21:01:47  * b44joined
21:02:51  * mezodquit (Remote host closed the connection)
21:03:11  <gambl0re>how do i pass the index/key? {data.map(this.renderProjects)}
21:03:25  * mezodjoined
21:04:18  * AtumT_joined
21:05:37  * ahmed_elgabrijoined
21:07:28  * AtumTquit (Ping timeout: 250 seconds)
21:08:15  * ahmedelgabriquit (Ping timeout: 252 seconds)
21:09:26  * ahmedelgabrijoined
21:11:48  * ahmed_elgabriquit (Ping timeout: 250 seconds)
21:13:42  * luserx0joined
21:13:51  <netameta>How does package-lock works ? when i remove it i have alot of issues with my app in a linter
21:13:53  * hemstockquit (Read error: Connection reset by peer)
21:14:20  * Ryu945joined
21:14:27  * marthinaljoined
21:14:56  * sattellitequit (Remote host closed the connection)
21:15:33  * BlackBlocjoined
21:15:58  * hemstockjoined
21:17:31  * AtumTjoined
21:17:38  * Aljonequit (Ping timeout: 244 seconds)
21:18:14  * Aljonejoined
21:19:11  * marthinalquit (Ping timeout: 244 seconds)
21:19:17  * AtumT_quit (Ping timeout: 268 seconds)
21:22:50  <ljharb>netameta: that means the linter has been upgraded and is finding more errors. fix them.
21:23:10  <ljharb>gambl0re: don't cross-post.
21:23:24  <gambl0re>ljharb, sorry
21:23:31  * webmarinerjoined
21:23:49  <netameta>how can it find more errors if i can clearly see the modules installed
21:23:55  * BrokenSwordXIIIquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:24:11  <netameta>all of the errors are for missing deps
21:24:35  <ljharb>netameta: ok so first, i don't have enough info to know exactly what the issue is
21:24:43  <ljharb>netameta: but "missing deps" in eslint means "it's not in your package.json"
21:24:51  <ljharb>netameta: if you require/import something, it has to be in package.json
21:25:00  * zsocjoined
21:25:00  * zsocquit (Changing host)
21:25:00  * zsocjoined
21:25:22  * hyperiscojoined
21:25:38  <netameta>thanks, ljharb i will continue checking - its a react project
21:27:03  * BlackBlocpart
21:28:12  * stevenbennerjoined
21:29:24  <netameta>static propTypes / static defaultProptype - hmm
21:31:41  * Dbuggerquit (Ping timeout: 260 seconds)
21:33:07  * keepLearning512quit (Remote host closed the connection)
21:33:20  * BlackBlocjoined
21:33:40  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:33:57  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:34:46  <ljharb>netameta: `propTypes` or `defaultProps` are correct
21:34:51  <ljharb>netameta: `defaultProptype` isn't a thing
21:35:03  <netameta>Yea i misspelled the second
21:35:05  <netameta>sorry
21:35:19  * renloquit (Ping timeout: 268 seconds)
21:36:00  <netameta>But they are not found, i have transform-class-properties in babel, ljharb
21:36:12  <ljharb>what do you mean "not found"
21:36:33  * ppokojowczykquit (Quit: Leaving)
21:36:47  * trevorjoined
21:37:08  <netameta>Sorry i am not specific
21:37:11  <netameta>12:10 'propTypes' is not defined no-undef
21:37:19  * orbyt_joined
21:39:02  <ljharb>share code?
21:39:17  <netameta>ljharb, this used to work before i upgraded deps.
21:39:28  * BlackBlocpart
21:39:41  <netameta>of what ? of eslint config ? babel config ?
21:39:42  <ljharb>yes, i get that. doesn't mean the code is correct.
21:39:47  <ljharb>the actual code that has line 12
21:40:45  * goodenoughjoined
21:40:51  * jcovingtquit (Remote host closed the connection)
21:41:28  * slajaxjoined
21:43:06  <netameta>ljharb, https://pastebin.com/wLvcJwkZ
21:43:27  <netameta>i deleted one line from the top so its should be 11
21:43:38  <ljharb>certainly seems like it should work. what's your eslint config/
21:43:39  <ljharb>?
21:45:33  <netameta>https://pastebin.com/hPEFxzWT is the lint
21:46:15  <netameta>https://pastebin.com/JcN35ny5 is the bable.
21:46:41  <ljharb>all seems fine
21:47:20  <netameta>and https://pastebin.com/nrsAF1zS is package.json
21:47:46  * jamesdrawneekquit (Remote host closed the connection)
21:49:05  * errstquit (Ping timeout: 246 seconds)
21:49:20  * redbisonquit
21:50:12  <ljharb>netameta: your eslint is ancient; it's on v5 now. try updating all of your eslint things
21:50:19  <ljharb>netameta: also, package.json should never pin things, use `^`
21:51:22  <netameta>i tried using newer eslint i had other issues too
21:51:31  <netameta>i will change those and see
21:51:53  * M3TAGH0STquit (Ping timeout: 268 seconds)
21:52:16  * luserx0quit (Quit: Leaving)
21:52:45  <netameta>Ah i remember why i changed back to older, eslint-watch kept searching files in the wrong place
21:54:09  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:54:18  <bonuspunkt>just a wild guess you have `import PropTypes from 'prop-types'` and on 12:10 you want to access PropTypes but its lowercase?
21:54:45  <ljharb>netameta: that's an issue with `eslint-watch`
21:55:00  <ljharb>bonuspunkt: nope
21:55:39  <netameta>bonuspunkt, nope not at all
21:56:18  * eegloojoined
21:58:20  * renlojoined
22:01:20  * nexii_joined
22:02:04  * nexiiquit (Ping timeout: 250 seconds)
22:03:34  <netameta>hmm its not eslint-watch's problem
22:03:49  <ljharb>eslint is fast, just rerun it
22:06:16  * momoterrawjoined
22:06:55  * bogdanieljoined
22:07:13  <sinapinto>ljharb: what's wrong with pinning things? is it just that "npm update" won't work?
22:09:40  <ljharb>sinapinto: 1) it gives you a false sense of security, because it doesn't pin transitive dependencies
22:09:51  <ljharb>sinapinto: so either you have a lockfile (and pinning doesn't matter) or you don't (and pinning doesn't save you)
22:10:02  <ljharb>sinapinto: and 2) it destroys the massive usefulness of semver where you get nonbreaking changes for free
22:10:38  <sinapinto>gotcha
22:10:49  * momoterrawpart
22:11:28  * noraatepernosquit (Quit: noraatepernos)
22:11:38  * hyperiscoquit (Read error: Connection reset by peer)
22:13:20  * feelextraquit (Ping timeout: 250 seconds)
22:13:28  * draigquit (Read error: Connection reset by peer)
22:14:45  * kjartanquit (Read error: Connection reset by peer)
22:14:56  * abaistequit (Read error: Connection reset by peer)
22:15:11  * abaistejoined
22:15:12  * abaistequit (Max SendQ exceeded)
22:15:50  * abaistejoined
22:15:51  * abaistequit (Max SendQ exceeded)
22:16:01  * slajaxquit (Ping timeout: 268 seconds)
22:16:08  * abaistejoined
22:16:09  * abaistequit (Max SendQ exceeded)
22:16:22  * abaistejoined
22:16:23  * abaistequit (Max SendQ exceeded)
22:16:37  * abaistejoined
22:16:38  * abaistequit (Max SendQ exceeded)
22:17:03  <netameta>hmm no watch for linter gave me 2 errors, the old error, and a new one :-)
22:18:04  * kjartanjoined
22:20:23  * eeglooquit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
22:22:42  * orbyt_joined
22:23:53  * i1nfusionquit (Remote host closed the connection)
22:24:22  * i1nfusionjoined
22:24:28  * bitmaskquit (Quit: Gone to sleep...)
22:24:46  * i1nfusionquit (Remote host closed the connection)
22:25:05  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:25:11  * i1nfusionjoined
22:25:56  * i1nfusionquit (Remote host closed the connection)
22:26:22  * i1nfusionjoined
22:27:11  * jamiejacksonquit (Remote host closed the connection)
22:28:12  * iLoVuequit (Quit: Leaving)
22:31:58  * electricarkquit (Ping timeout: 250 seconds)
22:31:58  * electricark__quit (Ping timeout: 250 seconds)
22:32:44  * abaistejoined
22:32:45  * abaistequit (Max SendQ exceeded)
22:32:54  * jamesdrawneekjoined
22:33:06  * jamesdrawneekquit (Remote host closed the connection)
22:33:07  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:33:20  * jamesdrawneekjoined
22:34:52  * shushjoined
22:35:07  * testjoined
22:35:31  * testchanged nick to Guest42137
22:36:22  * reberjoined
22:37:11  * Guest42137part
22:37:17  * momoterrawjoined
22:37:20  <SGrover>GreenJello, re: our version discussion earlier.. I was able to just use package.json. git commit my changes, npm version patch, git push and git push with tags. In the backend code the process.env.npm_package_version variable can be used.
22:37:39  * momoterrawpart
22:37:54  <GreenJello>SGrover, ah yes, if you run it from an npm script
22:38:21  <GreenJello>it won't exist if you invoke the JS file manually, e.g. `node src/app.js` on the command line
22:38:52  <GreenJello>SGrover, you can just require('../package.json').version, if you want a more reliable version of that
22:38:57  <SGrover>For the React front end, using REACT_APP_VERSION=$npm_package_version in my .env gives me the process.env.REACT_APP_VERSION variable in my code.
22:39:47  <GreenJello>yep, just the same restriction of it needing to be an npm script
22:40:07  <SGrover>There are problems with require(package.json) - you get EVERYTHING in there, which could lead to security issues... But yeah, if you are aware of that, require('package.json') is fine, IMO.
22:40:23  <ljharb>what security issues
22:40:23  * ryu_joined
22:40:25  * orbyt_joined
22:40:29  <SGrover>but yeah. My apps are started with npm start.. so it works in my case.
22:40:29  <ljharb>it's a json file
22:41:00  <SGrover>ljharb, references to your repo, specific versions, etc. Hackers can use that info to narrow their attack.
22:41:10  <ljharb>lol what?
22:41:20  <ljharb>i'm really confused, what are you worried about here?
22:41:23  <SGrover>it's a "you might trip today" type warning.. but still...
22:41:30  <ljharb>besides the nebulous "hackers" term that rarely means anything
22:41:40  * ryu_quit (Client Quit)
22:41:54  <SGrover>hehe.. that was my thought too - if someone can read my package.json contents, I think I have a different problem than what those contents are...
22:43:00  * Ryu945quit (Ping timeout: 246 seconds)
22:43:19  <ljharb>do you mean your app's?
22:43:29  <SGrover>yep.. internal app, not public...
22:43:38  * noraatepernosjoined
22:43:46  * not_finger_gunsjoined
22:43:46  <ljharb>lol yeah that's just not worth worrying about then
22:44:07  * singhyuvraj122joined
22:44:20  * jamesdrawneekquit (Remote host closed the connection)
22:44:21  <SGrover>Security by obscurity sucks ass, but it IS still another layer to the security onion.. :)
22:44:53  <ljharb>not a good one
22:45:01  <netameta>hmm why cant it find the darn importer/resolver ..
22:45:03  * AtumTquit (Quit: AtumT)
22:45:39  <SGrover>as long as obscurity is not the ONLY technique implemented...
22:45:51  <ljharb>i think having the obscurity is worse than not having it
22:45:58  <ljharb>because it can give a false sense of security
22:46:01  <SGrover>in most cases yes..
22:46:13  <GreenJello>SGrover, good point though, and webpack doesn't seem to inline the json file
22:46:21  <ljharb>SGrover: in which cases not?
22:46:30  * i1nfusionquit (Remote host closed the connection)
22:46:56  * i1nfusionjoined
22:47:18  <SGrover>In this case.. flip a coin - either include package.json, or pull elements of it where needed. Neither is especially risky for an internal app, but one method fits our current code a little easier than the other...
22:47:37  <SGrover>(i.e. it's already done and there is no compelling reason to do it the other way...)
22:48:15  <GreenJello>SGrover, actually... https://gist.github.com/brigand/f1e032a0a1b8dbeeea0615c858db4e86
22:48:34  <GreenJello>it doesn't work with require(), but does work with `import`
22:49:37  <ljharb>why wouldn't it work with `const { version } = require('./package.json')`?
22:50:09  * not_finger_gunsquit (Quit: WeeChat 2.3)
22:50:37  <GreenJello>ljharb, it doesn't DCE
22:50:57  <SGrover>I'm relying on the existing npm_package_version environment variable that gets set via npm start. I agree that may not work with a command like node /path/myfile.js. But we are using npm start... so all good.
22:51:05  <GreenJello>it still works functionally, but you get the entire JSON file in the bundle
22:51:06  * Daifucojoined
22:51:25  * reberquit (Remote host closed the connection)
22:51:33  <GreenJello>SGrover, just make sure to also set it in the "build" script
22:51:42  <ljharb>ah
22:51:49  * Repsakkajoined
22:51:53  <ljharb>that's just webpack failing to do for CJS what it does for ESM then :-p
22:52:06  <GreenJello>that's always the case in webpack
22:52:14  <GreenJello>they don't even try
22:52:15  <ljharb>until they stop being lazy, yep
22:52:16  <SGrover>you mean the npm run build? :) It should already be set in that case.
22:52:32  <ljharb>SGrover: it's just a bit more brittle to rely on undocumented env vars
22:52:46  <GreenJello>SGrover, yes, you need to set the REACT_APP_VERSION there as well
22:53:14  <GreenJello>SGrover, oh, but also install cross-env and use that. You can't define env vars in the *nix way on windows; it's a syntax error
22:53:40  * not_finger_gunsjoined
22:53:45  <GreenJello>and npm scripts just run in the default shell, so cmd.exe on windows
22:54:44  * ahmedelgabriquit (Quit: WeeChat 2.3)
22:54:52  * Roughyquit (Quit: Meadow Fresh milk)
22:54:53  * BrokenSwordXIIIjoined
22:54:53  <SGrover>ljharb, it's documented... https://docs.npmjs.com/misc/scripts#packagejson-vars
22:54:56  * shushquit (Remote host closed the connection)
22:55:32  * singhyuvraj122quit (Quit: Leaving)
22:55:46  <ljharb>ah
22:57:16  * shushjoined
22:58:11  * Arcaelyxquit (Read error: Connection reset by peer)
22:58:25  <SGrover>GreenJello, create-react-app sets that all up... And my backend code is not doing anything too whacky, and fits within a relatively normal routine... In code I do if (process.env && process.env.npm_package_version) { res.send({version: env.process.npm_package_version})} else req.send('') - so should handle if it's not set.
22:59:00  <netameta>Apparently it seems its something with extend and "extends": "plugin:import/errors"
22:59:10  <SGrover>and the data is display only - not used for anything special. (for QA it's nice to know if I'm on the most recent version or not at a glance, and not dealing with aggressive browser caching...)
22:59:23  * renloquit (Ping timeout: 272 seconds)
23:00:15  * Intelojoined
23:00:16  <Intelo>looking for saas app ideas; too good to be true; 1 week.
23:00:20  * shushquit (Remote host closed the connection)
23:00:35  <ljharb>Intelo: please don't cross-post
23:01:07  <Intelo>ljharb, this question has no one answer. More the audience, more ideas by participants
23:01:18  <Intelo>its not a tech/code question
23:01:27  <Intelo>related to a specific channel
23:01:28  <GreenJello>SGrover, caching is set by your server. If you want a good default caching strategy, use etags
23:01:28  * beeblebrox3joined
23:02:08  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:02:09  * rtnquit (Quit: leaving)
23:02:15  <ljharb>Intelo: understood, but it's still spam for those in multiple channels
23:02:18  <GreenJello>SGrover, if setup properly, it's essentially a hash of the file used as the cache key, and verified on each page load, so you never ever get outdated assets
23:02:19  * shushjoined
23:02:25  <Intelo>ljharb, hm
23:02:33  <Intelo>ok
23:04:16  <SGrover>GreenJello, I'm dealing with the CRA idea of caching. It seems that when I push changes I have to have users close their current tab (or even the browser) and reload to ensure they get the newer file. And even that doesn't always work because Chrome can be a little aggressive in caching if a cache-control header is not set.
23:04:29  * beeblebrox3quit (Quit: Leaving)
23:05:39  * discopatrickjoined
23:06:17  * Arcaelyxjoined
23:08:03  <GreenJello>SGrover, ah, so I have a create-react-app project where I poll to see if there's new code. The HTML file generated by create-react-app has a hash in the script src, so that'll change whenever there's new code. https://gist.github.com/brigand/e3d33c443f1e9d33e9f0f239f5ff6c81
23:11:01  * aerex_quit (Ping timeout: 256 seconds)
23:11:04  * renlojoined
23:12:27  * orbyt_joined
23:12:27  * orbyt_joined
23:14:40  * Repsakkaquit (Quit: Leaving)
23:15:10  * EREVANquit
23:16:58  * electricarkjoined
23:17:10  * electricark__joined
23:18:12  * Daifucoquit (Remote host closed the connection)
23:28:27  * webmarinerquit (Quit: Textual IRC Client: www.textualapp.com)
23:28:47  * shushquit (Remote host closed the connection)
23:29:21  * shushjoined
23:29:55  * mgolquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:30:45  * shushquit (Remote host closed the connection)
23:34:26  * kakashiA1joined
23:38:12  * shushjoined
23:38:22  * shushquit (Remote host closed the connection)
23:38:38  * shushjoined
23:38:42  * kakashiA1quit (Ping timeout: 250 seconds)
23:41:49  * shushquit (Remote host closed the connection)
23:44:23  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:45:50  * sinapintoquit (Quit: WeeChat 2.1)
23:46:21  * electricark__quit (Ping timeout: 246 seconds)
23:46:40  * electricarkquit (Ping timeout: 268 seconds)
23:48:39  * orbyt_joined
23:50:42  * electricarkjoined
23:50:43  * electricark__joined
23:52:07  * morenoh149quit (Ping timeout: 244 seconds)
23:52:57  * marthinaljoined
23:53:13  <darkSeid>Intelo you're looking for people to give you their saas ideas for free, for no reason?
23:53:46  <darkSeid>it's so crazy, it just might work
23:56:22  * Mattiaslndstrmjoined
23:57:34  * marthinalquit (Ping timeout: 258 seconds)
23:59:40  * trevorjoined