« Back to channel list

#ruby - 24 July 2019

« Back 1 day Forward 1 day »
[00:05:16] agent_white: has joined #ruby
[00:09:18] s2013: has joined #ruby
[00:10:50] skryking: has joined #ruby
[00:19:39] ramfjord: has joined #ruby
[00:28:15] Swyper: has joined #ruby
[00:35:11] Nilium: has joined #ruby
[00:36:14] duderonomy: has joined #ruby
[00:37:05] ramfjord: has joined #ruby
[00:44:21] znz_jp: has joined #ruby
[00:49:08] xtsee: has joined #ruby
[00:51:01] ramfjord: has joined #ruby
[00:51:34] pwnd_nsfw: has joined #ruby
[01:42:24] s2013: has joined #ruby
[01:42:26] DaRock: has joined #ruby
[01:56:06] Swyper: has joined #ruby
[01:59:45] impermanence: has joined #ruby
[01:59:50] Swyper: has joined #ruby
[02:02:26] Swyper: has joined #ruby
[02:16:43] pwnd_nsfw`: has joined #ruby
[02:39:10] _whitelogger: has joined #ruby
[02:40:16] matheusmoreira: has joined #ruby
[02:41:18] duderonomy: has joined #ruby
[02:42:58] tdy: has joined #ruby
[02:47:13] insu: has joined #ruby
[02:53:24] ramfjord: has joined #ruby
[03:05:11] jenrzzz: has joined #ruby
[03:07:51] gix-: has joined #ruby
[03:13:07] involans: has joined #ruby
[03:29:46] polishdub: has joined #ruby
[03:46:26] jenrzzz: has joined #ruby
[03:50:49] Azure: has joined #ruby
[03:54:22] polishdub: has joined #ruby
[03:57:35] kaiser: has joined #ruby
[03:58:03] howdoi: has joined #ruby
[03:58:47] SeepingN: has joined #ruby
[04:08:11] Nicmavr: has joined #ruby
[04:08:43] faces: has joined #ruby
[04:27:32] mdl8615: has joined #ruby
[04:33:10] RiPuk: has joined #ruby
[04:42:26] orbyt_: has joined #ruby
[04:45:29] nowhere_man: has joined #ruby
[04:46:39] kapilp: has joined #ruby
[04:48:47] jmcgnh: has joined #ruby
[04:51:29] jenrzzz: has joined #ruby
[05:01:08] oetjenj: has joined #ruby
[05:16:17] Whoyeck: has joined #ruby
[05:17:37] xco: has joined #ruby
[05:22:54] oetjenj: has joined #ruby
[05:23:08] conta: has joined #ruby
[05:23:54] oetjenj: has joined #ruby
[05:24:26] oetjenj: has joined #ruby
[05:25:14] oetjenj: has joined #ruby
[05:25:59] oetjenj: has joined #ruby
[05:27:00] oetjenj: has joined #ruby
[05:27:31] bga57: has joined #ruby
[05:27:34] oetjenj: has joined #ruby
[05:28:21] oetjenj: has joined #ruby
[05:32:19] unixcat: has joined #ruby
[05:32:49] unixcat: has joined #ruby
[05:34:55] sauvin: has joined #ruby
[05:41:05] absolutejam: has joined #ruby
[05:41:06] havenwood: Whoyeck: hi
[05:42:12] Whoyeck: is this good place to start my journey with ruby / ruby on rails?
[05:44:16] ramfjord: has joined #ruby
[05:44:24] oetjenj: has joined #ruby
[05:49:16] ramfjord_: has joined #ruby
[05:51:59] jenrzzz: has joined #ruby
[06:07:11] kaiser: has joined #ruby
[06:14:39] teclator: has joined #ruby
[06:19:51] d^sh: has joined #ruby
[06:21:36] havenwood: Whoyeck: Yes, it is. Let us know when you have questions or code to show off!
[06:32:56] testuser12342345: has joined #ruby
[06:33:03] testuser12342345: has left #ruby: ()
[06:34:57] testuser12342345: has joined #ruby
[06:37:03] chalkmonster: has joined #ruby
[06:46:01] Whoyeck: havenwood: There's nothing to show yet :-) Which title is good to purchase first if my only experience is limited to shell scripts and hardware? (The Well Grounded Rubyist, Eloquent Ruby, Programming Ruby, An Illustrated Guide to Ruby)
[06:50:52] fphilipe: has joined #ruby
[06:53:37] lxsameer: has joined #ruby
[06:53:38] aupadhye: has joined #ruby
[06:56:15] absolutejam: has joined #ruby
[07:16:38] TomyWork: has joined #ruby
[07:25:10] deepredsky: has joined #ruby
[07:29:11] Sylario: has joined #ruby
[07:36:23] jenrzzz: has joined #ruby
[07:45:02] rashila: has joined #ruby
[07:45:07] rashila: Please suggest the best background job processing gem/tool with Rails 5
[07:47:21] schne1der: has joined #ruby
[07:49:35] andikr: has joined #ruby
[07:50:19] jmcgnh: has joined #ruby
[07:51:58] pabs: has joined #ruby
[08:00:38] deepreds1: has joined #ruby
[08:00:39] Technodrome: has joined #ruby
[08:01:06] mikecmpbll: has joined #ruby
[08:02:21] deepreds1: has joined #ruby
[08:02:22] themsay: has joined #ruby
[08:10:23] balo: rashila: sidekiq. i think it's the gold standard :D
[08:10:59] ByronJohnson: has joined #ruby
[08:22:04] conta: has joined #ruby
[08:22:21] MindSpark: has joined #ruby
[08:26:05] jenrzzz: has joined #ruby
[08:30:09] ur5us: has joined #ruby
[08:32:12] ep4sh2k: has joined #ruby
[08:34:24] ur5us: has joined #ruby
[08:35:17] ep4sh2k: has joined #ruby
[08:47:21] chalkmon1: has joined #ruby
[08:53:15] chalkmonster: has joined #ruby
[08:53:54] jefffrails35: has joined #ruby
[09:00:44] conta: has joined #ruby
[09:03:45] andikr: has joined #ruby
[09:10:02] jmosco: has joined #ruby
[09:10:43] jenrzzz: has joined #ruby
[09:14:22] Karan: has joined #ruby
[09:14:59] Karan: has left #ruby: ()
[09:22:34] rashila: balo: thanks
[09:23:21] tdy: has joined #ruby
[09:47:00] Swyper: has joined #ruby
[09:51:08] ur5us: has joined #ruby
[09:53:23] Swyper: has joined #ruby
[09:56:36] howdoi: has joined #ruby
[10:06:52] ellcs: has joined #ruby
[10:09:48] d^sh: has joined #ruby
[10:11:14] irdr: has joined #ruby
[10:11:46] ur5us: has joined #ruby
[10:13:39] conta: has joined #ruby
[10:13:50] LightStalker: has joined #ruby
[10:13:56] dan64: has joined #ruby
[10:19:06] jenrzzz: has joined #ruby
[10:22:28] xfbs: has joined #ruby
[10:24:57] xfbs: has joined #ruby
[10:44:01] tdy: has joined #ruby
[10:49:43] aecepoglu[m]: has joined #ruby
[10:51:21] Swyper: has joined #ruby
[10:51:58] andikr: has joined #ruby
[10:55:44] al2o3-cr: has joined #ruby
[10:59:51] jenrzzz: has joined #ruby
[11:00:21] Seich: has joined #ruby
[11:26:31] Seance[m]: has joined #ruby
[11:26:31] turt2live: has joined #ruby
[11:26:31] sepp2k: has joined #ruby
[11:31:46] marmotini_: has joined #ruby
[11:33:07] cca4: has joined #ruby
[11:37:05] cd: has joined #ruby
[11:38:06] mnemon: has joined #ruby
[11:38:06] spectra: has joined #ruby
[11:38:07] psmolen: has joined #ruby
[11:38:47] AJA4350: has joined #ruby
[11:46:52] Swyper: has joined #ruby
[11:47:25] catphish: has joined #ruby
[11:48:21] catphish: i believe i am suffering with a rather nasty problem whereby ruby's garbage collector running in a thread is closing sockets that the main thread is still using
[11:49:08] catphish: is this remotely possible? can anyone think why this would happen and how to prevent it
[12:00:32] catphish: confirmed: in our case at least, passing a tcp listener through a unix socket to another ruby, attaching a TCPServer to it, then running a GC in a thread, it closes the FD
[12:01:39] iotatron[m]: has joined #ruby
[12:10:01] chocoelho: has joined #ruby
[12:11:56] MindSpark: has joined #ruby
[12:12:51] MasterNayru: has joined #ruby
[12:13:44] stryek: has joined #ruby
[12:17:07] conta: has joined #ruby
[12:17:21] ramfjord: has joined #ruby
[12:26:28] griffindy: has joined #ruby
[12:29:55] jenrzzz: has joined #ruby
[12:30:27] yalue: has joined #ruby
[12:38:23] aupadhye: has joined #ruby
[12:41:05] corellian: has joined #ruby
[13:01:28] deepredsky: has joined #ruby
[13:02:28] conta: has joined #ruby
[13:05:15] MindSpark: has joined #ruby
[13:06:02] ytti: has joined #ruby
[13:06:24] sagax: has joined #ruby
[13:11:56] cca414: has joined #ruby
[13:18:07] kapilp: has joined #ruby
[13:19:51] Swyper: has joined #ruby
[13:21:17] ferhaty: has joined #ruby
[13:23:36] Fusl: has joined #ruby
[13:37:35] ramfjord: has joined #ruby
[13:42:44] catphish: the above problem may not have anything to do with threads at all, rather, the problem is with the TCPServer passed through the unix socket, and GC
[13:44:20] conta: has joined #ruby
[13:50:52] Swyper: has joined #ruby
[13:56:05] lord4163: has joined #ruby
[13:57:26] howdoi: has joined #ruby
[14:00:04] jenrzzz: has joined #ruby
[14:04:18] adam12: catphish: Passed through the unix socket as in some sort of IPC? or did you setup a socket and then Thread.new?
[14:04:49] catphish: adam12: the thread is a red herring, it happens in a single threaded app too
[14:05:11] catphish: adam12: i'm passing a TCPServer through an IPC UNIX socket
[14:05:16] adam12: catphish: Probably too hard for any of us to guess without seeing some code.
[14:05:28] adam12: catphish: But I'm not surprosed the GC is reaping the socket since it loses the reference.
[14:05:43] catphish: i *think* i've found the problem
[14:06:23] lucasb: has joined #ruby
[14:07:12] catphish: if i call UNIXSocket#recv_io without passing it a class, it returns an integer... i then create a new TCPServer using that integer, and when GC is called it closes the socket
[14:07:42] catphish: however, if i pass TCPServer to UNIXSocket#recv_io, it returns a TCPSocket, and the connection does not get closed by GC
[14:08:17] catphish: my confusion is that i don't understand why GC is closing the socket when it was originally represented by an integer, an integer isn't an object that can be reaped afaik
[14:08:36] catphish: unless UNIXSocket#recv_io creates a object internally even when it's told not to
[14:08:44] catphish: i hope that makes sense
[14:09:24] catphish: in all cases, i don't throw away the reference to the TCPServer
[14:09:39] catphish: obviously i do throw away references to the integer
[14:10:52] catphish: so... TCPServer.from_fd(unix_socket#recv_io) results in a situation where the socket is closed by GC, but unix_socket#recv_io(TCPServer) is fine
[14:11:26] catphish: as far as i can see, UNIXSocket#recv_io(nil) does not create any objects, so i'm pretty confused
[14:13:30] catphish: as long as the workaround (which is better code anyway) works, i'm happy
[14:15:57] gregf_: has joined #ruby
[14:17:12] involans: has joined #ruby
[14:18:10] agent_white: has joined #ruby
[14:22:02] Swyper: has joined #ruby
[14:22:20] Inline: has joined #ruby
[14:24:08] RiPuk: has joined #ruby
[14:27:14] s2013: has joined #ruby
[14:28:39] rikkipitt: has joined #ruby
[14:37:32] conta: has joined #ruby
[14:48:24] Nicmavr: has joined #ruby
[14:54:41] Esa_: has joined #ruby
[14:55:18] greengriminal: has joined #ruby
[14:57:04] Technodrome: has joined #ruby
[14:59:09] greengriminal: Hi Stripe folk, have a bit of weird situation surrounding Zip/Postal code validation. For background context here's what happened. We have a client that accepted a charge on their connect account. A buyer reported that it was asking them to input their zip code. They tried entering their Australian postal code but couldn't do so since the element form required 5 digits (this is because their card is US registered).
[15:00:05] Swyper: has joined #ruby
[15:00:27] greengriminal: That being said they entered a fake US Zip code (90210). The charge went through successfully meaning that Stripe isn't correctly validating postal code since its considered to pass the zip check.
[15:00:49] havenwood: greengriminal: I can't speak for Stripe, but Australian Square developers disable the zip code.
[15:01:02] greengriminal: https://imgur.com/XqVmW5h
[15:01:33] havenwood: greengriminal: See if they have a way to disable the zip code?
[15:01:38] greengriminal: Right. However this is a USD transacting connect account for someone paying in USD.
[15:01:45] ascarter: has joined #ruby
[15:01:48] havenwood: greengriminal: Web or mobile?
[15:02:06] greengriminal: There isn't an issue per-se, its just interesting to see that you can enter a "fake" postal code and a charge will be considered to have passed a zip check.
[15:03:00] havenwood: Yeah, why take a zip if you're not going to check it? Seems it'd be nicer to disable the zip entirely if it's unused.
[15:03:28] havenwood: Maybe they only don't check Australian, UK or other places where a zip isn't required.
[15:03:30] greengriminal: For the same transacting USD connect account someone from Australia made a charge and wasn't required to enter a zip code at all: https://imgur.com/jQkG5Nj
[15:03:51] havenwood: greengriminal: Yeah, that's what I'd expect. No zip for AU.
[15:03:52] greengriminal: Also its worth noting that Zip verification checks are disabled on this connect account.
[15:05:13] catphish: UK definitely uses postal code checks, maybe stripe doesn't though
[15:05:46] havenwood: catphish: I see UK folk not doing zip checks. ¯\_(ツ)_/¯ The SCA is right around the corner though.
[15:06:06] catphish: SCA is scary
[15:06:57] catphish: if you want to, you can still take card payments with basically no checks at all, but of course you shouldn't
[15:07:32] greengriminal: So here's something interesting. If you use the the test Asia-Pacific (Australian) card - 4000000360000006 and enter it for a USD transacting listing. You'll find that the zip code isn't required.
[15:08:50] s2013: has joined #ruby
[15:09:36] greengriminal: Well that makes sense after all the docs do state: ". However, street address verification is commonly supported for cards issued in the United States, Canada, and the United Kingdom." - https://stripe.com/docs/disputes/prevention#avs-check
[15:11:16] greengriminal: Still that doesn't explain the fact that if you are required to enter a postal code you could essentially enter a fake postal code/zip code and a charge will consider the check as "passed" :P
[15:12:07] vondruch: has joined #ruby
[15:12:44] havenwood: greengriminal: Yeah, I don't get the point of that. They should disable the zip, it seems, rather than show it but ignore the input. You might want to ping them on a backchannel and see if it's functioning as intended.
[15:16:29] vondruch: has joined #ruby
[15:16:40] aupadhye: has joined #ruby
[15:17:20] Swyper: has joined #ruby
[15:18:05] greengriminal: oh damn it i'm in the wrong channel.
[15:18:15] greengriminal: I thought i was in the stripe channel.
[15:18:24] havenwood: Haha, I was curious what it had to do with Ruby...
[15:18:25] greengriminal: well that's incredibly embarrassing.
[15:18:49] greengriminal: lol someone should've sounded the alarm and been like "kick this person out please" lol
[15:19:11] leftylink: hey, for all I know, everyone here except me is from stripe
[15:19:14] leftylink: so maybe it works out
[15:19:22] leftylink: s/is/could have been/
[15:20:02] leftylink: it could have just been an unspoken rule but everyone agreed not to talk about it
[15:24:15] SeepingN: has joined #ruby
[15:24:57] englishm: has joined #ruby
[15:27:50] vondruch: has joined #ruby
[15:30:11] jenrzzz: has joined #ruby
[15:30:27] oetjenj: has joined #ruby
[15:30:54] orbyt_: has joined #ruby
[15:34:28] codefriar: has joined #ruby
[15:45:41] schne1der: has joined #ruby
[15:57:37] s2013: has joined #ruby
[16:00:41] tdy: has joined #ruby
[16:01:08] cow[moo]: has joined #ruby
[16:11:02] impermanence: has joined #ruby
[16:12:33] r29v: has joined #ruby
[16:15:30] stooj: has joined #ruby
[16:16:52] RiPuk: has joined #ruby
[16:25:14] chalkmonster: has joined #ruby
[16:26:11] mdl8615: has joined #ruby
[16:33:26] _falsebay_: has joined #ruby
[16:34:44] gix: has joined #ruby
[16:39:26] cisco: has joined #ruby
[16:43:52] SCHAPiE: has joined #ruby
[16:48:50] tdy: has joined #ruby
[16:50:28] oetjenj: has joined #ruby
[16:56:32] sezuan: has joined #ruby
[16:58:55] cd: has joined #ruby
[16:59:48] cow[moo]: has joined #ruby
[17:00:18] jenrzzz: has joined #ruby
[17:00:22] Dr_MDMA_MD: has joined #ruby
[17:03:37] duderonomy: has joined #ruby
[17:14:24] englishm: has joined #ruby
[17:15:58] agent_white: has joined #ruby
[17:21:11] englishm: has joined #ruby
[17:31:42] hiroaki: has joined #ruby
[17:33:32] deepreds1: has joined #ruby
[17:37:47] adam12: `whatthegem <gem> changes` is so damn handy when updating dependencies.
[17:42:51] greengriminal: has joined #ruby
[17:45:30] ramfjord: has joined #ruby
[18:07:43] mdl8615: has joined #ruby
[18:10:09] absolutejam: has joined #ruby
[18:11:09] sameerynho: has joined #ruby
[18:11:48] mdl8615: has joined #ruby
[18:17:41] sauvin: has joined #ruby
[18:21:06] sauvin: has joined #ruby
[18:23:08] bitwinery: has joined #ruby
[18:24:56] sauvin: has joined #ruby
[18:41:52] nopc0de: has joined #ruby
[18:48:58] klaas: has joined #ruby
[18:49:11] mlt-: Is there a Set with default value? I'm looking for some idiom to "filter" a variable to be one of the predefined values or default value if something else is in the variable
[18:50:11] absolutejam: has joined #ruby
[18:53:33] havenwood: mlt-: I answered in the other channel. >.>
[18:54:18] havenwood: But Set has no #fetch. It does have #find from including Enumerable, and #find does take a default argument to return when nothing is found.
[18:54:35] Inline__: has joined #ruby
[18:55:47] havenwood: mlt-: There's also no problem with: set.member?(value) ? value : default
[18:57:23] havenwood: &>> Set.new.find(->{ 42 }) { |item| item == :nope }
[18:57:25] rubydoc: stderr: -e:2:in `<main>': uninitialized constant Set (NameError) (https://carc.in/#/r/7abg)
[18:57:35] havenwood: &>> require 'set'; Set.new.member?(:nope) ? :nope : 42
[18:57:35] rubydoc: # => 42 (https://carc.in/#/r/7abh)
[18:57:42] havenwood: &>> require 'set'; Set.new.find(->{ 42 }) { |item| item == :nope }
[18:57:46] rubydoc: # => 42 (https://carc.in/#/r/7abi)
[18:58:12] Inline: has joined #ruby
[19:03:25] mdl8615_: has joined #ruby
[19:04:33] themsay: has joined #ruby
[19:07:11] plujon: has joined #ruby
[19:07:51] plujon: def foo(x = (return @x; nil)); end # what does this mean?
[19:08:32] marmotini_: has joined #ruby
[19:14:07] ElFerna: has joined #ruby
[19:14:47] havenwood: plujon: It means you have a deranged programmer. :P
[19:16:32] plujon: It appears to be an idiom for setting default arguments. But I don't know what the = (return @x; nil) does. Is that a way to use a default argument from the including class?
[19:17:01] havenwood: plujon: You'd normally set the default argument like: def foo(x = @x); end
[19:17:22] havenwood: plujon: That ^ method would always return `nil`, sine there's nothing in the method body.
[19:17:40] havenwood: plujon: The example you're showing is an odd hack to actually return from the default argument.
[19:17:41] plujon: def foo(x = (return @x; nil)); @x = x; end # what does this mean?
[19:18:09] havenwood: plujon: That is showing an odd hack where you can return from the default argument, never even evaluating the body.
[19:18:41] havenwood: plujon: For example: def foo(x = (return 41; nil)); 42 end
[19:19:04] havenwood: plujon: That ^ bizarre method will return 41 if you call it without an argument and 42 if you call it with an argument.
[19:19:07] havenwood: plujon: Don't code this way!
[19:21:03] greengriminal: has joined #ruby
[19:22:24] plujon: havenwood: Thanks; fascinating. I didn't know you could return from a default argument section.
[19:23:24] plujon: So, it's actually an idiom for a getter/setter.
[19:23:54] havenwood: plujon: Instead, you can write: UNSET = Object.new; def foo(x = UNSET); return @x if x == UNSET; end
[19:24:00] ramfjord: has joined #ruby
[19:24:04] adam12: havenwood: that might be the most bizarre thing I've seen recently.
[19:24:11] havenwood: plujon: I wouldn't call it an idiom. It's more of a hack.
[19:24:35] havenwood: adam12: Heh, srsly.
[19:26:09] havenwood: plujon: That shouldn't pass code review. It's not *supposed* to work. There are better ways to achieve the same thing that are much kinder on the reader.
[19:26:54] havenwood: plujon: It's fine to establish the desired behavior with your tests. But I'd recommend refactoring away from this particular approach to returning a default argument.
[19:27:00] Azure: has joined #ruby
[19:29:07] plujon: Got it. Thanks for the interpretation.
[19:29:10] fphilipe: has joined #ruby
[19:35:21] nopc0de_: has joined #ruby
[19:37:30] tf2ftw: has joined #ruby
[19:40:42] nopc0de: has joined #ruby
[19:43:28] VeryBewitching: has joined #ruby
[19:55:57] absolutejam: has joined #ruby
[19:57:50] tf2ftw: has left #ruby: ()
[19:57:57] tf2ftw: has joined #ruby
[19:58:05] Naros: has joined #ruby
[19:58:20] Naros: has left #ruby: ()
[20:02:55] jenrzzz: has joined #ruby
[20:06:05] ramfjord: has joined #ruby
[20:07:14] bougyman: what's the go-to for password generation? (lightweight)
[20:08:34] adam12: bougyman: I use this. Single file. https://gist.github.com/lpar/1031933
[20:10:35] havenwood: bougyman: SecureRandom.uuid :P
[20:12:08] havenwood: &>> SecureRandom.urlsafe_base64(32)
[20:12:11] rubydoc: stderr: -e:2:in `<main>': uninitialized constant SecureRandom (NameError) (https://carc.in/#/r/7acb)
[20:12:19] havenwood: &>> require 'securerandom'; SecureRandom.urlsafe_base64(32)
[20:12:21] rubydoc: # => "Vv1boeScazWF5XsS21Qeciip7fbFxo4iQE72KNg5phM" (https://carc.in/#/r/7acc)
[20:13:41] havenwood: &>> require 'securerandom'; SecureRandom.uuid
[20:13:42] rubydoc: # => "87fae1ef-174b-41bf-86f2-d02537e3a94a" (https://carc.in/#/r/7acd)
[20:14:03] havenwood: bougyman: UUIDs are hard to guess!
[20:16:04] tf2ftw: has joined #ruby
[20:16:06] bougyman: adam12: eh, I was thinking about something more along these lines: https://github.com/dmke/simple-password-gen/blob/master/lib/simple-password-gen.rb
[20:16:15] bougyman: I just really don't like his name for the class (Password)
[20:16:49] havenwood: bougyman: How about Base58?
[20:17:09] havenwood: bougyman: It's Base64 with the ambiguous printed characters removed.
[20:17:32] havenwood: &>> require 'securerandom'; SecureRandom.send(:choose, [*?1..?9, *?a..?k, *?m..?z, *?A..?H, *?J..?N, *?P..?Z], 20).gsub(/(.{5})(?=.)/, '\1-\2')
[20:17:34] rubydoc: # => "TrECU-Q25PR-Q4Xym-xuke1" (https://carc.in/#/r/7ace)
[20:17:55] havenwood: bougyman: That's Base58, 20 digits, clumps of 5
[20:18:02] Jonopoly: has joined #ruby
[20:18:22] nopc0de_: has joined #ruby
[20:18:52] adam12: bougyman: Yeah, that's a horrible class name for a gem to ship with.
[20:18:57] havenwood: &>> require 'securerandom'; SecureRandom.send(:choose, [*?1..?9, *?a..?k, *?m..?z, *?A..?H, *?J..?N, *?P..?Z], 12)
[20:18:58] rubydoc: # => "px34Jf2Ge1Bw" (https://carc.in/#/r/7acg)
[20:20:09] havenwood: How about a markov chain password generator using Matrix?
[20:23:05] ramfjord: has joined #ruby
[20:24:11] havenwood: https://en.wikipedia.org/wiki/Stochastic_matrix
[20:24:22] TvL2386: has joined #ruby
[20:31:10] bougyman: adam12: I know.
[20:32:15] AJA4350: has joined #ruby
[20:37:30] merpnderp: has joined #ruby
[20:42:05] themsay: has joined #ruby
[20:54:17] ur5us: has joined #ruby
[20:54:40] absolutejam1: has joined #ruby
[21:00:12] wolfshappen: has joined #ruby
[21:14:55] themsay: has joined #ruby
[21:15:16] mikecmpbll: has joined #ruby
[21:17:28] nopc0de: has joined #ruby
[21:21:36] themsay: has joined #ruby
[21:28:53] cow[moo]: has joined #ruby
[21:35:27] jinie: has joined #ruby
[21:37:40] cliluw: has joined #ruby
[21:41:23] Jonopoly: has joined #ruby
[21:45:53] absolutejam2: has joined #ruby
[21:48:57] mokha: has joined #ruby
[21:55:22] oetjenj: has joined #ruby
[21:58:53] x86sk: has joined #ruby
[22:08:00] jenrzzz: has joined #ruby
[22:11:39] xco: has joined #ruby
[22:15:54] jenrzzz: has joined #ruby
[22:20:15] nowhere_man: has joined #ruby
[22:21:37] fphilipe: has joined #ruby
[22:25:27] plujon: The 'geoip-c' gem fails to load my GeoLite2-Country database; anybody know of a reliable geoip gem that works with MaxMind 2 databases?
[22:29:00] orbyt_: has joined #ruby
[22:32:04] impermanence: has joined #ruby
[22:51:05] GodFather: has joined #ruby
[22:52:27] thebananaking: has joined #ruby
[22:54:14] bitwinery: has joined #ruby
[22:56:42] Ring0`: has joined #ruby
[23:04:42] s2013: has joined #ruby
[23:06:56] Skaterhaym: has joined #ruby
[23:08:31] wildtrees: has joined #ruby
[23:12:03] oetjenj: has joined #ruby
[23:13:30] absolutejam2: has joined #ruby
[23:30:48] GodFather: has joined #ruby
[23:33:56] Skaterhaym: has joined #ruby
[23:34:43] DaRock: has joined #ruby
[23:35:53] ramfjord: has joined #ruby
[23:40:53] agent_white: has joined #ruby
[23:47:53] nowhereman: has joined #ruby