Activity Graph

Page 1 of 1



[05:15:08] Authenticator: has joined #ruby


[14:55:04] Authenticator: has joined #ruby


[08:08:46] Authenticator: Ping timeout: 260 seconds
[08:10:57] Authenticator: has joined #ruby


[02:28:34] Authenticator: has joined #ruby


[09:17:52] Authenticator: Ping timeout: 260 seconds
[13:33:30] Authenticator: has joined #ruby
[13:44:32] Authenticator: Ping timeout: 268 seconds
[13:46:09] Authenticator: has joined #ruby


[17:36:48] Authenticator: has joined #ruby



[18:57:45] Authenticator: A user of an app I wrote is having a *ton* of 'already initialized constant' messages about OpenSSL. I don't when I run the same app the same way. I bundled the OpenSSL 2.0.3 gem with it.
[19:06:38] Authenticator: Does anyone know why my user is getting a bunch of OpenSSL constant-already-initialized messages and I am not? They installed my bundled gems...
[19:23:34] Authenticator: pupsicle: Thanks.


[17:07:51] Authenticator: I'm using Typhoeus (libcurl based) to make multiple Mutual-TLS connections to the same server. However, I need to connect with two sets of client certs and Typhoeus reuses the connection between them, meaning that all calls come from the same "user". I can't even get forbid_reuse to work, but I don't want that anyways. I want two separate connections both using keepalive properly.
[17:13:59] Authenticator: SilentNinja1: What fails? Do you just not see the logs anywhere?
[17:46:15] Authenticator: SilentNinja1: Yeah, I just tried it in Pry and it works for me. Dunno about Rails.
[17:50:14] Authenticator: That seems to be all you need to do.
[17:57:13] Authenticator: Sorry, I don't know the Rails side of it.


[10:13:32] Authenticator: has joined #ruby


[22:18:28] Authenticator: has joined #ruby
[22:20:13] Authenticator: I'm having trouble with BinData, describing a .zip structure. The hard bit is the variable-length array of "extra" data. The format is NameLen, ExtraLen, Name, [[ID, Len, Data], ...]
[22:21:09] Authenticator: I can write a record for a File's structure if I treat the extra data like a blob, but I can't figure out how to make an array of structures.
[22:25:42] Authenticator: Can anyone help me with this BinData Array problem?
[23:03:15] Authenticator: Can anyone help walk me through making a variable-length array of variable-length structure with the BinData gem?


[00:42:47] Authenticator: Ping timeout: 260 seconds


[18:20:16] Authenticator: Has anyone gotten Mutual-TLS working with Typhoeus? I can't figure out what options it wants and I keep getting an ssl_certproblem error when trying to specify the client cert/key/pass.
[18:45:40] Authenticator: Typhoeus issue solved - the keypassword option is :keypasswd (note spelling) and you need to set the sslcerttype to 'p12' (if using a pkcs12 format keystore...)


[23:09:07] Authenticator: I'm using Typhoeus and I can't get client-cert authentication working. The same cert/key object work with Net::HTTP and other libs. I get :return_code=>:ssl_certproblem


[23:15:53] Authenticator: has joined #ruby


[17:21:20] Authenticator: has joined #ruby
[17:22:31] Authenticator: What's the difference between the builtin OpenSSL and the gem OpenSSL?
[17:25:07] Authenticator: matthewd: Thanks.


[19:36:38] Authenticator: has joined #ruby
[20:01:12] Authenticator: I'm using Net::Ping::External to ping my servers and I'm getting odd results trying to run a bunch at once.
[20:02:04] Authenticator: I had to modify the gem to call thread.exitstatus.value to prevent it from finishing too quickly. As if it's not waiting after stdin.close ...
[20:27:25] Authenticator: havenwood: I was just closing stdin, assuming that would thread.join, but it doesn't seem to...
[20:28:59] Authenticator: The threads are running to completion, but at the end of the block, not after the stdin.close....
[20:32:12] Authenticator: That's a nice addition. I'm looking forward to trying 2.4 later today.
[20:34:23] Authenticator: havenwood: View the source for this: ... I have to add 'thread.join' at line 56 to keep it from completing almost instantly.
[21:47:08] Authenticator: Where is the net-ping gem built from? Neither the homepage nor the source link point to code which matches the gem I'm using...



