00:00:14  * mven_joined
00:01:16  <samsch>ljharb, Constant-time hashing algorithms only cover the password itself. Unless I'm mistaken, that still leaves you open to enumerating the account emails that exist.
00:02:34  * slajaxjoined
00:03:59  <ljharb>samsch: not if you check every email, existing or not, with the same constant-time algorithm
00:04:11  * shushjoined
00:04:15  <ljharb>like, basically the gist is, make sure that a hit and a miss take the same amount of time
00:04:24  * bluezonequit (Quit: Connection closed for inactivity)
00:04:37  * zavaquit (Quit: WeeChat 2.3)
00:05:01  <samsch>Ok, right, so I'm capable of implementing that, but are there any known good packages which handle that for you? (regarding "never roll your own")
00:05:53  * xuibjoined
00:05:54  * carifjoined
00:06:22  * dylancole101joined
00:06:23  <samsch>Out of curiosity, is the login code that Airbnb uses publicly available, or do they use any specific modules for it?
00:06:52  <ljharb>re the first question, that's a good question :-) i usually use passport but i haven't dug into it too deeply
00:07:01  <ljharb>airbnb's stuff is not publicly available nor is it implemented in node
00:08:06  * Gazoooquit (Ping timeout: 250 seconds)
00:08:11  * asd1111joined
00:08:51  * stalledquit (Ping timeout: 246 seconds)
00:09:15  * Gazooojoined
00:09:32  <samsch>I've glanced over Passport several times over the last couple years. Never really got anything from the docs which suggested that it would handle anything like that for you, especially since you directly the supply the lookup+verification function for username/password.
00:09:43  * stemn2joined
00:09:53  <samsch>Not really surprised the code isn't public, but figured it couldn't hurt to ask.
00:11:17  * carifquit (Ping timeout: 255 seconds)
00:11:28  <ljharb>oh, well passport, plus a passport plugin
00:11:40  <ljharb>you might be right tho, it might not exist
00:12:40  * gruceqqquit (Quit: Bye)
00:14:48  * gruceqqjoined
00:15:37  * munsterbergjoined
00:19:00  * CarlenWhitequit (Ping timeout: 244 seconds)
00:19:08  * lancespeelmonjoined
00:20:05  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:20:07  * munsterbergquit (Ping timeout: 240 seconds)
00:20:53  * glijoined
00:21:04  <feelextra>update on jsconfig.json : had to add "checkJs": true, which enables linting of exported values from a module, and "lib": ["es2015"] which un-lints some syntax like Object.values(...) . very useful linting overall imo.
00:22:55  * gliquit (Remote host closed the connection)
00:23:40  * thechitowncubsjoined
00:25:53  * morenoh149quit (Ping timeout: 245 seconds)
00:27:23  * orbyt_joined
00:28:40  * orbyt_quit (Client Quit)
00:29:11  * carifjoined
00:29:34  * ffx_quit (Remote host closed the connection)
00:30:44  * feelextraquit (Ping timeout: 268 seconds)
00:32:55  * bitmaskquit (Quit: Gone to sleep...)
00:34:11  * hc1^quit
00:34:58  * carifquit (Ping timeout: 250 seconds)
00:35:55  * hphs^joined
00:36:25  * shushquit (Remote host closed the connection)
00:36:29  * slajaxquit (Ping timeout: 255 seconds)
00:38:50  * MarkyCquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:40:05  * munsterbergjoined
00:42:20  * FunnyLookinHatquit (Ping timeout: 250 seconds)
00:44:38  * shushjoined
00:44:41  * shushquit (Read error: Connection reset by peer)
00:44:56  * shushjoined
00:45:02  * munsterbergquit (Ping timeout: 255 seconds)
00:47:47  * skyikotquit (Ping timeout: 256 seconds)
00:49:34  * carifjoined
00:53:07  * asd1111quit (Quit: Page closed)
00:53:29  * macwinne_joined
00:56:06  * macwinnerquit (Ping timeout: 246 seconds)
00:56:17  * carifquit (Ping timeout: 255 seconds)
00:57:35  * munsterbergjoined
00:57:44  * Ryanarjoined
00:59:07  * pdubquit
01:01:42  * kakashiALquit (Ping timeout: 246 seconds)
01:02:24  * munsterbergquit (Ping timeout: 246 seconds)
01:02:25  * Kaivoquit (Quit: Lost terminal)
01:02:36  * munsterbergjoined
01:02:40  * munsterbergquit (Client Quit)
01:06:23  * brandonkalquit (Quit: Textual IRC Client: www.textualapp.com)
01:09:42  * carifjoined
01:09:45  * CarlenWhitejoined
01:11:31  * Bajixjoined
01:14:55  * OZ8AAZquit (Remote host closed the connection)
01:15:18  * mat001quit (Remote host closed the connection)
01:17:26  * digitalmousequit (Remote host closed the connection)
01:17:26  * mordofquit (Remote host closed the connection)
01:20:00  * ed209quit (Remote host closed the connection)
01:20:06  * ed209joined
01:23:20  * morenoh149joined
01:24:48  * carifquit (Ping timeout: 250 seconds)
01:24:56  * GrandMoffTarkinjoined
01:26:15  <GrandMoffTarkin>hi, i want to make a website to sell a service as subsription with tiers, so a person would register, pay and use the service, is there something already build to be able to do this or do i have to do it from scratch ?
01:28:30  * shushquit (Remote host closed the connection)
01:29:01  * kakashiALjoined
01:29:07  * lancespeelmonquit (Quit: lancespeelmon)
01:32:11  * shushjoined
01:32:53  * kjartanquit (Read error: Connection reset by peer)
01:33:48  * kakashiALquit (Ping timeout: 245 seconds)
01:34:37  * kjartanjoined
01:38:03  * hendryjoined
01:38:37  <hendry>hi, I have this problem "SyntaxError: Unexpected token" on a machine. Can I assume it's the wrong version of node?
01:39:04  <hendry>https://s.natalian.org/2019-02-22/1550799479_2560x1440.png
01:39:17  <hendry>If so, how is one supposed to upgrade node on a Debian machine?
01:41:14  <samsch>hendry, That's likely a pretty old version of Node, yeah.
01:41:34  <samsch>hendry, IMO, the best way to install node in linux is nvm
01:41:39  <samsch>!nvm @hendry
01:41:40  <ecmabot>hendry: nvm ( http://nvm.sh / #nvm ) lets you change node versions per-user/per-shell. nave ( https://www.npmjs.com/package/nave ) is for per-user/per-SUBshell. n ( https://www.npmjs.com/package/n ) is for a single, global, system-wide node.
01:41:47  * kerrangjoined
01:42:11  * ahmedelgabriquit (Ping timeout: 250 seconds)
01:42:57  <samsch>I'd assume to get latest with Debian's package manager (apt?) you'd probably need to add a repo for Node.
01:44:26  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:46:41  * luistquit (Ping timeout: 255 seconds)
01:47:55  * luistjoined
01:48:57  * thechitowncubsquit (Ping timeout: 246 seconds)
01:49:53  * electronicmajijoined
01:50:16  * jrobesonjoined
01:51:34  * realisationjoined
01:52:44  * orbyt_joined
01:53:16  <jrobeson>I ran into this method called swap() in some old code (for node 0.8.x+). https://paste.fedoraproject.org/paste/V-fd870WJfYHXv9kmeM9TA This has never been anything but the equivalent of .reverse() has it?
01:53:19  <shush>So Gatsby generates HTML pages with the data and components rendered?
01:53:53  <shush>How does React pickup from the initial page load?
01:53:54  * carifjoined
01:54:49  <shush>I'ma go ask in #react
01:55:42  * edrocksjoined
01:57:28  * ubuntuislovedquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:58:08  * promethquit (Quit: My Mac Mini has gone to sleep. ZZZzzz…)
01:59:14  * heyitsramajoined
01:59:27  * cthu|quit (Ping timeout: 268 seconds)
01:59:54  * Elyx0joined
02:01:00  * duckpuppyquit (Remote host closed the connection)
02:02:44  * thechitowncubsjoined
02:03:29  * kerrangquit (Remote host closed the connection)
02:04:11  * duckpuppyjoined
02:04:22  * macwinne_quit
02:08:03  * hendrypart
02:09:11  * trepatudoquit (Ping timeout: 255 seconds)
02:11:18  * Praisequit (Ping timeout: 245 seconds)
02:12:26  * eb0tjoined
02:12:32  * Praisejoined
02:12:32  * Praisequit (Changing host)
02:12:32  * Praisejoined
02:12:49  * shushquit (Remote host closed the connection)
02:12:50  * trepatudojoined
02:13:06  * eb0t_quit (Ping timeout: 264 seconds)
02:15:26  * bitmaskjoined
02:16:22  * carifquit (Ping timeout: 250 seconds)
02:17:52  * mat001joined
02:18:19  * mat001quit (Remote host closed the connection)
02:18:38  * mat001joined
02:23:09  * shushjoined
02:26:47  * DeltaHeavyquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:27:17  * skyikotjoined
02:27:39  * shushquit (Ping timeout: 244 seconds)
02:28:58  * mezodquit (Remote host closed the connection)
02:29:11  * admin123joined
02:29:27  * mezodjoined
02:30:30  * mezodquit (Remote host closed the connection)
02:31:10  * carifjoined
02:31:27  * morenoh149quit (Ping timeout: 240 seconds)
02:32:06  * OrangeManBadquit (Quit: Bye)
02:32:40  * slajaxjoined
02:43:40  * carifquit (Ping timeout: 246 seconds)
02:44:56  * marthinaljoined
02:45:12  * shushjoined
02:46:42  * realisationquit (Ping timeout: 246 seconds)
02:46:59  * realisationjoined
02:48:38  * OrangeManBadjoined
02:48:48  * GnarlyBobquit (Quit: bbiab)
02:49:14  * marthinalquit (Ping timeout: 255 seconds)
02:51:26  * thechitowncubsquit (Remote host closed the connection)
02:51:46  * the_antjoined
02:56:45  * GnarlyBobjoined
02:57:13  * carifjoined
02:58:59  * Stephen66quit (Quit: Connection closed for inactivity)
02:59:42  * GrandMoffTarkinquit
03:04:33  * realisationquit (Ping timeout: 246 seconds)
03:04:45  * igemnacejoined
03:06:18  * slajaxquit (Ping timeout: 245 seconds)
03:06:43  * blackbabajoined
03:09:34  * blackbabaquit (Client Quit)
03:10:30  * realisationjoined
03:12:15  * carifquit (Ping timeout: 246 seconds)
03:12:51  * electronicmajiquit (Quit: My Mac has gone to sleep. ZZZzzz…)
03:13:17  * b44joined
03:14:42  * realisationquit (Ping timeout: 246 seconds)
03:15:45  * OZ8AAZjoined
03:17:26  * Roughyquit (Quit: Meadow Fresh milk)
03:17:37  * shushquit (Ping timeout: 246 seconds)
03:17:46  * b44quit (Ping timeout: 244 seconds)
03:20:01  * kakashiALjoined
03:20:28  * OZ8AAZquit (Ping timeout: 245 seconds)
03:24:38  * kakashiALquit (Ping timeout: 245 seconds)
03:27:34  * nalkrijoined
03:27:45  * carifjoined
03:28:55  * badhatterquit (Remote host closed the connection)
03:29:06  * badhatterjoined
03:32:01  * _auspex_joined
03:38:28  * ahmedelgabrijoined
03:39:08  * bunny3quit (Ping timeout: 250 seconds)
03:41:18  * carifquit (Ping timeout: 245 seconds)
03:44:11  * Adi_joined
03:45:17  * Adi_quit (Client Quit)
03:45:41  * InFlamesjoined
03:46:23  * admin123changed nick to morenoh149
03:48:00  * zsocwjoined
03:48:00  * zsocquit (Disconnected by services)
03:48:45  * igemnacequit (Quit: WeeChat 2.4)
03:49:16  * ahmedelgabriquit (Ping timeout: 264 seconds)
03:50:22  * Sharaaljoined
03:50:44  * igemnacejoined
03:52:47  * rageshkrishnajoined
03:54:44  * Sharaalquit (Ping timeout: 250 seconds)
03:56:28  * zsocwquit (Ping timeout: 246 seconds)
04:03:56  * morenoh149quit (Ping timeout: 255 seconds)
04:03:57  * stemn2quit (Remote host closed the connection)
04:04:45  * _auspex_quit (Ping timeout: 246 seconds)
04:05:14  * Sharaaljoined
04:05:35  * braincrashquit (Quit: bye bye)
04:06:09  * tmquit (Ping timeout: 246 seconds)
04:06:31  * carifjoined
04:08:58  * morenoh149joined
04:09:10  * braincrashjoined
04:09:39  * Sharaalquit (Ping timeout: 246 seconds)
04:09:47  * tmjoined
04:10:06  * Jonno_FTWjoined
04:10:08  <Jonno_FTW>hello
04:10:31  <Jonno_FTW>I do npm install -g expo-cli, but it complains that I'm not root, should I be be doing this as root?
04:10:47  <Jonno_FTW>or should I be setting this up for my own user
04:11:10  * devc_joined
04:11:47  * devcquit (Ping timeout: 256 seconds)
04:11:55  <GreenJello>Jonno_FTW, you can install node with http://nvm.sh which keeps global installs inside your home directory
04:12:19  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:13:01  <GreenJello>Jonno_FTW, installing node globally isn't great for personal computers
04:13:04  <Jonno_FTW>guess I should do that
04:14:54  * Cabanossiquit (Ping timeout: 264 seconds)
04:15:32  * morenoh149quit (Ping timeout: 250 seconds)
04:17:31  * stemn2joined
04:22:43  * morenoh149joined
04:23:25  * keepLearning512joined
04:24:13  * voidvector0joined
04:25:25  * electronicmajijoined
04:25:36  <gambl0r3>hello?
04:26:27  * Pandorianquit (Ping timeout: 246 seconds)
04:27:09  * morenoh149quit (Ping timeout: 246 seconds)
04:27:25  * Cabanossijoined
04:27:47  * stemn2quit (Read error: Connection reset by peer)
04:28:27  * keepLearning512quit (Ping timeout: 258 seconds)
04:32:18  * shushjoined
04:34:39  * morenoh149joined
04:35:28  * carifquit (Ping timeout: 250 seconds)
04:40:05  * stemn2joined
04:41:44  * heyitsramaquit (Remote host closed the connection)
04:41:44  * morenoh149quit (Ping timeout: 255 seconds)
04:43:34  * realisationjoined
04:44:12  * howdoijoined
04:47:30  * edrocksquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:48:13  * edrocksjoined
04:48:39  * morenoh149joined
04:50:08  * carifjoined
04:53:03  * morenoh149quit (Ping timeout: 246 seconds)
04:53:37  * banseljajjoined
05:01:06  * carifquit (Ping timeout: 244 seconds)
05:01:21  * dre_joined
05:02:25  * morenoh149joined
05:03:28  * slajaxjoined
05:05:12  * v01d4lph4joined
05:05:35  * v01d4lph4quit (Read error: Connection reset by peer)
05:05:42  * v01d4lph4joined
05:07:00  * shushquit (Ping timeout: 268 seconds)
05:11:26  * morenoh149quit (Ping timeout: 255 seconds)
05:14:14  * stemn2quit (Remote host closed the connection)
05:17:23  * stemn2joined
05:18:50  * morenoh149joined
05:19:16  * electronicmajiquit (Quit: My Mac has gone to sleep. ZZZzzz…)
05:20:12  * mven_quit (Ping timeout: 259 seconds)
05:20:54  * kakashiALjoined
05:21:29  * carifjoined
05:22:35  * shushjoined
05:24:30  * marthinaljoined
05:25:36  * kakashiALquit (Ping timeout: 246 seconds)
05:25:56  * Ryanarquit (Quit: Ryanar)
05:26:17  * carifquit (Ping timeout: 255 seconds)
05:26:56  * shushquit (Ping timeout: 244 seconds)
05:27:54  * morenoh149quit (Ping timeout: 250 seconds)
05:29:35  * Ryanarjoined
05:29:47  * stemn2quit (Remote host closed the connection)
05:30:04  * led_dark_1quit (Quit: led_dark_1)
05:33:53  * skyikotquit (Remote host closed the connection)
05:34:50  * deltabquit (Ping timeout: 250 seconds)
05:36:27  * slajaxquit (Ping timeout: 272 seconds)
05:38:39  * keepLearning512joined
05:38:48  * ahmedelgabrijoined
05:38:52  * stemn2joined
05:41:50  * deltabjoined
05:43:23  * shushjoined
05:44:44  * keepLearning512quit (Ping timeout: 255 seconds)
05:45:10  * carifjoined
05:45:11  * slajaxjoined
05:46:50  * skyikotjoined
05:47:39  * stemn2quit (Remote host closed the connection)
05:47:48  * shushquit (Ping timeout: 258 seconds)
05:48:30  * ahmedelgabriquit (Ping timeout: 264 seconds)
05:49:21  * xxxx_quit (Remote host closed the connection)
05:50:08  * xxxx_joined
05:50:57  * stemn2joined
05:54:38  * carifquit (Ping timeout: 245 seconds)
05:56:27  * wsierocijoined
05:56:35  * Bajixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:56:37  * paulcarrotyjoined
05:57:21  * wsierociquit (Remote host closed the connection)
06:02:08  * xxxx_quit (Remote host closed the connection)
06:02:18  * lpinjoined
06:02:48  * xxxx_joined
06:03:47  * Bajixjoined
06:04:42  * keepLearning512joined
06:05:03  * keepLearning512quit (Remote host closed the connection)
06:05:30  * keepLearning512joined
06:10:06  * chowmeinedquit (Read error: Connection reset by peer)
06:10:16  * chowmein__joined
06:10:20  * iclonquit (Ping timeout: 244 seconds)
06:10:36  * carifjoined
06:12:56  * b44joined
06:13:55  * shushjoined
06:17:35  * b44quit (Ping timeout: 255 seconds)
06:17:36  * carifquit (Ping timeout: 272 seconds)
06:18:05  * shushquit (Ping timeout: 244 seconds)
06:18:05  * iclonjoined
06:18:44  * milivojjoined
06:20:29  * bothoquit (Quit: ZNC - https://znc.in)
06:21:27  * bothojoined
06:23:29  * ahmedelgabrijoined
06:26:21  * Pandorianjoined
06:27:33  * voidvector0quit (Ping timeout: 245 seconds)
06:31:32  * iclonquit (Ping timeout: 255 seconds)
06:32:16  * iclonjoined
06:33:31  * Ryanarquit (Quit: Ryanar)
06:34:59  * voidvector0joined
06:37:23  * Pandorianquit (Ping timeout: 255 seconds)
06:38:05  * carifjoined
06:39:07  * Cabanossiquit (Quit: Bye, bye...)
06:41:51  * plexigrasjoined
06:42:50  * Cabanossijoined
06:43:39  * carifquit (Ping timeout: 246 seconds)
06:44:48  * shushjoined
06:45:13  * dylancole101quit (Remote host closed the connection)
06:45:40  * cgfbeequit (Remote host closed the connection)
06:47:17  * realisationquit (Ping timeout: 255 seconds)
06:48:23  * slajaxquit (Ping timeout: 245 seconds)
06:49:20  * realisationjoined
06:49:22  * shushquit (Ping timeout: 268 seconds)
06:57:14  * carifjoined
06:59:03  * Jessidhiaquit (Disconnected by services)
06:59:08  * Jessidhiajoined
06:59:31  * skyikotquit (Ping timeout: 256 seconds)
07:01:57  * darkSeidquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:09:12  * sauvinjoined
07:10:14  * carifquit (Ping timeout: 255 seconds)
07:17:05  * zedsjoined
07:17:16  * zedspart
07:19:34  <ljharb>if i want to check the existence of two filenames in a folder, is the cheapest way to do that to use readdir?
07:19:59  * mynickjoined
07:20:22  * mynickchanged nick to Guest56625
07:20:25  * darkSeidjoined
07:21:07  * kpattichajoined
07:21:49  * kakashiALjoined
07:22:19  * marthinalquit (Remote host closed the connection)
07:23:03  * none_joined
07:23:14  * marthinaljoined
07:24:13  * Guest56625quit (Ping timeout: 244 seconds)
07:24:31  * dylancole101joined
07:26:17  * kakashiALquit (Ping timeout: 244 seconds)
07:28:03  * groomjoined
07:28:48  * dylancole101quit (Ping timeout: 250 seconds)
07:33:42  * marthinalquit (Remote host closed the connection)
07:34:19  * marthinaljoined
07:34:35  * digitalmousejoined
07:36:45  * slajaxjoined
07:37:05  * EREVANjoined
07:37:40  * ffx_joined
07:37:54  * InFlamesquit (Ping timeout: 250 seconds)
07:38:08  * darkSeidquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:38:25  * carifjoined
07:43:09  * none_quit (Ping timeout: 250 seconds)
07:45:16  * gambl0r3quit (Ping timeout: 250 seconds)
07:45:51  * bitmaskquit (Quit: Gone to sleep...)
07:46:28  * slajaxquit (Quit: ZNC - 1.6.0 - http://znc.in)
07:46:29  * gideonmarkedjoined
07:46:45  * slajaxjoined
07:46:46  * mven_joined
07:47:19  * kjartanquit (Read error: Connection reset by peer)
07:47:55  * zavajoined
07:48:31  * irc_viewer_testjoined
07:48:36  * marthinalquit (Remote host closed the connection)
07:48:45  * shushjoined
07:49:35  * shushquit (Remote host closed the connection)
07:49:52  * shushjoined
07:50:00  * supernov1hjoined
07:51:12  * slajaxquit (Ping timeout: 246 seconds)
07:51:36  * kjartanjoined
07:51:58  * slajaxjoined
07:52:58  * mven_quit (Ping timeout: 245 seconds)
07:54:28  * Jessidhiaquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:55:49  * irc_viewer_testquit (Quit: irc_viewer_test)
07:56:27  * slajaxquit (Ping timeout: 240 seconds)
07:56:39  * Jessidhiajoined
07:59:06  * chargenjoined
07:59:47  * marthinaljoined
08:02:24  * carifquit (Ping timeout: 246 seconds)
08:03:22  * kpattichaquit (Ping timeout: 268 seconds)
08:04:09  * slajaxjoined
08:05:19  * Booster2ooojoined
08:06:59  * Sharaaljoined
08:07:10  * gxtquit (Ping timeout: 272 seconds)
08:08:44  * slajaxquit (Ping timeout: 255 seconds)
08:11:26  * Sharaalquit (Ping timeout: 255 seconds)
08:11:52  * keepLearning512quit (Remote host closed the connection)
08:11:56  * slajaxjoined
08:11:59  * sQVejoined
08:12:22  * tempuserjoined
08:13:01  <tempuser>Why is NodeJS so difficult to install on Ubuntu? It's been difficult for me, to say the least.
08:13:08  <ljharb>tempuser: don't install node with apt
08:13:08  <tempuser>Ubuntu 18.10
08:13:14  <tempuser>Understood.
08:13:30  * Venemojoined
08:13:31  <tempuser>So, can I ask you about NodeSource?
08:13:37  <tempuser>That's not a good thing, right?
08:13:45  <tempuser>https://github.com/nodesource/distributions#debinstall
08:14:06  <tempuser>I did follow those instructions, and "node" and "npm" commands were available.
08:14:21  <tempuser>But doing "npm install -g expo-cli" gave errors
08:14:24  <geirha>just grab a tarball, extract somwhere in your homedir, add its bin/ dir to PATH
08:14:42  <tempuser>Sure thing, I did that.
08:14:51  <tempuser>./configure
08:14:52  <tempuser>make
08:15:01  <geirha>nah, just grab a prebuilt one
08:15:17  * CrazyTux[m]quit (Quit: This computer has gone to sleep)
08:15:25  * kakashiALjoined
08:15:26  <tempuser>Where at?
08:15:32  <tempuser>This page links to a tarball: https://nodejs.org/en/
08:15:48  <geirha>https://nodejs.org/dist/latest-v10.x/ e.g. the *-linux-x64.tar.xz if you're on 64-bit linux
08:16:17  <tempuser>Oh right, it IS in that bin/ directory.
08:16:28  * slajaxquit (Ping timeout: 250 seconds)
08:16:55  <tempuser>But where is the "npm" command? I do indeed see it along with "node" in that bin/ directory, but I can't execute it.
08:17:18  <geirha>did you add it to PATH? what does ''type npm'' say?
08:17:23  <tempuser>I do "./npm", and it says "/usr/bin/env: 'node': no such file or directory
08:17:34  <geirha>right, you haven't added it to PATH yet
08:17:35  <tempuser>I did not put it in PATH
08:17:39  <tempuser>Ok.
08:17:42  <ljharb>tempuser: nodesource is good, but don't use apt.
08:17:45  <ljharb>tempuser: whatsoever
08:17:53  <ljharb>tempuser: download it like geirha is saying, or use http://nvm.sh
08:17:58  <ljharb>also npm comes with node, only
08:18:01  <ljharb>so `apt-get remove` it
08:18:21  <geirha>since you're in the bin dir, PATH=$PWD:$PATH will set it for the current session
08:18:25  * milivojquit (Quit: milivoj)
08:18:35  <tempuser>Ok.
08:19:17  <tempuser>Great. "npm -v" works. Now I'll try to install expo.io
08:19:45  * dylancole101joined
08:19:49  * Elyx0quit (Read error: Connection reset by peer)
08:19:53  <geirha>to make it permanent, you'll need to prepend that dir to PATH in .bash_profile or .profile, whichever exists
08:20:05  * lundibundijoined
08:20:07  <tempuser>geirha: of course
08:20:09  <tempuser>jk
08:20:28  <tempuser>Great. The expo and expo-cli command is there.
08:20:38  <tempuser>Thanks a bunch.
08:20:41  * Elyx0joined
08:21:40  <tempuser>I guess that's a interesting question: why is nodesource good, but "don't use apt"?
08:21:46  <tempuser>Like it says
08:22:37  <tempuser>Oh well, I'm just curious, and that's not necessary.
08:23:45  <ljharb>tempuser: don't use apt because node is not officially distributed on apt anywhere
08:23:54  <ljharb>tempuser: if you insist on using apt, nodesource is a reliable repo
08:23:58  <ljharb>tempuser: but, don't use apt :-)
08:24:07  <ljharb>install software only from official distribution channels.
08:24:15  * slajaxjoined
08:24:22  * Pandorianjoined
08:24:39  <tempuser>Sure thing.
08:25:11  <tempuser>Yeah this tarball thing is way more satisfying. I'm not going to use that nodesource stuff
08:25:52  <ljharb>look into nvm too; it'll make upgrading and using multiple versions much easier
08:26:03  <ljharb>(and nvm installs from the only official source, the website)
08:26:08  <tempuser>Now to continue following the instructions at https://expo.io/learn !
08:26:11  * carifjoined
08:26:47  <tempuser>Never heard of it, but now I know. thanks
08:27:30  * voidvector0quit (Ping timeout: 264 seconds)
08:28:06  * Bajixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:28:15  * helofrommejoined
08:29:00  * slajaxquit (Ping timeout: 246 seconds)
08:29:10  <helofromme>yo! Does anyone have experience with knex migrations? does it lock the db from read/write during migrations?
08:29:35  * Bajixjoined
08:30:21  * lundibundiquit (Ping timeout: 244 seconds)
08:31:06  * carifquit (Ping timeout: 264 seconds)
08:32:46  * milivojjoined
08:37:15  * tempuserquit (Quit: Page closed)
08:39:09  * mat001quit (Ping timeout: 258 seconds)
08:39:14  * Jetimonjoined
08:42:14  * slajaxjoined
08:45:09  * hussamquit (Quit: Connection closed for inactivity)
08:45:36  * carifjoined
08:46:21  * Sharaaljoined
08:46:47  * slajaxquit (Ping timeout: 240 seconds)
08:49:44  * gxtjoined
08:51:10  * lundibundijoined
08:53:04  * keepLearning512joined
08:55:16  * shushquit (Remote host closed the connection)
08:55:47  * carifquit (Ping timeout: 240 seconds)
08:57:27  * darkSeidjoined
08:59:16  * hussamjoined
09:01:21  * lundibundiquit (Quit: WeeChat 2.4)
09:02:40  * lundibundijoined
09:03:00  * setpilljoined
09:03:21  * edrocksquit (Read error: Connection reset by peer)
09:03:56  * realisationquit (Ping timeout: 244 seconds)
09:08:37  * sQVequit (Quit: Bye!)
09:08:38  * floppydhjoined
09:08:44  * realisationjoined
09:09:06  * rageshkrishnaquit (Ping timeout: 244 seconds)
09:09:18  <floppydh>any recommendation for a structured logging lib that I can pass arbitrary (metadata) objects/info that can be optionally passed through a transport?
09:09:32  * paulcarrotyquit (Remote host closed the connection)
09:11:39  * xx_voidwatch_xxquit (Quit: Leaving)
09:12:00  * slajaxjoined
09:12:04  * shushjoined
09:14:23  * howdoiquit (Quit: Connection closed for inactivity)
09:16:16  * shushquit (Ping timeout: 250 seconds)
09:16:36  * slajaxquit (Ping timeout: 246 seconds)
09:17:59  * CrazyEddyquit (Ping timeout: 268 seconds)
09:18:55  * slajaxjoined
09:18:56  * kakashiALquit (Ping timeout: 255 seconds)
09:20:00  * realisationquit (Ping timeout: 272 seconds)
09:20:15  * carifjoined
09:20:16  * milivojquit (Quit: milivoj)
09:20:30  * renn0xtk9joined
09:20:48  * gideonmarkedquit (Remote host closed the connection)
09:23:36  * slajaxquit (Ping timeout: 246 seconds)
09:23:47  * amarashovjoined
09:25:16  * grr12314joined
09:25:21  * carifquit (Ping timeout: 246 seconds)
09:27:07  * slajaxjoined
09:27:36  * ahmedelgabriquit (Quit: WeeChat 2.4)
09:28:03  * alem0larsjoined
09:28:47  * Notijoined
09:31:03  * Sharaalquit (Remote host closed the connection)
09:31:19  * Sharaaljoined
09:31:26  * amarasho1joined
09:31:47  * slajaxquit (Ping timeout: 240 seconds)
09:31:55  * alem0lars_joined
09:32:21  * dylancole101quit (Remote host closed the connection)
09:33:52  * amarashovquit (Ping timeout: 246 seconds)
09:34:24  * slajaxjoined
09:34:27  * erg0s1quit (Ping timeout: 240 seconds)
09:35:27  * alem0larsquit (Ping timeout: 240 seconds)
09:36:49  * sQVejoined
09:37:29  * renn0xtk9quit (Quit: Konversation terminated!)
09:37:31  * monkeystancejoined
09:37:38  <joepie91>PSA: "The Node.js project will release new versions of all supported release lines on, or shortly after, Wednesday, February 27th, 2019 UTC. These releases will incorporate at least two security fixes specific to Node.js, the highest severity of which is 'low'."
09:37:39  * ahmedelgabrijoined
09:38:30  * lemoinemchanged nick to Guest17583
09:38:30  * Guest17583quit (Killed (cherryh.freenode.net (Nickname regained by services)))
09:38:32  * lemoinemjoined
09:38:39  <joepie91>helofromme: no, not that I am aware of, but it *does* run migrations in a transaction
09:39:06  * alphazbjoined
09:39:21  * stalledjoined
09:40:17  <helofromme>joepie91: seems like the problem is that i did add a new column with a default value that is a full table rewrite. Not sure why it took 20-30 secs thou
09:40:44  <joepie91>it's possible that your database itself may lock reads/writes of course, when changing a table
09:41:26  * slajaxquit (Ping timeout: 255 seconds)
09:42:53  * realisationjoined
09:43:08  * xelimjoined
09:43:08  * Nicmavrquit (Read error: Connection reset by peer)
09:43:23  * carifjoined
09:44:56  * Nicmavrjoined
09:45:18  * stalledquit (Ping timeout: 246 seconds)
09:47:19  * helofrommequit (Ping timeout: 256 seconds)
09:48:05  * carifquit (Ping timeout: 246 seconds)
09:48:32  * Bajixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:52:08  * Bajixjoined
09:52:50  * EREVAN_joined
09:54:13  * EREVANquit (Ping timeout: 245 seconds)
09:54:13  * hphs^quit (Ping timeout: 245 seconds)
09:55:09  * hphs^joined
09:55:10  * hphs^quit (Max SendQ exceeded)
09:55:24  * hphs^joined
09:55:25  * hphs^quit (Max SendQ exceeded)
09:55:37  * hphs^joined
09:55:38  * hphs^quit (Max SendQ exceeded)
09:55:51  * hphs^joined
09:55:52  * hphs^quit (Max SendQ exceeded)
09:56:00  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
09:56:05  * hphs^joined
09:56:06  * hphs^quit (Max SendQ exceeded)
09:56:19  * OZ8AAZjoined
09:59:31  * xelimquit (Remote host closed the connection)
10:00:38  * darkSeidjoined
10:01:18  * mezodjoined
10:03:05  * carifjoined
10:05:01  * Gazoooquit (Quit: The Lounge - https://thelounge.chat)
10:07:00  * Gazooojoined
10:07:03  * banseljajquit (Quit: Connection closed for inactivity)
10:07:30  * supernov1hquit (Quit: Lost terminal)
10:08:40  * supernov1hjoined
10:09:49  * JaredCEjoined
10:10:22  * stalledjoined
10:11:49  * captain_morganquit (Remote host closed the connection)
10:12:01  * captain_morganjoined
10:15:05  * dustinmquit (Quit: Leaving)
10:16:38  * lucid-lullabyjoined
10:17:13  * dustinmjoined
10:17:51  * carifquit (Ping timeout: 246 seconds)
10:17:56  * dustinmquit (Remote host closed the connection)
10:18:40  * stalledquit (Ping timeout: 246 seconds)
10:20:00  * ed209quit (Remote host closed the connection)
10:20:08  * ed209joined
10:20:23  * dustinmjoined
10:21:37  * tymczenkojoined
10:21:59  * tymczenkoquit (Client Quit)
10:22:23  * shushjoined
10:22:26  * b44joined
10:22:55  * mezodquit (Remote host closed the connection)
10:23:25  * mezodjoined
10:24:24  <MJCD>usually depending on the db and tables schema's
10:24:57  * enoqjoined
10:24:58  <MJCD>anything with concurrency and no locking is categorically 'broken' xD
10:25:25  * mezodquit (Remote host closed the connection)
10:26:18  * Pandorianquit (Ping timeout: 245 seconds)
10:26:27  * Pandorianjoined
10:26:27  * shushquit (Ping timeout: 240 seconds)
10:26:28  * Treefingersjoined
10:28:12  * Treefingersquit (Client Quit)
10:28:44  * Glasstreejoined
10:30:36  <joepie91>nah, lock-free concurrency is a thing
10:30:41  <joepie91>a difficult thing, but a thing nevertheless :)
10:32:07  <pagios>hi all, i would like to send a get request, and THEN after the request succeeds send another request, can i use the same request object? like this? https://pastebin.com/hXLXWpcW
10:33:15  <pagios>or should i create two different requests with two different options ?
10:34:24  * OZ8AAZquit
10:35:22  <pagios>joepie91, hi
10:35:49  * bokyquit (Ping timeout: 246 seconds)
10:37:54  * carifjoined
10:39:55  * Aljonejoined
10:42:06  * carifquit (Ping timeout: 244 seconds)
10:43:12  * mezodjoined
10:43:59  * bokyjoined
10:43:59  * bokyquit (Changing host)
10:43:59  * bokyjoined
10:44:55  * stalledjoined
10:45:08  * dre_quit (Remote host closed the connection)
10:45:12  * realisationquit (Ping timeout: 244 seconds)
10:46:23  * Bajixquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:48:43  * saladjoined
10:52:14  * zedsjoined
10:52:25  * zedspart
10:52:56  * shushjoined
10:54:03  * kpattichajoined
10:56:30  * realisationjoined
10:56:34  <pagios>can i use an axios.get()....then( axios.get()... ? SAME OBJECT?
10:57:29  * shushquit (Ping timeout: 255 seconds)
11:03:08  * tombusbyquit (Remote host closed the connection)
11:03:51  * tombusbyjoined
11:04:01  * ceborquit (Quit: bye!)
11:04:54  * ceborjoined
11:06:16  * banseljajjoined
11:06:21  * paulcarrotyjoined
11:11:02  * glijoined
11:11:19  * gliquit (Read error: Connection reset by peer)
11:13:34  * ahmed_elgabrijoined
11:14:50  * Glasstreequit (Read error: Connection reset by peer)
11:15:30  * kakashiALjoined
11:15:47  * Glasstreejoined
11:15:52  * ahmedelgabriquit (Ping timeout: 250 seconds)
11:17:17  * sQVequit (Ping timeout: 255 seconds)
11:18:46  * badhatterquit (Remote host closed the connection)
11:19:20  * badhatterjoined
11:20:26  * kakashiALquit (Ping timeout: 255 seconds)
11:24:44  * mohabaksjoined
11:26:55  * renn0xtk9joined
11:26:57  * plutoniixquit (Quit: Leaving)
11:27:32  * wildermindjoined
11:29:02  <MJCD>? SAME OBJECT ?
11:29:10  * promethjoined
11:29:15  * lundibundiquit (Ping timeout: 246 seconds)
11:29:26  <MJCD>joepie91, sounds like it would just end horribly 100% of the time, eventually
11:29:39  <MJCD>I mean you can do other abstractions
11:29:46  <MJCD>like read/write transactional tables
11:29:49  <Sharaal>arg, why is the binding of values in sql queries not a standard :( postgres $1, $2, and so on, mysql ?, ? and so on, are there something other dialects? ^^
11:30:42  * xxxx_quit (Remote host closed the connection)
11:31:21  * xxxx_joined
11:31:47  <MJCD>but the requirement of being able to essentially either read/write asynchronously requires some kind of abstraction - directly done it is just going to error our the moment 2 people save something at the same time
11:32:05  * rakmjoined
11:32:06  <MJCD>and result in undetectable data loss
11:32:50  <MJCD>which could present as really really random bugs that are difficult to nail down
11:35:19  * JZA-quit (Ping timeout: 246 seconds)
11:35:19  * JZA-quit (Ping timeout: 246 seconds)
11:36:57  * JZAjoined
11:37:37  * slajaxjoined
11:38:03  * kpattichaquit (Remote host closed the connection)
11:38:29  * kpattichajoined
11:38:36  <grr12314>Sharaal there are named arguments :name in a lot of libraries
11:38:51  * saladquit (Quit: salad)
11:39:02  <grr12314>also it wouldnt surprise me if your postgres library also supports ?
11:39:54  <Sharaal>true, good if writing the query yourself, but currently I try to build a small abstraction where the better readability of named params is not rly needed
11:40:27  * quakephilquit (Read error: Connection reset by peer)
11:40:41  * lundibundijoined
11:41:00  <Sharaal>I currently just replace variables to $ and at the end I replace all $ to numbered $1, $2 and so on
11:41:29  <Sharaal>For MySQL I can replace variables to ? and omit the replace at the end
11:41:45  * Glasstreechanged nick to Glasstree[Away]
11:42:02  * adgtlquit (Ping timeout: 244 seconds)
11:42:15  <grr12314>instead of reinventing the wheel get some library that laready supports both dbs in the same way
11:42:27  <grr12314>knex or something
11:43:32  * trevorjoined
11:43:33  <Sharaal>knex is the reason I search for alternatives currently :) I don't think knex is good readable and testable. But its only a POC, won't using that in production but want to research some approaches
11:44:06  * tarkusjoined
11:44:08  * kpattich_joined
11:46:36  * kpattichaquit (Ping timeout: 258 seconds)
11:46:58  * adgtljoined
11:47:23  * enoqquit (Quit: enoq)
11:47:47  * quakephiljoined
11:48:23  * enoqjoined
11:48:52  * keepLearning512quit (Remote host closed the connection)
11:50:08  * mven_joined
11:50:39  * dylancole101joined
11:50:52  * gamelasterjoined
11:54:52  * mven_quit (Ping timeout: 250 seconds)
11:55:09  * hussamquit (Quit: Connection closed for inactivity)
11:56:10  * JZAquit (Ping timeout: 250 seconds)
11:56:53  * adgtlquit (Ping timeout: 255 seconds)
11:57:40  * mezodquit (Remote host closed the connection)
11:59:23  * tkore1joined
11:59:36  * kjartanquit (Read error: Connection reset by peer)
11:59:38  * trevorquit (Ping timeout: 245 seconds)
12:00:16  * shushjoined
12:01:32  * VioletPixelquit (Read error: Connection reset by peer)
12:01:56  * kjartanjoined
12:02:14  * VioletPixeljoined
12:04:36  * shushquit (Ping timeout: 246 seconds)
12:05:42  * gamelasterquit (Ping timeout: 250 seconds)
12:06:57  * tkore1quit (Ping timeout: 268 seconds)
12:08:21  * mohabakspart
12:08:57  * xxxx_quit (Remote host closed the connection)
12:09:18  * keepLearning512joined
12:09:19  * Ryanarjoined
12:09:57  * keepLearning512quit (Read error: Connection reset by peer)
12:10:09  * keepLearning512joined
12:10:26  * xxxx_joined
12:10:28  * slajaxquit (Ping timeout: 250 seconds)
12:11:57  * none_joined
12:13:32  * Glasstree[Away]quit (Ping timeout: 272 seconds)
12:14:19  * Notiquit (Quit: Konversation terminated!)
12:16:53  * Sharaalquit (Remote host closed the connection)
12:17:38  * Sharaaljoined
12:18:03  * gregf_quit (Ping timeout: 256 seconds)
12:20:12  * dylancole101quit (Remote host closed the connection)
12:20:43  * tarkusquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:23:50  * paulcarrotyquit (Remote host closed the connection)
12:24:04  * paulcarrotyjoined
12:24:17  * voidvector0joined
12:25:35  * dylancole101joined
12:25:35  * mezodjoined
12:26:18  * Pandorianquit (Ping timeout: 245 seconds)
12:26:39  * CrazyEddyjoined
12:27:56  * gxtquit (Ping timeout: 255 seconds)
12:28:00  * dylancole101quit (Remote host closed the connection)
12:28:15  * dylancole101joined
12:29:13  * the_antquit (Quit: the_ant)
12:29:18  * gxtjoined
12:31:16  * shushjoined
12:35:35  * shushquit (Ping timeout: 255 seconds)
12:37:30  * gxtquit (Ping timeout: 246 seconds)
12:37:39  * gregf_joined
12:38:02  * trevorjoined
12:38:49  * gxtjoined
12:40:52  <dka>How to clean node_modules folder of packages that are not in package.json on codesandbox.io ?
12:41:01  <dka>I have a dependency and it keep importing an old one
12:41:40  * xxxx_quit (Remote host closed the connection)
12:42:06  * xxxx_joined
12:43:14  <dka>Could not find module in path: '@babel/runtime/7.0.0-rc.1/core-js/object/define-property' relative to '/node_modules/@babel/runtime/7.0.0-rc.1/helpers/defineProperty.js'
12:43:33  <dka>I keep updating to @babel/[email protected] but this error come up
12:45:10  * tkore1joined
12:50:10  * AtumTjoined
12:52:14  * gxtquit (Ping timeout: 255 seconds)
12:53:19  * Ryanarquit (Quit: Ryanar)
12:53:23  * gxtjoined
12:54:24  * Elyx0quit (Quit: Elyx0)
12:54:45  * bunny3joined
12:56:25  * supernov1hquit (Read error: Connection reset by peer)
12:59:10  * marthinalquit (Remote host closed the connection)
13:00:09  * RRjoined
13:00:36  * realisationquit (Ping timeout: 268 seconds)
13:00:37  * harsh_joined
13:01:13  * harsh_quit (Client Quit)
13:02:55  * shushjoined
13:04:48  * RRpart
13:06:19  * tkore1quit (Ping timeout: 246 seconds)
13:06:41  * hvemvetquit (Quit: Lost terminal)
13:06:42  * bravoslojoined
13:07:20  * alem0lars_quit (Remote host closed the connection)
13:08:39  * amarasho1quit (Ping timeout: 246 seconds)
13:10:29  * feelextrajoined
13:10:33  * renn0xtk9quit (Quit: Konversation terminated!)
13:11:24  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
13:11:42  * bravosloquit (Quit: Leaving)
13:15:49  * Kaivojoined
13:15:58  * shushquit (Remote host closed the connection)
13:16:14  * shushjoined
13:16:24  * kakashiALjoined
13:18:53  * Glasstreejoined
13:21:15  * kakashiALquit (Ping timeout: 246 seconds)
13:26:08  * shushquit (Remote host closed the connection)
13:30:13  * enoqquit (Quit: enoq)
13:30:47  * mezodquit (Remote host closed the connection)
13:31:30  * mezodjoined
13:33:30  * gxtquit (Ping timeout: 246 seconds)
13:34:30  * Soopamanjoined
13:34:44  * gxtjoined
13:35:54  * julianduquequit (Ping timeout: 255 seconds)
13:36:27  * shushjoined
13:36:50  * alexge50joined
13:38:49  * julianduquejoined
13:40:53  * shushquit (Ping timeout: 245 seconds)
13:42:15  * FunnyLookinHatjoined
13:43:32  * julianduquequit (Ping timeout: 255 seconds)
13:44:22  * electronicmajijoined
13:45:03  * lundibundiquit (Ping timeout: 246 seconds)
13:45:07  * rakmquit (Remote host closed the connection)
13:45:47  * Roughyjoined
13:45:52  * rakmjoined
13:48:38  * mezodquit (Remote host closed the connection)
13:49:01  * mezodjoined
13:50:14  * lundibundijoined
13:52:34  * Soopamanquit (Quit: Leaving.)
13:52:46  * badhatterquit (Remote host closed the connection)
13:53:12  * bravoslojoined
13:53:41  * Soopamanjoined
13:56:05  * rakmquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
13:56:58  * Aquazijoined
13:57:34  * kpattich_quit (Remote host closed the connection)
13:58:19  * Glasstreechanged nick to Glasstree[Away]
13:58:19  * kpattich_joined
14:00:22  * Glasstree[Away]changed nick to Glasstree
14:00:40  * sQVejoined
14:01:26  * badhatterjoined
14:06:39  * leatherface416joined
14:07:02  * shushjoined
14:07:03  * banseljajquit (Quit: Connection closed for inactivity)
14:07:35  * Mattiaslndstrmquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:08:15  * slajaxjoined
14:11:08  * ubuntuislovedjoined
14:11:18  * shushquit (Ping timeout: 245 seconds)
14:15:14  * mappum_quit (Quit: Connection closed for inactivity)
14:17:41  * Jetimon_joined
14:18:06  * ClosetSlayerjoined
14:19:09  * sattellitejoined
14:19:30  * ClosetSlayerquit
14:20:24  * EREVAN_quit (Ping timeout: 246 seconds)
14:20:27  * Jetimonquit (Ping timeout: 240 seconds)
14:20:34  * kpattich_quit (Remote host closed the connection)
14:20:57  * kpattich_joined
14:21:28  * EREVANjoined
14:23:05  * kpattich_quit (Remote host closed the connection)
14:23:21  * R0b0t-Xjoined
14:23:29  * kpattich_joined
14:23:37  * Soopamanquit (Quit: Leaving.)
14:23:58  * Notijoined
14:23:58  * R0b0t-Xquit (Disconnected by services)
14:23:58  * X-51joined
14:24:18  * Pandorianjoined
14:24:26  * Soopamanjoined
14:25:33  * marthinaljoined
14:25:55  * marthinalquit (Remote host closed the connection)
14:26:01  * marthinaljoined
14:26:38  * kpattich__joined
14:26:44  * voidvector0quit (Ping timeout: 255 seconds)
14:27:28  * Glasstreechanged nick to Glasstree[Away]
14:27:38  * monkeystancequit (Ping timeout: 255 seconds)
14:29:08  * kpattich_quit (Ping timeout: 259 seconds)
14:31:21  * CrazyTux[m]joined
14:31:47  * OrangeManBadquit (Ping timeout: 250 seconds)
14:31:48  * GreenJelloquit (Quit: Bye)
14:31:49  <Sharaal>Puh, getting GitLab NPM Registry working after 6 hours of trial&error :)
14:32:08  * Glasstree[Away]quit (Ping timeout: 255 seconds)
14:32:30  * OrangeManBadjoined
14:34:43  * darkSeidjoined
14:35:09  * GreenJellojoined
14:35:14  <joepie91>sounds like verdaccio would've been easier? :P
14:36:23  * mat001joined
14:36:38  <Sharaal>I think so :( But our OPs was happy to have finally an argument to get GitLab Premium license, so we decided to use that NPM registry
14:37:30  * amarasho1joined
14:37:42  * FunnyLookinHatquit (Ping timeout: 264 seconds)
14:38:14  * shushjoined
14:39:28  * mven_joined
14:39:31  <Sharaal>If someone is interested in and need also setting up GitLab NPM registry, maybe this helps: https://gist.github.com/Sharaal/33249a3b37ecf6f3a91374d254cfe03d
14:40:00  * slajaxquit (Ping timeout: 246 seconds)
14:40:48  * joepie91is not a fan of open-core software, prefers real open-source
14:42:34  * shushquit (Ping timeout: 250 seconds)
14:43:35  * tarkusjoined
14:48:28  <joepie91>useful: https://gtfobins.github.io/ -- nicely illustrates the risks of calling external binaries with user-supplied input
14:50:43  * orbyt_joined
14:51:43  * darkSeidquit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
14:53:07  <grr12314>thats nonsense
14:53:22  <grr12314>every program in there has the suid flag wtf
14:54:00  * darkSeidjoined
14:54:49  * Jetimon_quit (Ping timeout: 246 seconds)
14:55:10  * dylancole101quit (Remote host closed the connection)
14:55:24  * kerrangjoined
14:55:47  * rakmjoined
14:55:53  * grr12314quit (Remote host closed the connection)
14:55:54  <joepie91>grr12314: see here: https://github.com/GTFOBins/GTFOBins.github.io/issues/35
14:56:02  * amarashovjoined
14:57:51  * amarasho1quit (Ping timeout: 246 seconds)
14:59:58  * keepLearning512quit (Remote host closed the connection)
15:00:26  * darkSeidquit (Ping timeout: 244 seconds)
15:02:30  * Mattiaslndstrmjoined
15:02:31  * rakmquit (Remote host closed the connection)
15:03:25  * tkore1joined
15:03:41  * dylancole101joined
15:05:00  * dylancole101quit (Remote host closed the connection)
15:06:09  * Jetimon_joined
15:06:24  * ozettejoined
15:06:28  * rakmjoined
15:08:24  * rakm_joined
15:08:33  * rakmquit (Remote host closed the connection)
15:09:29  * adammquit (Ping timeout: 255 seconds)
15:11:30  * ffx_quit (Remote host closed the connection)
15:11:58  * ffx_joined
15:14:38  * tkore1quit (Ping timeout: 250 seconds)
15:16:22  * ffx_quit (Ping timeout: 250 seconds)
15:17:18  * kakashiALjoined
15:17:28  * electronicmajiquit (Quit: My Mac has gone to sleep. ZZZzzz…)
15:17:40  * lundibundiquit (Ping timeout: 250 seconds)
15:17:43  * keepLearning512joined
15:19:04  * shushjoined
15:21:23  * tkore1joined
15:21:51  * FozzWorthjoined
15:22:00  * kakashiALquit (Ping timeout: 250 seconds)
15:25:53  * dlwickselljoined
15:28:19  * Mattiaslndstrmquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:28:50  * feelextraquit (Ping timeout: 255 seconds)
15:29:17  * orbyt_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:31:20  * pdubjoined
15:32:38  * TorpedoSkylinejoined
15:32:39  * TorpedoSkylinequit (Read error: Connection reset by peer)
15:32:58  * rakm_quit (Ping timeout: 245 seconds)
15:33:05  * Notiquit (Quit: Konversation terminated!)
15:33:39  * rakmjoined
15:35:39  * dylancole101joined
15:36:35  * hussamjoined
15:36:46  * tarkusquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:37:39  <ThePendulum>hmm I really need to improve the way I'm storing these nested lists
15:38:02  * v01d4lph4quit (Remote host closed the connection)
15:40:12  * dylancole101quit (Ping timeout: 246 seconds)
15:43:42  * DeltaHeavyjoined
15:45:10  * kpattich__quit (Remote host closed the connection)
15:45:36  * kpattich__joined
15:49:46  * lancespeelmonjoined
15:50:17  * bberryjoined
15:50:20  <bberry>What options do i have to make my node application a binary?
15:50:51  <DeltaHeavy>bberry Who do you want running it and what is it?
15:51:10  <bberry>It's a webserver, and its going on our embedded devices
15:51:28  <bberry>its a gcc based compiler
15:51:38  <DeltaHeavy>Is it a web server or is it a compiler?
15:51:45  <bberry>sorry, webserver
15:52:00  <DeltaHeavy>Where'd the gcc based compiler stuff come from?
15:52:01  <bberry>i meant that the compiler we have for the device is gcc based
15:52:14  * ^escquit (Ping timeout: 255 seconds)
15:52:17  <DeltaHeavy>What's the web server doing?
15:52:25  <DeltaHeavy>And is the device ARM?
15:52:27  <bberry>yeah arm7
15:53:25  * ^escjoined
15:53:38  * shushquit (Ping timeout: 250 seconds)
15:53:53  <DeltaHeavy>bberry And what's it doing? The web server
15:54:01  <joepie91>bberry: there exists no ahead-of-time compiler for JS that supports everything
15:54:10  <joepie91>(to my knowledge)
15:54:13  * lancespeelmonquit (Ping timeout: 245 seconds)
15:54:35  <DeltaHeavy>There's a way to "bundle" it into an executable but I'm not sure that's even necessary or a good idea right now
15:54:50  * Arlenxjoined
15:54:51  <bberry>the webserver is calling some custom c++ node addons we've written, serving pages (we can offload the static pages to lighttpd), and doing some DB calls (i think we're using sqlite)
15:55:26  <joepie91>DeltaHeavy: that's just bundling the Node runtime with the code and that wouldn't work any better here than just running Node separately
15:55:29  <DeltaHeavy>Ok so why do you want to ocmpile it bberry
15:55:31  <DeltaHeavy>compile*
15:55:37  <DeltaHeavy>joepie91 I agree
15:55:43  <joepie91>bberry: how resource-constrained is your device?
15:56:02  <DeltaHeavy>Yeah this sounds really weird.
15:56:11  <bberry>the company that owns my company has an obsession with being private about their code, and since the device can be in-theory accessed by our customer, they oculd go see our source
15:56:36  <DeltaHeavy>You can reverse engineer anything
15:57:00  <DeltaHeavy>Idk how good the tools are these days, a lot better than I recall, but things that can kinda uncompile a binary.
15:57:11  <bberry>yeah of course, i think theyre just trying to see what options they have...
15:57:22  <bberry>right now theyre trying something called "node-packer", no idea anything about it tho
15:57:23  <DeltaHeavy>So your company is just wasting resources as far as I can tell though joepie91 would likely have a better idea.
15:58:11  <DeltaHeavy>You can just easily inspect that executable
15:58:15  <DeltaHeavy>ANd see the JS code
15:58:31  <DeltaHeavy>You should show your company all these things to show them how much of a waste of time this is :p
15:58:49  * amarashovquit (Ping timeout: 268 seconds)
15:59:01  <joepie91>bberry: that is a flat-out unpreventable thing and your company needs to learn how to prioritize :)
15:59:08  <joepie91>(this is true regardless of language or runtime used)
15:59:36  * igemnacequit (Quit: WeeChat 2.4)
15:59:55  <joepie91>there is basically exactly one valid option, and that is "provide a good enough service that your customers don't have a *need* to look at the source, and if there are problems with knockoff products, go after them through legal channels"
16:00:08  <joepie91>this is an economic/legal problem, not a technical one, and it therefore cannot be fixed in a technical manner
16:00:25  <joepie91>(although there's certainly no shortage of companies trying to make a buck by convincing you that it can)
16:01:03  * feelextrajoined
16:01:20  * RoriconKnightjoined
16:01:24  <DeltaHeavy>Literally just a waste of time
16:01:33  <DeltaHeavy>Due to lack of understanding in your company
16:01:58  * setpillquit (Quit: o/)
16:04:14  * groomquit (Quit: Leaving.)
16:15:31  * dylancole101joined
16:16:18  * irc_viewer_testjoined
16:17:28  <bberry>joepie91: fairly constrained tbh. I've run/tested nodes performance on the system before. we have 512 MB ram, 700 MHz single core processor.
16:17:56  <bberry>32 bit
16:18:03  <DeltaHeavy>bberry 512MB of RAM? What about swap space?
16:18:08  <DeltaHeavy>These phones doing anything else?
16:18:12  <DeltaHeavy>The CPU core shoul be fine though
16:18:29  <DeltaHeavy>LIke a swap partition is what I'm talking about
16:19:02  <joepie91>bberry: that isn't constrained at all, for embedded :)
16:19:13  <bberry>haha, not a phone, just a box that goes on a machine that does telematics stuff. and no, theres nothing like that. We have 8 GB flash (disk space essentially)
16:19:15  * shushjoined
16:19:23  <bberry>lol yeah its our newest box
16:19:25  <joepie91>should be more than enough to just run Node on normally
16:20:10  <bberry>yeah i think it'll work okay, when i was load testing it, it performed fairly well, especially for our use-case
16:20:36  * sQVequit (Quit: Bye!)
16:20:56  * dylancole101quit (Remote host closed the connection)
16:21:34  <bberry>how would i inspect the node binary to show the js code? gdb?
16:21:45  <bberry>DeltaHeavy ^
16:22:05  <DeltaHeavy>You might be able to with some .zip utility
16:22:12  <DeltaHeavy>Or archiver
16:22:14  * dlwicksellquit (Quit: Leaving.)
16:22:16  <DeltaHeavy>With a GUI, nothing hard
16:22:46  <DeltaHeavy>Not 100% though, haven't tried to do this in ages
16:22:49  <bberry>its also possible that my company just wants all the stuff to be packed into a single binary
16:22:52  * h3mstockquit (Read error: Connection reset by peer)
16:23:00  <DeltaHeavy>The question is "why"
16:23:01  <bberry>and dont care about the "security"
16:23:11  <DeltaHeavy>I know that's what they want, but it doesn't make sense as to why they do
16:24:18  * voidvector0joined
16:24:20  * shushquit (Ping timeout: 272 seconds)
16:24:26  * heyitsramajoined
16:24:38  <bberry>i'm just going to ask them why they want it instead of making the usual assumptions...
16:24:45  * FunnyLookinHatjoined
16:24:51  <DeltaHeavy>Good idea :p
16:24:52  <joepie91>that's probably a good idea :)
16:24:59  * hemstockjoined
16:25:17  <bberry>im not disagreeing w/ you about any of this btw, but when i ask them theyre going to get defensive, so it'd be ideal if i had some concrete reasons why its kinda senseless
16:25:28  <bberry>i guess ill just copy/paste this chat LUL
16:25:29  <DeltaHeavy>That's a shitty way to run a business
16:25:37  <DeltaHeavy>DOn't ocpy paste that lol
16:25:41  <DeltaHeavy>And I wouldn't do that
16:25:42  <bberry>lol yeah i wont
16:25:42  * bravosloquit (Ping timeout: 250 seconds)
16:25:56  <DeltaHeavy>If they tell you it's for security I could perhaps show you how to debunk their concerns.
16:25:58  * renloljoined
16:26:03  * kpattich__quit (Ping timeout: 258 seconds)
16:26:12  <joepie91>I have to agree with DeltaHeavy here, if people get defensive about that question then there's much bigger issues in your workplace
16:26:27  <joepie91>(that will almost inevitably lead to bad decisions)
16:26:31  <DeltaHeavy>Cause FUCK our employees understand the goals they're helpng us achieve
16:26:33  <DeltaHeavy>amirite?
16:26:34  * Jetimon_quit (Ping timeout: 250 seconds)
16:27:11  <bberry>haha well... really they are more like a sister company than our owners... so my company doesnt share any of their politics thank goodness
16:27:43  * saladjoined
16:27:49  <bberry>the only thing they control is our firewall... which has been shown to be a great disaster
16:28:14  <bberry>we literally installed a router thats outside the firewall so we can actually use the internet
16:28:25  * Pandorianquit (Ping timeout: 268 seconds)
16:28:59  <bberry>i probably wont hear back from them today, they are in germany and probably off work for the day
16:29:04  <joepie91>sounds like a great company :P
16:29:15  <DeltaHeavy>Lol I hate firewall shit like that at the last place I worked
16:29:25  <bberry>haha
16:29:36  <bberry>to be honest, the devs are good, but the management is uh... questionable
16:30:11  <bberry>the devs are just a bit too apathetic
16:30:32  <joepie91>I'm not surprised, with that kind of management
16:31:34  <bberry>the only thing thats rough about our device regarding node is the startup time
16:31:38  * pdubquit (Remote host closed the connection)
16:31:47  <DeltaHeavy>How long does it take for the Node process to boot?
16:31:47  <bberry>its about 8-10 seconds of slammed cpu before things are running
16:31:57  <DeltaHeavy>Is that boot from being off?
16:32:09  <bberry>no thats just me running node at the command line
16:32:25  <DeltaHeavy>Have you used a profiler to see why? How fast is it on a regular machine?
16:32:46  * monkeystancejoined
16:32:47  <joepie91>bberry: that is very likely due to slow storage
16:32:54  <bberry>likely so
16:33:12  <DeltaHeavy>Not sure a prilfer would work here actually
16:33:39  <joepie91>bberry: with very careful configuration you /could/ probably use a bundler to pre-bundle modules into a single file except for the native C++ stuff and still have those be called externally, and significantly reduce startup time
16:33:44  <joepie91>assuming that the problem really is the I/O
16:34:09  <bberry>ah ic
16:34:10  * bf_joined
16:34:12  <joepie91>I assume that this isn't an SSD or anything but rather some kind of cheap-and-plentiful flash storage?
16:34:20  <joepie91>USB-thumbdrive-tier
16:34:27  <bberry>im not sure the kind of storage it is tbh
16:34:46  * wsierocijoined
16:34:48  <bberry>its eMMC flash
16:35:59  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:35:59  <joepie91>ahhh yep
16:36:05  <joepie91>then it's probably the fault of the storage :)
16:36:08  <bberry>yeah
16:36:31  <bberry>maybe their thoughts of compiling it into a single binary would be for boot speed?
16:36:42  <bberry>but really the better way would be to just bundle it into 1 file
16:36:52  * bitmaskjoined
16:38:05  * slajaxjoined
16:38:16  * pdubjoined
16:39:10  <joepie91>bberry: you won't get to 1 file given the native modules
16:39:16  <bberry>yeah
16:39:16  <joepie91>but bundling should get you close enough that it solves the problem
16:39:58  * shushjoined
16:40:09  <bberry>what bundler options are there?
16:40:23  <bberry>webpack maybe?
16:40:32  <joepie91>bberry: I'd default to recommending browserify
16:40:51  * wentzjoined
16:40:54  <joepie91>given that it's modular, it should be possible to make it work without breaking native modules
16:40:58  <DeltaHeavy>I use Webpack
16:41:03  <joepie91>I haven't tried it though
16:41:09  <DeltaHeavy>Browserify is also good
16:41:14  <bberry>aight
16:42:18  * paulcarrotyquit (Remote host closed the connection)
16:42:24  * skyikotjoined
16:43:31  <bberry>tyvm for the help :D
16:43:32  * ozettequit (Quit: WeeChat 2.1)
16:43:47  <joepie91>np :)
16:44:26  * shushquit (Ping timeout: 255 seconds)
16:44:53  <DeltaHeavy>np
16:46:33  * b44quit
16:47:15  * bf_quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/)
16:47:32  * jamiejacksonjoined
16:48:07  * chargenquit (Quit: BBL)
16:48:54  <bberry>ah so they did get back to me
16:50:25  * Opusquit (Quit: Bye)
16:51:22  <bberry>and i had forgotten about this, but essentially we cant get NPM on the device
16:51:32  <bberry>because we dont have a native compiler for the device (we have to cross-compile everything)
16:51:39  <joepie91>that's not an issue; npm is not required for running Node
16:51:50  * irc_viewer_testquit (Quit: irc_viewer_test)
16:51:58  <bberry>yeah, but essentially theyre trying to not install thousands of files
16:52:14  <bberry>so i think bundling should solve that problem
16:52:18  <joepie91>I don't see the problem, aside from the bad disk I/O, which is solved with the bundling
16:52:30  <bberry>yeah, thats all theyre trying to fix
16:52:36  <joepie91>right
16:52:41  * bravoslojoined
16:52:43  * StatelessCatjoined
16:52:45  <bberry>now hes complaining "thats going to be a long whitelist for nodeExternals()
16:52:50  <bberry>no idea what that means haha :D
16:52:55  <bberry>some webpack thing
16:53:01  * tarkusjoined
16:53:08  * EREVANquit (Ping timeout: 240 seconds)
16:53:08  <joepie91>nodeExternals would be the stuff it shouldn't bundle
16:53:13  <joepie91>ie. native modules
16:53:27  <bberry>gotcha
16:53:35  * wsierociquit (Remote host closed the connection)
16:54:04  <bberry>even for a pretty advanced webserver, i wouldnt imagine it to be more than like 10 or 20 modules
16:54:16  <joepie91>right
16:55:46  <bberry>is there a way to generate that list instead of manually determining which modules are native?
16:55:56  <joepie91>no idea, probably? :P
16:56:03  <bberry>haha
16:56:04  <bberry>kk
16:56:14  <joepie91>if no tools exist yet, one way to determine it would be to scan a module for `.node` files
16:56:19  <bberry>yeah
16:56:36  <joepie91>reminds me that I need to build a tool to analyze size distribution of node_modules..
16:56:46  <bberry>https://stackoverflow.com/questions/36032250/how-to-find-native-modules-in-a-node-js-dependency-tree
16:56:48  <bberry>bingo :D
16:57:01  <bberry>by mscdex, no less
16:57:25  <joepie91>there's a tool for it also
16:57:28  <joepie91>see second answer
16:57:30  <joepie91>:p
16:57:37  <bberry>haha nice
16:57:53  * Arlenxquit (Quit: Leaving)
16:59:36  * led_dark_1joined
16:59:45  * dylancole101joined
17:00:24  * shushjoined
17:01:23  * Venemoquit (Quit: Communi 3.5.0 - http://communi.github.com)
17:01:28  * marthinalquit (Remote host closed the connection)
17:02:08  * voidvector0quit (Ping timeout: 245 seconds)
17:04:12  * dylancole101quit (Remote host closed the connection)
17:04:26  * dylancole101joined
17:04:54  * feelextraquit (Ping timeout: 246 seconds)
17:06:29  * floppydhquit (Quit: WeeChat 2.3)
17:07:20  * EREVANjoined
17:07:28  * akivajoined
17:08:49  * keepLearning512quit (Remote host closed the connection)
17:10:46  * shushquit (Ping timeout: 250 seconds)
17:11:16  * trevorjoined
17:11:27  * wpkegjoined
17:11:54  * slajaxquit (Ping timeout: 246 seconds)
17:12:08  * kneekijoined
17:12:11  * Jetimon_joined
17:13:08  * hellauerjoined
17:14:30  * lundibundijoined
17:17:41  <wpkeg>I cannot get my passport jwt auth token to work. Here's my simple app example: https://gist.github.com/viaone-chenderson/3d5d1240eda9437dc6a1c010bd0c3263 -- any ideas?
17:18:09  * kakashiALjoined
17:19:51  <joepie91>wpkeg: are you trying to use JWT for session purposes?
17:20:45  <wpkeg>joepie91: my main goal is to have a token passed back and forth to authenticate a client (web app)'s request. i'll have a token generated whenever a user is logged in, and pass it back and forth. ideally, the token would update on each call so it wouldn't expire (unless based on time).
17:20:59  <wpkeg>so by session, i want the user to appear they are in a session i guess -- does that make sense?
17:22:06  * adgtljoined
17:22:07  <joepie91>wpkeg: right, yeah, that's session usage; in that case, don't use JWT (or other stateless tokens), as those are not a secure way to implement sessions :)
17:22:12  <joepie91>!jwt sessions @ wpkeg
17:22:13  <ecmabot>wpkeg: Don't use JWT for sessions. http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions -- JWT was never meant to be used for sessions, and its popularity happened purely because of marketing: https://youtu.be/GrLtOjCTB1s?t=1h2m44s
17:22:22  <joepie91>(unfortunately it's been hyped up a lot, but it's definitely the wrong approach)
17:22:41  <joepie91>you'll want to use normal session cookies instead; https://gist.github.com/joepie91/cf5fd6481a31477b12dc33af453f9a1d goes into more detail about how to do that
17:22:43  <wpkeg>Wow, I've seen jwt used so much in real world applications
17:22:46  <joepie91>and how it works
17:22:47  * xuibquit (Ping timeout: 258 seconds)
17:22:47  * kakashiALquit (Ping timeout: 240 seconds)
17:22:53  <joepie91>yeah, it got a few years of hype cycle
17:23:02  <joepie91>and hype cycles and security don't mix well :(
17:23:05  <wpkeg>but a token is still being used i assume, right?
17:23:06  * led_dark_1quit (Remote host closed the connection)
17:23:11  <joepie91>yes, but not in the same way
17:23:16  * led_dark_1joined
17:23:27  * rakm_joined
17:23:37  <wpkeg>session cookies on jsut the client side though? or server too
17:23:40  <wpkeg>before i get to reading this lovely doc lol
17:23:41  <joepie91>whereas a stateless token tries to encode all the session data directly into the token, the kind of token you encounter in a session cookie is just a randomly-generated string that's used to identify which session data belongs to the user on the server side
17:24:12  * shushjoined
17:24:16  <joepie91>wpkeg: with sessions, the actual session data exists only server-side; the client just gets a cookie with an identifier (and this works out of the box in all browsers, you do not need to write code to handle this)
17:24:28  <wpkeg>interesting.
17:24:37  <wpkeg>i'm glad i proposed this question at the right time (with you here)
17:25:07  <joepie91>hehe, I'm basically part of the furniture here by now, I never leave :D
17:26:04  <wpkeg>so i don't even need passportjs?
17:26:06  <wpkeg>is it useful?
17:26:39  * rakmquit (Ping timeout: 244 seconds)
17:26:39  <joepie91>wpkeg: passport is useful in some cases, but not as often as people think; specifically, it's useful when you need to deal with multiple methods of authentication (eg. when using external auth providers)
17:26:49  <wpkeg>ohh
17:26:51  <wpkeg>hmm
17:26:55  <joepie91>if you're only dealing with a single authentication form, eg. username/password, then Passport does not really add anything
17:27:04  <joepie91>and you're probably better off just using express-session directly
17:27:05  <wpkeg>so it could be integrated with a single auth (to plan for future), but not needed
17:27:13  <joepie91>the normalization between auth APIs is basically the reason for existence of Passport :)
17:27:16  * JZAjoined
17:27:20  <joepie91>yeah
17:27:30  * Pandorianjoined
17:27:31  * v01d4lph4joined
17:27:32  <joepie91>think very carefully before integrating stuff like Facebook auth etc. though
17:27:36  <joepie91>it's not without its costs and risks
17:27:52  <wpkeg>oh for sureo
17:28:03  <wpkeg>i was more referring to the company using google apps -- that may be the only reason to switch
17:28:07  <wpkeg>to keep a SSO For the company
17:28:15  <wpkeg>not even in this application actually lol
17:28:22  <wpkeg>so for this ,express-session seems to be good
17:28:23  * shushquit (Ping timeout: 245 seconds)
17:29:14  * wentzquit (Quit: Page closed)
17:29:31  * lundibundiquit (Ping timeout: 246 seconds)
17:30:18  <joepie91>right, yeah, for SSO it can make sense
17:30:27  <joepie91>though also maybe not
17:30:32  <joepie91>most SSO deployments are *exclusively* SSO
17:30:40  <joepie91>with no other auth methods available :P
17:30:54  <joepie91>so the value of a thing that smooths over API differences when you're only dealing with one API is... not necessarily non-zero
17:31:06  <joepie91>but yeah, in this case, express-session is probably all you need either way
17:31:40  * orbyt_joined
17:31:43  * lundibundijoined
17:32:18  * duckpuppyquit (Remote host closed the connection)
17:32:49  <wpkeg>side question joepie91, do you always use native promises or do you have a preference for one? (like bluebird, etc).
17:33:41  * luist_joined
17:33:51  * Kaivoquit (Quit: Lost terminal)
17:34:04  * cthulchujoined
17:34:36  * luistquit (Ping timeout: 250 seconds)
17:34:37  * luist_changed nick to luist
17:35:09  <joepie91>wpkeg: I always use Bluebird; ES6 Promises are insufficiently complete for real-world application code usage, missing crucial error-handling tools like error filtering etc. (which makes sense given that ES6 Promises were designed primarily as a building block for other specs to use, not for application code)
17:35:29  <joepie91>compatibility is not an issue; http://cryto.net/~joepie91/blog/2016/05/11/what-is-promise-try-and-why-does-it-matter/ explains why
17:35:41  * shushjoined
17:38:00  <joepie91>wpkeg: example of what I mean with error filtering: https://gist.github.com/joepie91/b0c8f9a9309f5398080eab84482d58a4#file-js-L8
17:38:26  <wpkeg>yeah bluebird has always been my go to, but i figured i'd ask you since it could have been just another fad
17:38:38  * Rashadjoined
17:38:41  * ahmedelgabrijoined
17:38:41  <systemfault>Depends who you ask.
17:40:25  * tkore1quit (Ping timeout: 258 seconds)
17:40:30  * reberjoined
17:41:18  * ahmed_elgabriquit (Ping timeout: 264 seconds)
17:41:31  * tkore1joined
17:43:24  * shushquit (Ping timeout: 246 seconds)
17:44:06  * dastier_joined
17:47:06  * keepLearning512joined
17:47:58  * tkore1quit (Ping timeout: 268 seconds)
17:48:07  * Booster2oooquit (Read error: Connection reset by peer)
17:48:16  * hecklerjoined
17:50:22  * duckpuppyjoined
17:51:45  * marthinaljoined
17:52:36  * macwinnerjoined
17:56:08  * adammjoined
17:58:02  <wpkeg>lol
17:58:03  <wpkeg>:D
17:58:35  <wpkeg>joepie91: so i'm attempting to use your examples with connect dynamodb -- but i dont see anything being stored to dynamo. you're using knex, so i was just curious if there's any insight there conceptually.
17:58:43  * platonic_joined
17:59:06  * d3x0rquit (Read error: Connection reset by peer)
17:59:08  * platonicquit (Ping timeout: 255 seconds)
17:59:50  * d3x0rjoined
18:00:12  * shushjoined
18:00:16  * feelextrajoined
18:00:29  * gxtquit (Ping timeout: 255 seconds)
18:01:51  * gxtjoined
18:04:01  * rakm_quit (Remote host closed the connection)
18:05:00  * trevorquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:05:55  * JaredCEquit (Ping timeout: 246 seconds)
18:06:23  * rakmjoined
18:06:35  * bitmaskquit (Quit: Gone to sleep...)
18:07:03  * dylancole101quit (Remote host closed the connection)
18:07:19  <joepie91>wpkeg: it should all Just Work, assuming that a session is actually being created (which, depending on your express-session settings, may only happen when you actually store some data in it)
18:07:21  * SGroverjoined
18:08:32  <joepie91>wpkeg: (as an aside, if for some reason you're building an SPA and the HTTP endpoints for it are hosted on a different hostname than where the page is being served from, you need to make sure that your fetch/XHR/whatever requests are configured so that they send along cookies; look for a `credentials` or `withCredentials` flag)
18:09:26  * wsierocijoined
18:09:39  * pdubquit (Remote host closed the connection)
18:10:03  <SGrover>I need to extract the version number from my package.json file. Using the process.env.npm_package_version variable does not work if the script is started via "node myfile.js". Is there any concerns if I have a module that requires package.json, but does a custom module.exports that includes only the needed specifics?
18:11:26  <wpkeg>right now it's all local. localhost:4001 is my node, and i'm hitting my endpoints directly to see responses, etc.
18:11:33  <ljharb>SGrover: no, that should be fine
18:11:41  <SGrover>My readings suggest that doing a require of package.json leads to exposing too much. But if I'm doing it in a module, shouldn't that protect me against leaking too much?
18:11:51  <ljharb>SGrover: i would have suggested you use `require('./package.json').version` anyways
18:12:49  <wpkeg>joepie91: https://gist.github.com/viaone-chenderson/3d5d1240eda9437dc6a1c010bd0c3263
18:13:00  <wpkeg>i removed the user lookups to just see if i can get it to write
18:13:06  <wpkeg>heh
18:14:27  <joepie91>wpkeg: some scheduled work just started, so I'll probably respond slower btw :) but I'll see if I can spot something weird
18:14:42  <wpkeg>all good :D
18:15:17  <joepie91>wpkeg: btw, have you verified that the problem is actually nothing being stored in the DB? ie. you've explicitly checked the DB, and not just inferred that from application behaviour?
18:15:55  * bitmaskjoined
18:16:00  * bitmaskquit (Client Quit)
18:16:30  <SGrover>thanks ljharb.
18:16:37  <wpkeg>joepie91: yes
18:16:40  <wpkeg>i have dynamodb opened
18:17:24  * JaredCEjoined
18:17:43  * ffx_joined
18:18:04  <joepie91>wpkeg: can you do something like res.send("foo") in your /login route after it stores the session data (and ideally after an explicit `req.session.save()`)? to ensure that it isn't silently failing somewhere
18:18:18  * snoring_catjoined
18:18:26  * trevorjoined
18:19:40  * dylancole101joined
18:19:44  <wpkeg>i just tried req.session.save() and no errors, and no saving
18:19:45  <GreenJello>SGrover, if it's for client side code, you can do `import { version } from './package.json'` which won't include the rest of the file
18:19:47  <wpkeg>=(
18:20:07  <GreenJello>if it's for node.js... there's literally 0 concern for importing the whole thing
18:20:21  <SGrover>GreenJello, it's backend.. thanks.
18:20:50  <SGrover>Somewhat OT... We are serving our app from a load balancer that includes two servers. I need to know which server provided the response. So I want to indicate this with an HTTP header. Any tips WHICH header I should use for this?
18:21:16  <GreenJello>SGrover, make a custom one starting with 'x-'
18:21:52  * skiskiacmquit (Quit: Page closed)
18:22:30  * JaredCEquit (Ping timeout: 268 seconds)
18:22:33  <GreenJello>SGrover, there is the "server" header, but things tend to override it
18:23:32  * Soopamanquit (Quit: Leaving.)
18:23:37  <SGrover>GreenJello, that's where I was leaning - the x-my-server-flavor or similar. But I wanted to see if there was a common header for this already... Thanks.
18:24:04  * devc_changed nick to devc
18:25:59  <GreenJello>SGrover, in general, you should avoid response headers defined in specs for anything you care about. You pretty much get content-type, but even e.g. content-length is subject to change by load balancers and proxies
18:26:44  <SGrover>understood
18:27:26  * tkore1joined
18:27:32  * estodiManiajoined
18:27:58  * orbyt_quit (Ping timeout: 245 seconds)
18:29:22  <joepie91>wpkeg: I didn't see anything wrong about your code at first glance; however, I avoid Amazon, so I have no idea whether connect-dynamodb may be used incorrectly or not
18:29:36  <joepie91>wpkeg: either way, the dynamodb connector is probably the starting point for debugging
18:29:51  <joepie91>I don't think I've ever seen express-session fail like this before with other connectors, so it's unlikely to be in express-session
18:32:07  * tkore1quit (Ping timeout: 240 seconds)
18:33:19  * \mSgquit (Ping timeout: 258 seconds)
18:35:00  * nononojoined
18:35:35  <wpkeg>joepie91: makes sense
18:35:48  <wpkeg>i could just write my own saver/getter right?
18:36:01  <wpkeg>i assume express-session stores the data AND retrieves it ? heh
18:36:04  <wpkeg>just a user id and token
18:36:09  <wpkeg>(or w/e else yo uwant to store)
18:36:25  <joepie91>wpkeg: yeah, you absolutely could
18:36:27  <joepie91>it's fairly simple
18:36:43  <wpkeg>would i extend connect, or just roll it out with express-session, since i'm manually doing it anyway?
18:36:51  <joepie91>I think connect-session-knex has a complete implementation (stores can either implement all features or only part of them) so looking at that would be a good way to see the API
18:36:57  <wpkeg>yeah
18:37:04  <wpkeg>i cant beleive the dynamo isnt working. chump. :P
18:37:10  * darkSeidjoined
18:37:21  <joepie91>wpkeg: well the idea is that express-session takes an opaque 'store' which is just an object with a few API methods, and the store only needs to translate internal session operations to DB calls
18:37:30  <joepie91>so you won't neeed to change or replace express-session
18:37:35  <wpkeg>yeah
18:37:45  <wpkeg>so store 1 session record per user, so what by username?
18:37:51  <wpkeg>userId**
18:37:59  <joepie91>users can have multiple sessions :)
18:38:01  <wpkeg>i guess i retrieve the data, compare the tokens, and boom
18:38:04  <wpkeg>true
18:38:06  <joepie91>and the data looks like a (session ID) -> (session data) map
18:38:12  <joepie91>with some metadata like expiry
18:38:21  <wpkeg>so it's looping through the sessions to see if the correct token exists?
18:38:40  <joepie91>no; an implementation would typically just ask the DB "give me the record that has sessionId == ____"
18:38:54  <joepie91>(which is a key lookup, which given correct indexes is fast in a DB)
18:39:11  <wpkeg>ahh
18:39:14  <wpkeg>and sessionID is just the token
18:39:18  <joepie91>yeah
18:39:20  <wpkeg>and the token then will verify userId matches?
18:39:24  <wpkeg>or no need to verify
18:39:26  <joepie91>and if the DB says "I have no such record" that means that the session ID ws invalid
18:39:34  <joepie91>wpkeg: that's out of scope for the session implementation
18:39:38  <wpkeg>ahh
18:39:58  <joepie91>the only responsibility of the session implementation is "associate a pile of data with the browser session of a user, securely"
18:40:06  <joepie91>what exactly that pile of data contains is application-dependent
18:40:12  <joepie91>and verified/used in application code
18:40:16  <joepie91>(usually, it'll just be a user ID)
18:40:24  <joepie91>(but it *could* be other things)
18:40:37  <wpkeg>and the server just cares that the session exists (and isnt expired, right?)
18:40:37  * kakashiALjoined
18:40:46  <joepie91>a typical example is a shopping cart; in ecommerce systems, the session data usually directly stores shopping cart items, since not all shopping carts are associated with users
18:40:48  <joepie91>right
18:40:50  <wpkeg>and if it exists, just go ahead and proceed with request blindly, bc the token was passed
18:40:54  <joepie91>yep
18:40:59  * ahmedelgabriquit (Ping timeout: 258 seconds)
18:41:16  <joepie91>of course you still need the "fetch corresponding user object from DB" logic in your own application code, and bail if the user doesn't exist
18:41:22  <joepie91>but that's separate from session concerns
18:41:29  <wpkeg>so a jwt token was a long string
18:41:34  <wpkeg>is a. guid appropriate for a session token?
18:42:06  <joepie91>wpkeg: you don't need to care about session tokens
18:42:10  <joepie91>those are handled transparently by express-session
18:42:29  <joepie91>if you write a store, then express-session will just give you a token it has produced, where necessary, and you don't need to care about what it contains
18:42:37  <joepie91>if you're working on application code, you only care about the session data
18:42:40  * rakmquit (Remote host closed the connection)
18:43:00  <joepie91>ie. treat the session token as an opaque string, an implementation detail for express-session internals to worry about
18:43:49  * luistquit (Quit: luist)
18:44:04  <wpkeg>joepie91: but i have to pass the token back and forth right?
18:44:12  * morenoh149joined
18:44:12  <wpkeg>so you're just saying i dont need to worry about CREATING it
18:44:44  <joepie91>right
18:45:11  * kakashiALquit (Ping timeout: 244 seconds)
18:45:20  <joepie91>the store implementation treats the session token as a closed box; it gets handed one by express-session, and it hands it to the DB, and as for what exactly the session token (closed box) *contains*, well, ¯\_(ツ)_/¯
18:45:35  <joepie91>it just knows that it will somehow uniquely identify the correct pile of session data
18:45:43  <joepie91>when used as a key
18:46:13  * luistjoined
18:47:48  * bluezonejoined
18:49:08  * ahmedelgabrijoined
18:49:32  <joepie91>wpkeg: btw, to compare with JWT to understand the differences: for stateless tokens like JWT, all of the session data is directly encoded in the token... the token is not a key that indexes into a data store, it *is* the data store for that session
18:50:11  <joepie91>the major downside of that is that it is impossible to invalidate a token manually before its expiration; there's no data store to delete the session data from, because the data store is wholly contained within the token
18:50:15  <joepie91>(which is a security problem in a few ways)
18:50:41  * chargenjoined
18:50:53  <joepie91>stateless tokens are really only suitable for short-lifetime single-use usecases, like for example getting a token from one server that you can use within the next 30 seconds on another server to prove that the first server had allowed you access to this particular file download or whatever
18:51:23  * snoring_catpart
18:51:24  <joepie91>invalidation isn't necessary there because it'll only be valid for 30 secs anyway, so if it gets leaked somehow or the user changes their password to lock out an attacker or whatever, the problem solves itself in the next 30 secs
18:51:47  <joepie91>though even in that usecase, you want https://paseto.io/ instead of JWT (the link at the top of that site explains why)
18:52:11  * orbyt_joined
18:53:16  * rakmjoined
18:53:21  * KidSk8quit
18:53:47  * lpinquit (Quit: Textual IRC Client: www.textualapp.com)
18:53:53  <joepie91></ramble>
18:55:29  * ghormoonquit (Ping timeout: 250 seconds)
18:55:53  * d3x0rquit (Read error: Connection reset by peer)
18:56:34  * d3x0rjoined
18:57:00  * rakm_joined
18:57:22  * luistquit (Ping timeout: 250 seconds)
18:57:30  * Booster2ooojoined
18:57:51  * rakmquit (Ping timeout: 258 seconds)
18:58:04  * ghormoonjoined
19:01:04  * chargenquit (Quit: BBL)
19:01:27  * xuibjoined
19:01:54  * altabjoined
19:03:09  * Aquaziquit (Quit: Connection closed for inactivity)
19:05:40  * tkore1joined
19:06:31  * dlwickselljoined
19:06:38  * marthinalquit (Remote host closed the connection)
19:07:31  * v01d4lph4quit (Read error: Connection reset by peer)
19:07:40  * duckpuppyquit (Quit: ZNC 1.7.2 - https://znc.in)
19:08:10  * slajaxjoined
19:09:32  * marthinaljoined
19:10:33  * tkore1quit (Ping timeout: 246 seconds)
19:13:00  * hellauerquit (Quit: WeeChat 2.3)
19:17:07  * d3x0rquit (Read error: Connection reset by peer)
19:17:14  * shushquit (Remote host closed the connection)
19:17:17  * hellauerjoined
19:17:30  * shushjoined
19:20:25  * d3x0rjoined
19:20:33  * sadtacojoined
19:22:38  * grumblechanged nick to `-_-`grumble
19:22:56  * sadakoquit (Ping timeout: 272 seconds)
19:23:08  * jwestquit (Quit: WeeChat 1.6)
19:24:31  * sauvinquit (Read error: Connection reset by peer)
19:26:20  * duckpuppyjoined
19:26:42  * bitmaskjoined
19:26:53  * gxtquit (Ping timeout: 255 seconds)
19:27:43  * voidvector0joined
19:29:34  * KidSk8joined
19:30:27  * Pandorianquit (Ping timeout: 240 seconds)
19:30:50  * leatherface416quit (Read error: Connection reset by peer)
19:32:52  * leatherface416joined
19:33:36  * gambl0r3joined
19:36:10  * `-_-`grumblechanged nick to grumble
19:38:08  * Rashadquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:38:46  * rakm_quit (Quit: Textual IRC Client: www.textualapp.com)
19:42:03  * slajaxquit (Ping timeout: 246 seconds)
19:42:38  * xuibquit (Ping timeout: 255 seconds)
19:43:07  * bitmaskquit (Quit: Gone to sleep...)
19:45:14  * mrl5joined
19:46:28  * julianduquejoined
19:47:34  * goodenoughjoined
19:48:14  * leatherface416quit (Read error: Connection reset by peer)
19:48:55  * DukeDrakejoined
19:50:31  * leatherface416joined
19:50:32  * jaagrjoined
19:51:27  * duckpuppyquit (Quit: ZNC 1.7.2 - https://znc.in)
19:52:00  * duckpuppyjoined
19:53:15  <wpkeg>with express, can i load more sub-routes within a subroute? or do i need to .use() every route group?
19:53:15  * pdubjoined
19:53:36  <wpkeg>i thought i could include 'v1Routes' (for /v1), then include 'accountRountes' in v1routes file (for /v1/account)
19:54:23  * lundibundiquit (Ping timeout: 268 seconds)
19:55:52  * mateusbs17changed nick to mateusbs17|afk
19:56:14  <joepie91>wpkeg: you're looking for routers
19:56:19  <joepie91>(also, make sure to use express-promise-router)
19:56:30  <joepie91>a router can router.use another router, just like you can app.use
19:56:33  <joepie91>at a prefix
19:58:03  * ravustajaquit (Quit: leaving)
19:59:49  * tkore1joined
20:00:42  * macwinnerquit (Read error: Connection reset by peer)
20:01:15  * macwinnerjoined
20:02:14  <wpkeg>joepie91: im hav ing connectivity issues. gonna tr yto fix and show you my code haha
20:02:15  <wpkeg>jas
20:02:21  * xuibjoined
20:02:23  * tarkusquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:02:23  * marthinalquit (Remote host closed the connection)
20:04:37  * tkore1quit (Ping timeout: 245 seconds)
20:05:02  * Gazoooquit (Quit: The Lounge - https://thelounge.chat)
20:05:29  <joepie91>wpkeg: I'm getting pretty tired btw, so I wouldn't expect too many more useful answers out of me tonight :)
20:06:02  * d3x0rquit (Read error: Connection reset by peer)
20:06:58  * Gazooojoined
20:09:16  * mrl5part
20:16:07  * nalkriquit (Ping timeout: 240 seconds)
20:16:08  * goodenoughquit (Remote host closed the connection)
20:20:00  * ed209quit (Remote host closed the connection)
20:20:08  * ed209joined
20:23:03  * Nicmavrquit (Read error: Connection reset by peer)
20:23:07  * renlolquit (Ping timeout: 240 seconds)
20:23:34  * EREVANquit
20:24:45  * wsierociquit (Remote host closed the connection)
20:25:11  * Nicmavrjoined
20:25:41  * ahmedelgabriquit (Quit: WeeChat 2.4)
20:25:41  * heyitsramaquit (Remote host closed the connection)
20:26:13  * heyitsramajoined
20:26:31  * enoqjoined
20:27:07  * xuibquit (Ping timeout: 245 seconds)
20:30:27  * heyitsramaquit (Ping timeout: 245 seconds)
20:30:58  * kerrangquit (Remote host closed the connection)
20:34:36  * wsierocijoined
20:35:15  * renloljoined
20:35:26  * ckodejoined
20:36:25  * dylancole101quit (Remote host closed the connection)
20:41:21  * tkore1joined
20:41:29  * kakashiALjoined