00:03:17  <cat5e>hmm sqlite is blocking...
01:32:56  * rgrinbergjoined
03:07:10  * DarkGodquit (Ping timeout: 252 seconds)
03:50:41  * SinisterRectusquit (Quit: Leaving)
04:24:46  * SinisterRectusjoined
04:40:25  * SkyRocknRolljoined
04:53:19  * rgrinbergquit (Ping timeout: 252 seconds)
07:45:56  * rendarjoined
10:45:57  * cptGjoined
10:49:39  * cptG_quit (Ping timeout: 264 seconds)
12:28:15  * rgrinbergjoined
12:29:57  * DarkGodjoined
12:49:45  * rgrinbergquit (Quit: WeeChat 1.5)
12:50:09  * rgrinbergjoined
15:49:27  <rphillips>might want to use the threading module for luv
15:49:31  <rphillips>to wire up sqlite
16:21:23  * Haragethquit (Remote host closed the connection)
16:33:06  * Haragethjoined
16:34:37  * DarkGodquit (Quit: Leaving)
16:37:29  * Haragethquit (Ping timeout: 258 seconds)
17:05:37  * rgrinbergquit (Ping timeout: 244 seconds)
17:20:53  * Haragethjoined
18:17:24  * rgrinbergjoined
18:50:59  * inexquit (Quit: d a n k m e m e s)
18:59:51  * SkyRocknRollquit (Ping timeout: 240 seconds)
19:03:48  * inexjoined
19:05:33  * rgrinbergquit (Quit: WeeChat 1.5)
19:05:59  * rgrinbergjoined
19:07:11  * Adam___joined
19:09:42  * Haragethquit (Ping timeout: 272 seconds)
19:33:52  * Adam___quit (Read error: Connection reset by peer)
19:41:52  * rgrinbergquit (Read error: Connection reset by peer)
19:46:27  * rendarquit (Ping timeout: 250 seconds)
20:00:32  * rgrinbergjoined
20:16:09  * rendarjoined
20:38:19  * Haragethjoined
21:10:00  * rgrinbergquit (Ping timeout: 244 seconds)
21:26:27  * rgrinbergjoined
22:02:41  * Haragethquit (Remote host closed the connection)
22:03:17  * Haragethjoined
22:05:57  * rendarquit (Quit: std::lower_bound + std::less_equal *works* with a vector without duplicates!)
22:12:29  * Haragethquit (Read error: Connection reset by peer)
22:19:03  <cat5e>creationix, is there anything I can use for a GUI?
22:20:16  <creationix>maybe SDL
22:20:21  <creationix>I'm trying to get GLFW working
22:20:32  <creationix>cat5e luvit isn't really used for gui apps yet
22:20:42  <creationix>typically, the UI is implemented in HTML + CSS + JS and runs in a browser
23:04:53  * Haragethjoined
23:40:08  <cat5e>creationix, what *is* luvit used for?
23:40:27  <cat5e>(real world examples would be nice)
23:44:30  <SinisterRectus>server-side web applications
23:45:14  <cat5e>examples?
23:46:10  <SinisterRectus>https://luvit.io/blog/ click through some of his blog posts
23:47:36  <SinisterRectus>i'm maintaining a library for running discord bots using luvit
23:48:29  <SinisterRectus>the biggest use is probably https://github.com/virgo-agent-toolkit
23:49:06  <SinisterRectus>you can use it as a barebones web server
23:49:47  <cat5e>what does node.js have that luvit doesn't... what made node.js popular...
23:50:03  <SinisterRectus>at the very least, luvit is an easy to install version of luajit with networking
23:50:16  <SinisterRectus>node.js is popular because javascript is popular
23:50:29  <SinisterRectus>javascript is popular because it's *the* scripting language of the web
23:50:33  <SinisterRectus>(front end)
23:50:48  <SinisterRectus>obviously backend can use anything
23:50:50  <SinisterRectus>hence luvit
23:52:17  <SinisterRectus>it may be a matter of preference whether you like js or lua, but lua's strengths here are performance and native coroutines, i think
23:52:34  <cat5e>what should I use for luvit SQL?
23:52:58  <SinisterRectus>there are a few lua libraries for sql(ite)
23:53:08  <SinisterRectus>did you see the luajit ffi links i shared
23:53:42  <SinisterRectus>you said they were blocking, rphillips said to use luvit threads, which is a good idea
23:54:27  <cat5e>what are luvit threads?
23:54:36  <SinisterRectus>do you know what threads are
23:54:42  <cat5e>yes
23:54:56  <SinisterRectus>luvit has a thread module that allows for multithreading
23:55:06  <cat5e>how does it work?
23:55:08  <SinisterRectus>you can only pass strings and numbers to them though
23:55:10  <SinisterRectus>umm
23:55:15  <SinisterRectus>let me find an exmple
23:55:30  <SinisterRectus>here's a simple one https://github.com/luvit/luvit/blob/master/examples/multi-thread-tick.lua
23:55:59  <SinisterRectus>there are threads and there are "works"
23:56:17  <SinisterRectus>i think works are just threads that call back to the main thread when they are done.
23:56:32  <SinisterRectus>https://github.com/luvit/luvit/blob/master/deps/thread.lua
23:56:34  <SinisterRectus>here is the source
23:56:51  <SinisterRectus>it's a wrapper around libuv threads
23:57:11  <cat5e>so I give it a file?
23:57:44  <SinisterRectus>no, you start a thread with a function to run and arguments to pass to it
23:58:14  <cat5e>so I give it a string?
23:58:30  <SinisterRectus>you give it a function and arguments
23:58:40  <cat5e>why not give it a string and arguments?
23:59:12  <SinisterRectus>because it needs to run something
23:59:19  <cat5e>yes, the string
23:59:25  <SinisterRectus>like loadstring?
23:59:30  <cat5e>yeah?
23:59:34  <SinisterRectus>you don't need to do that
23:59:45  <cat5e>I mean the code literally dumps the function into a string
23:59:51  <SinisterRectus>that's what it's doing
23:59:56  <SinisterRectus>but you don't have to do that