[01:41:44] Authenticator: has joined #ruby


[19:42:54] Authenticator: Ping timeout: 252 seconds


[18:37:40] Authenticator: Ping timeout: 252 seconds
[18:51:25] Authenticator: has joined #ruby


[18:20:33] Authenticator: has joined #ruby


[20:02:46] Authenticator: has left #ruby: ()


[19:51:46] Authenticator: has joined #ruby


[16:46:15] Authenticator: The default JSON library doesn't seem to handle ASCII-8BIT strings, but Oj does. Is there a setting in the default library that I'm missing?
[16:54:49] Authenticator: crime: Yeah, that looks similar.
[16:57:07] Authenticator: crime: Well, with Ape's answer I might just doc the other end (which accepts ascii-8bit JSON strings) as broken, and skip it. :D
[16:58:34] Authenticator: The odd thing is that it's a Tomcat server and it's normally pretty picky about every bit.


[00:38:51] Authenticator: Ping timeout: 252 seconds
[01:35:42] Authenticator: has joined #ruby


[09:05:31] Authenticator: has joined #ruby


[00:16:50] Authenticator: has joined #ruby
[00:39:13] Authenticator: I'm using bundler and trying to vendor my deps but it tries to vendor my own gemfiles, recursively. What's wrong?
[02:26:40] Authenticator: Ping timeout: 252 seconds
[03:22:38] Authenticator: has joined #ruby
[18:22:09] Authenticator: has joined #ruby
[18:53:01] Authenticator: I'm using bundler and trying to vendor my deps but it tries to vendor my own gem's files, recursively. What's wrong?
[19:01:15] Authenticator: apeiros: You want I should paste in the novel I wrote about it? :P
[19:01:38] Authenticator: I'm using the 'gemspec' declaration, which is new for me.
[19:02:26] Authenticator: It adds a local dependency, which I assume is the issue... But when it copies the gem to ./vendor it also copies the ./vendor directory...
[19:06:15] Authenticator: jhass: Because they're checked in. But that's not the issue - I started to filter 'vendor/' in the gemspec and the same behavior happens.
[19:11:25] Authenticator: jhass: Empty project, using gemspec, ./vendor checked into git? In the Gemfile.lock does the gem have itself as a dependency?
[19:14:17] Authenticator: jhass: I'm pretty sure it's not an ls-files issue though, because even when I manually filtered out the vendor dir it still happened.


[05:23:37] Authenticator: Ping timeout: 252 seconds


[22:19:38] Authenticator: Ping timeout: 252 seconds
[23:20:22] Authenticator: has joined #ruby


[15:30:05] Authenticator: Ping timeout: 252 seconds
[16:26:02] Authenticator: has joined #ruby


[08:37:40] Authenticator: Ping timeout: 252 seconds
[08:44:27] Authenticator: has joined #ruby


[19:45:21] Authenticator: has joined #ruby
[19:47:10] Authenticator: Does anyone here have experience with Keyczar? I'm trying to replicate an older program either manually (parse Keyczar format, handle raw RSA ...) or using the keyczar_ruby library.


[17:23:26] Authenticator: has left #ruby: ()


[00:15:11] Authenticator: has joined #ruby
[00:19:55] Authenticator: Ping timeout: 252 seconds
[01:16:10] Authenticator: has joined #ruby
[02:46:47] Authenticator: Ping timeout: 252 seconds
[07:49:41] Authenticator: has joined #ruby
[07:54:13] Authenticator: Ping timeout: 252 seconds
[10:50:47] Authenticator: has joined #ruby
[11:00:07] Authenticator: Ping timeout: 252 seconds
[14:01:58] Authenticator: has joined #ruby
[14:07:40] Authenticator: Ping timeout: 252 seconds
[16:04:13] Authenticator: has joined #ruby


[22:24:05] Authenticator: Ping timeout: 252 seconds


[17:43:35] Authenticator: What's a good single-file-executable Ruby packager for Linux? Currently I'm fetching Ruby 2.2+, building an RPM, including my gem, and RPMing that. It takes admin privs to install, and isn't very tidy once installed.
[18:53:15] Authenticator: havenwood: Sorry I had to go AFK. I'm looking at your two links, thanks. (My question was vague, yes. Easy to the users is more the goal than specifically single-file.)


[19:28:16] Authenticator: has joined #ruby
[19:31:52] Authenticator: I've written a CLI utility as a gem against 2.2.x+ and I want to run this on a RHEL6 machine without a modern Ruby. In the past I've downloaded and built Ruby and packaged that, then packaged the gem separately, etc. Is there a good way to do this?


[19:28:47] Authenticator: Remote host closed the connection


[20:27:16] Authenticator: Why do threads get deleted from a ThreadGroup when they die? I was hoping to use it as a way to map the values out later.


[14:17:48] Authenticator: Ping timeout: 265 seconds
[15:15:01] Authenticator: has joined #ruby


[16:47:37] Authenticator: has joined #ruby


[23:01:27] Authenticator: has joined #ruby
[23:03:22] Authenticator: has joined #ruby
[23:04:53] Authenticator: has joined #ruby
[23:09:09] Authenticator: I'm building a gem, using bundler. Is there any way I can get it to install, from a .gem on my internal server, but using the dependencies in vendor/cache? I can get *bundler* to do this, but that's another step for the user...
[23:12:30] Authenticator: jhass: I'm including the deps in the gem, so no the user may not have Bundler at that point.
[23:14:53] Authenticator: jhass: I imagine it does not - but yeah that's what I want. Otherwise, what good are vendored dependencies?
[23:17:33] Authenticator: jhass: Yeah, I mean that's what I'm discovering... I can see that it's that way because gems came first. Is it not a good idea though? A pass-through to bundler in modern versions of gem, or something...?
[23:18:59] Authenticator: I think I could fake what I want if I separated the Gemfile. Tell gem that the gem relied only on bundler, then run bundler install --local...
[23:19:08] Authenticator: drbrain: Looking.
[23:20:11] Authenticator: jhass: I imagine you'd be tough to convince.
[23:22:44] Authenticator: drbrain: jhass: Mostly. Yeah. I know it doesn't. I'm trying to figure out if I should just make it work via some simple work-around or if there's a better way to achieve a simple local install.
[23:24:06] Authenticator: jhass: Do you have any idea what it would be for a seamless (non-ruby users trying to install script) UX, with a no-net-connection install
[23:25:47] Authenticator: jhass: Thanks. Looking.



[22:54:18] Authenticator: Ping timeout: 265 seconds
[22:56:06] Authenticator: has joined #ruby


[21:22:13] Authenticator: jhass: Thanks for the Typhoeus suggestion. I'm looking into it now.
[21:35:56] Authenticator: I'm using Net::HTTP.start {} to make many API calls. After it's processed ~16400 items it always falls over with "Errno::EADDRNOTAVAIL: Can't assign requested address - connect(2) ..." - That's suspiciously close to 16384. After a while, I can rerun it and it'll do another ~16k... Any ideas why it fails?
[21:43:45] Authenticator: c355E3B: I'm doing start(uri.hostname, uri.port) {|h| ... } if that's what you mean by a port.
[21:45:00] Authenticator: c355E3B: 1024 65000
[21:45:43] Authenticator: adaedra: Hmm, I'll see if I can fiddle with keep-alive or something. These are quick requests, and that this does timeout eventually and let me run it again does imply that...
[21:46:10] Authenticator: havenwood: I have no idea.
[21:46:41] Authenticator: c355E3B: I could try throwing in a GC call to see if it helps. It *shouldn't*, but...
[21:52:10] Authenticator: havenwood: I'm just trying now.
[21:55:41] Authenticator: havenwood: I've also grabbed 'http'. I'll try it too.
[22:00:01] Authenticator: Why do I have to do a two-phase load? "gem 'typhoeus' ; require 'typhoeus'"
[22:00:45] Authenticator: havenwood: I've already got Mechanize but I always saw it as a slower option for parsing and scraping.
[22:00:55] Authenticator: I don't know if that's at all fair...
[22:18:20] Authenticator: al2o3-cr: You need ="1024 $((2**n))" in that command line. I didn't think > 65535 would work, and it didn't.
[23:01:12] Authenticator: al2o3-cr: Yeah, 2**16 works. Too bad we didn't figure on the p65k limit when Unix was being designed.
[23:30:39] Authenticator: jhass: havenwood: Wow, Typhoeus is *amazing*. It's like twenty or more times faster than Net::HTTP and I've made well over 16k - 58k in 35 seconds, and it handled it perfectly!


[23:41:40] Authenticator: has joined #ruby
[23:43:21] Authenticator: When I make 16k connections in short-order with Net::HTTP I get "Errno::EADDRNOTAVAIL: Can't assign requested address - connect(2)" errors. I'm doing req = uri ; Net::HTTP.start {|h| resp = h.request req } ...
[23:43:57] Authenticator: On OSX, if that matters.
[23:44:54] Authenticator: adaedra: They're all threaded, but I *think* I'm only making ~15 threads...
[23:46:23] Authenticator: It looks like, using the block version, it should take care of closing the connections automatically...?


[21:55:52] Authenticator: has left #ruby: ()


[10:08:34] Authenticator: Ping timeout: 256 seconds
[10:09:13] Authenticator: has joined #ruby


[20:47:11] Authenticator: A Hash, yes. Otherwise, no because that's pretty broad.
[20:52:40] Authenticator: dorei: {|n| [n,x.instance_variable_get(n)] }
[20:52:57] Authenticator: or better: def x.to_hash ; {|n| [n, instance_variable_get(n)] } ; end


[23:43:23] Authenticator: has joined #ruby



[03:34:08] Authenticator: has joined #ruby



[18:19:57] Authenticator: has joined #ruby


[18:12:43] Authenticator: has joined #ruby
[18:21:59] Authenticator: chette: Are you referring to the ENV variables in the shell, or local variables for a method as in 'binding.pry'?
[18:38:29] Authenticator: dudedudeman: The "drag and drop" is more HTML/etc than webapp. Pretty easy though.
[18:40:52] Authenticator: dudedudeman: Look into Sinatra for a simple Ruby webapp. It's very easy, but there are optimizations when you start dealing with large files, etc, so as to not just buffer the files in memory.
[18:43:53] Authenticator: postmodern: I've never heard of that *by name*. What are you trying to do? What is the pattern supposed to offer?
[18:56:11] Authenticator: Senjai: What would the difference be? (Write as if it were an actual file...)
[18:58:49] Authenticator: dstarh: This works for me. def test(str, fh) ; fh.puts str ; fh ; end ; fh = t('kittens', ; fh.rewind ;
[18:59:02] Authenticator: The difference is the rewind.


[18:26:23] Authenticator: has joined #ruby


[00:00:20] Authenticator: I mistyped above though, ... if it's blockeD, reading (.pop), as the last one [producer] dies ...
[00:01:40] Authenticator: I made it work originally by rescuing Exception on the q.pop, which seemed ugly, and only worked once per runtime?!?
[00:02:16] Authenticator: Now I've got the producers set to push a semaphore value onto the queue as they die, which is much less hacky, but still doesn't seem clean.
[00:06:12] Authenticator: splud: I've heard it called that, in retrospect. I'm currently going out of my way to collect one when they're all dead, but if I collected one each and just counted them that might be easier.


[23:55:05] Authenticator: I'm setting up a small produce/consume queue, using a Queue to avoid blocking. But I don't know before-hand how much will be put into it - how do I use it gracefully, without busy-waiting, and without rescuing Exception to catch deadlocks?
[23:57:51] Authenticator: No, on receipt. It works as long as the consumers are alive, but if it's blocker, reading, as the last one dies it'll either hang or raise a Deadlock exception.
[23:59:38] Authenticator: q = ; readers = 3.times.collect { { maybe_die ; q << q_result } } ; loop do ; r = q.pop ; puts r ; end


[00:14:04] Authenticator: b3itz: Implement it via the CSV lib for testing and code your impementation to have the same interface (if possible) and return the same values. Reverse engineer it to the level desired for class.
[05:25:58] Authenticator: Is there a way to use catch/throw (not raise/rescue) from a sub-thread?
[05:51:00] Authenticator: Until that command stops - like to print a '*' status every second or something?
[06:11:24] Authenticator: t = { $r = system('sleep','1') } ; loop do ; puts '*' ; sleep 1 ; break unless t.alive? ; end
[06:19:58] Authenticator: Or, def show_alive s ; print "processing #{s}: " ; t = { loop do ; print '*' ; sleep 1 ; end } ; yield ; ensure ; t.kill ; end ; show_alive('pings') { o = `ping -c5 >/dev/null` }
[06:23:30] Authenticator: sevenseacat: ?
[18:06:20] Authenticator: Is there a way to use catch/throw (not raise/rescue) from a sub-thread?


[23:35:08] Authenticator: MattB: Would you like something more like by_week.length.times.collect {|i| by_week[i..-1].sum }
[23:35:45] Authenticator: MattB: That might be clearer that you're collecting the result of a function of i, not v and i... Is that what you want?
[23:38:40] Authenticator: It depends, is the [5,4,3,2,1] a constant - can we simplify it, or are those just sample numbers?
[23:55:23] Authenticator: What I mean is, is it just a trivial math problem? The sum of a range of integers? (n..N).to_a.sum? Or is the point of it the index manipulation and the example was just poor?
[23:55:49] Authenticator: vowels = %w(a e i o u) ; vowels.length.times.collect {|i| vowels[i..-1].sum } => ["aeiou", "eiou", "iou", "ou", "u"]


[21:38:47] Authenticator: I've got a class which extends a module. A class method calls the module method, which creates a @ivar with ||=. I call the module method twice from the same class method and the value returned isn't retained. Why might this be? In a trivial test example it is retained as I'd expect...
[21:41:52] Authenticator: zenspider: I know, but I'm having trouble figuring out what to check. I've printed out the object_id and caller for each invokation and it's the same object - the class, and is called from the lines I suspect.
[21:46:52] Authenticator: Hmmm, somewhat obscure problem. The calls ended up being handled daemonized. Because of threading coincidence they appeared to be running linearly though. And of course, the value was only being set in the new process.
[21:49:13] Authenticator: zenspider: Yes. I was properly setting the ivar, but when it was being run was in a forked process so it couldn't writeback.
[21:51:16] Authenticator: zenspider: Yes, I'll make it a module ivar set at load, then make an accessor.


[00:00:43] Authenticator: When calling Open3.capture3(cmd) where cmd is ['p4','fstat',file1, file2], I get a SystemStackError when cmd.length > ~100_000... When I rescue the error and check caller it's never got anything in it, unlike when I rescue def x ; x ; end and caller is ~9500 entries long. What's going on?


[20:16:03] Authenticator: Is there a way to stop SimpleCov from reporting for a given process? It's failing my forking tests when I run them with coverage on. I'm already setting a CommandName based on the PID...
[21:24:53] Authenticator: Does anyone know how to disable SimpleCov in a subprocess? My forking tests are dying with coverage on.