havenwood changed the topic of #ruby to: Rules & more: https://ruby-community.com | Ruby 2.7.1, 2.6.6, 2.5.8: https://www.ruby-lang.org | Paste 4+ lines of text to https://dpaste.de/ and select Ruby as the language | Rails questions? Ask in #RubyOnRails | Books: https://goo.gl/wpGhoQ | Logs: https://irclog.whitequark.org/ruby | Can't talk? Register/identify with Nickserv first!
sergioro has quit [Quit: leaving]
alfiemax has joined #ruby
TCZ has joined #ruby
tau has quit [Remote host closed the connection]
alfiemax has quit [Remote host closed the connection]
royal_screwup214 has quit [Quit: Connection closed]
xco has quit [Quit: Textual IRC Client: www.textualapp.com]
dionysus69 has quit [Quit: dionysus69]
ur5us has quit [Ping timeout: 260 seconds]
TCZ has quit [Quit: Leaving]
zenspider has quit [Quit: bye]
zenspider has joined #ruby
d3bug has joined #ruby
<zenspider> rawr
alfiemax has joined #ruby
sergioro has joined #ruby
<havenwood> zenspider: hiya
akem has quit [Remote host closed the connection]
ldepandis has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
alfiemax has quit [Remote host closed the connection]
ur5us has joined #ruby
alexherbo2 has quit [Ping timeout: 256 seconds]
akem has joined #ruby
akem has quit [Remote host closed the connection]
akem has joined #ruby
akem has quit [Read error: Connection reset by peer]
akem has joined #ruby
akem has quit [Remote host closed the connection]
gitter1234 has quit [Quit: Connection closed for inactivity]
akem has joined #ruby
akem has quit [Read error: Connection reset by peer]
akem has joined #ruby
akem has quit [Remote host closed the connection]
apotheon has quit [Quit: leaving]
apotheon has joined #ruby
howdoi has quit [Quit: Connection closed for inactivity]
brool has quit [Quit: ripping and tearing]
SeepingN has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rmnull has quit [Ping timeout: 265 seconds]
gitter1234 has joined #ruby
alfiemax has joined #ruby
chalkmonster has quit [Quit: WeeChat 2.8]
pandakekok9 has joined #ruby
troulouliou_div2 has quit [Remote host closed the connection]
Fridtjof has quit [Ping timeout: 265 seconds]
Fridtjof has joined #ruby
gix has quit [Ping timeout: 256 seconds]
alfiemax has quit [Remote host closed the connection]
code_zombie has quit [Quit: Leaving]
oneeggeach has joined #ruby
oneeggeach has quit [Client Quit]
polishdub has joined #ruby
d3bug has quit [Quit: Connection closed for inactivity]
zululee_3 has joined #ruby
NODE has quit [Remote host closed the connection]
segy_ has joined #ruby
NODE has joined #ruby
Sp4rKy_ has joined #ruby
jingjinghack has joined #ruby
Jello_Raptor_ has joined #ruby
xMopx- has joined #ruby
segy has quit [*.net *.split]
pavelz has quit [*.net *.split]
connor_goodwolf has quit [*.net *.split]
zululee_ has quit [*.net *.split]
contradictioned_ has quit [*.net *.split]
Sp4rKy has quit [*.net *.split]
olblak has quit [*.net *.split]
Scient has quit [*.net *.split]
Jello_Raptor has quit [*.net *.split]
Davey has quit [*.net *.split]
xMopx has quit [*.net *.split]
r29v has quit [*.net *.split]
eam has quit [*.net *.split]
phI||Ip has quit [*.net *.split]
cnomad has quit [*.net *.split]
zululee_3 is now known as zululee_
Jello_Raptor_ is now known as Jello_Raptor
Sp4rKy_ is now known as Sp4rKy
segy_ is now known as segy
Scient has joined #ruby
xMopx- is now known as xMopx
r3m has quit [Quit: WeeChat 2.9-dev]
alexherbo2 has joined #ruby
r3m has joined #ruby
alexherbo21 has joined #ruby
alexherbo2 has quit [Ping timeout: 250 seconds]
alexherbo21 is now known as alexherbo2
sauvin has joined #ruby
SeepingN has joined #ruby
MrCrackPot has joined #ruby
SeepingN has quit [Read error: Connection reset by peer]
SuperLag has quit [Ping timeout: 256 seconds]
SeepingN has joined #ruby
SuperLag has joined #ruby
ChmEarl has quit [Quit: Leaving]
<zenspider> been a while...
d3bug has joined #ruby
SuperL4g has joined #ruby
SeepingN has quit [Ping timeout: 260 seconds]
SuperLag has quit [Ping timeout: 240 seconds]
alfiemax_ has joined #ruby
SuperL4g has quit [Ping timeout: 240 seconds]
SuperLag has joined #ruby
ur5us has quit [Ping timeout: 260 seconds]
SuperL4g has joined #ruby
roadie has joined #ruby
polishdub has quit [Read error: Connection reset by peer]
SuperLag has quit [Ping timeout: 256 seconds]
SuperL4g has quit [Ping timeout: 256 seconds]
markopasha has joined #ruby
SuperLag has joined #ruby
cthulchu_ has quit [Ping timeout: 264 seconds]
alfiemax_ has quit [Remote host closed the connection]
gitter1234 has quit [Quit: Connection closed for inactivity]
segy has quit [Read error: Connection reset by peer]
zapata has quit [Quit: WeeChat 2.8]
rmnull has joined #ruby
imode has quit [Ping timeout: 256 seconds]
helpa has joined #ruby
segy has joined #ruby
rmnull1 has joined #ruby
rmnull1 has quit [Client Quit]
rmnull has quit [Ping timeout: 265 seconds]
imadper has joined #ruby
vondruch has quit [Quit: vondruch]
vondruch has joined #ruby
vondruch has quit [Remote host closed the connection]
vondruch has joined #ruby
TheBrayn has quit [Quit: WeeChat 2.7.1]
TheBrayn has joined #ruby
conta has joined #ruby
imadper has quit [Remote host closed the connection]
imadper has joined #ruby
nofxx__ has joined #ruby
nofxx_ has quit [Ping timeout: 264 seconds]
SuperLag has quit [Ping timeout: 256 seconds]
SuperLag has joined #ruby
ur5us has joined #ruby
schne1der has joined #ruby
conta has quit [Quit: conta]
zapata has joined #ruby
hassox has joined #ruby
conta has joined #ruby
d3bug has quit [Quit: Connection closed for inactivity]
alfiemax has joined #ruby
alfiemax has quit [Ping timeout: 256 seconds]
akem has joined #ruby
xco has joined #ruby
Tempesta has quit [Ping timeout: 265 seconds]
turt2live has quit [Quit: killed]
mbarbar has quit [Quit: killed]
linuus[m] has quit [Quit: killed]
stan has quit [Quit: killed]
Tempesta has joined #ruby
Guest45 has joined #ruby
roadie has quit [Quit: ERC (IRC client for Emacs 25.3.50.1)]
roadie has joined #ruby
gix has joined #ruby
linuus[m] has joined #ruby
Guest45 has quit [Quit: Connection closed]
ur5us has quit [Ping timeout: 260 seconds]
stan has joined #ruby
mbarbar has joined #ruby
turt2live has joined #ruby
alfiemax has joined #ruby
alfiemax has quit [Ping timeout: 265 seconds]
infinityfye has joined #ruby
i9zO5AP has joined #ruby
Ai9zO5AP has quit [Ping timeout: 240 seconds]
ur5us has joined #ruby
Ai9zO5AP has joined #ruby
i9zO5AP has quit [Ping timeout: 240 seconds]
postmodern has quit [Quit: Leaving]
davor has quit [Ping timeout: 265 seconds]
davor has joined #ruby
axe is now known as Guest57210
Guest57210 has quit [Killed (sinisalo.freenode.net (Nickname regained by services))]
hassox has quit [Remote host closed the connection]
ur5us has quit [Ping timeout: 240 seconds]
royal_screwup212 has joined #ruby
sergioro has quit [Quit: leaving]
jetchisel has quit [Ping timeout: 264 seconds]
jetchisel has joined #ruby
fercell has joined #ruby
vondruch_ has joined #ruby
royal_screwup212 has quit [Quit: Connection closed]
vondruch has quit [Ping timeout: 265 seconds]
vondruch_ is now known as vondruch
mwlang has joined #ruby
<mwlang> Should the *.gemspec be included in the gem’s manifest or left out? What’s the rationale? Looking at just a handful of popular projects, it seems to go either way.
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
pandakekok9 has quit [Ping timeout: 240 seconds]
<jhass> I'd say including it is kinda nice because it usually should allow you to rebuild the gem from just the .gem
connor_goodwolf has joined #ruby
<mwlang> oh, that’s a good rationale there. (including exactly the files needed to rebuild the .gem)
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
ldepandis has joined #ruby
<mwlang> I know back in the day (before rubygems was stable), I had some automation processes that would pull down gems and especially those with native C extensions and pre-compile (or prepare in some other way as needed) for our target platforms. I had actually forgotten that! But it was definitely easier working with a complete manifest vs. those that were already quite bare.
jingjinghack has quit [Quit: WeeChat 2.1]
alexherbo24 has joined #ruby
alexherbo2 has quit [Ping timeout: 250 seconds]
alexherbo24 is now known as alexherbo2
jdawgaz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
conta has quit [Quit: conta]
helpa has quit [Read error: Connection reset by peer]
helpa has joined #ruby
burningserenity has joined #ruby
cliluw has quit [Ping timeout: 258 seconds]
cliluw has joined #ruby
mwlang has quit [Quit: mwlang]
cliluw has quit [Ping timeout: 250 seconds]
dhollinger has quit [Ping timeout: 256 seconds]
dhollinger has joined #ruby
alexherbo21 has joined #ruby
vondruch has quit [Quit: vondruch]
vondruch has joined #ruby
fishpercolator has joined #ruby
alexherbo2 has quit [Ping timeout: 265 seconds]
alexherbo21 is now known as alexherbo2
imadper has quit [Remote host closed the connection]
conta has joined #ruby
<fishpercolator> Hi #ruby - I'm having a super-weird issue and I wondered if any of you have been talking about it recently or know what it is. Tests that use activestorage have been failing and I've narrowed it down to a combination of the Docker ruby:2.6.5 image, the ecryptfs filesystem, and using IO.copy_stream on a Rack::Test::UploadedFile object. That is to say, I can reproduce the issue reliably in a basic
helpa has quit [Remote host closed the connection]
<fishpercolator> non-Rails environment when all four things are together, but if I change any one of them, it works OK
helpa has joined #ruby
<fishpercolator> my example script: (first copy the ruby executable to /work which is a mounted ecryptfs filesystem inside the docker container) and then: input = Rack::Test::UploadedFile.new('ruby'); output = File.open('/tmp/output', 'w'); IO.copy_stream(input.open, output); #=> 0
<fishpercolator> anyone got even the first clue where to proceed from there?
<adam12> fishpercolator: Out of curiosity, what's the host for the Docker instance? Presuming Linux?
<fishpercolator> yeah Linux, Arch and the ecryptfs filesystem is my home dir
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<adam12> fishpercolator: You're using a volume to pass the file into the container?
<fishpercolator> just confirmed the issue happens on other Docker ruby images (2.6.4 and 2.7.1) but not on the same filesystem when outside Docker
<fishpercolator> adam12: yeah I'm using a volume in the two-parameter form
<adam12> fishpercolator: so -v ./ruby-file:/ruby-file or something?
<fishpercolator> with the dir: docker run -ti -v $PWD:/work ruby:2.7.1 bash
<fishpercolator> once inside I can "cp /usr/local/bin/ruby /work" with no problems to get my test file
jeromelanteri has joined #ruby
<adam12> fishpercolator: And if you pass /usr/local/bin/ruby to Rack::Test::UploadedFile, it's fine?
<fishpercolator> ($PWD in this context is a subdir of an ecryptfs mount)
<fishpercolator> adam12: let me confirm
<adam12> It sounds like a syscall is not being passed or being mangled somehow. I'm not sure if this is something that could come up by comparing strace output...
<fishpercolator> adam12: confirmed it's working ok with the /usr/local/bin/ruby if I don't copy to the volume first
<fishpercolator> ooof comparing strace output sounds very time-consuming!
<fishpercolator> I can give that a go later on today perhaps
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<fishpercolator> I wish I knew what had changed on my system that might have caused this. definitely the downside of Arch as a distro is that everything is a moving target all thetime
<fishpercolator> thank you for your help!
<adam12> I'm inclined to believe this is an ecryptfs issue. I'm not sure what the mount looks like, but in theory, you're taking ecryptfs which is a stacked file system, and mounting it to an aufs/dm-thin or something filesystem which might be stacked as well...
<fishpercolator> yeah you might well be right. I'll just confirm if I create the volume from another fs the issue goes away
<fishpercolator> hmmmmmmm the plot thickens - looks like it's any volume not just an ecryptfs one
<fishpercolator> that'll make it easier to try to reproduce elsewhere
<adam12> fishpercolator: Interesting.
helpa has quit [Remote host closed the connection]
conta has quit [Quit: conta]
<fishpercolator> afk for 1h but will take a look further after that!
helpa has joined #ruby
<fishpercolator> thanks again!
<adam12> fishpercolator: Cheers!
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
dionysus69 has joined #ruby
hutch has joined #ruby
hutch has quit [Client Quit]
hutch has joined #ruby
caterfxo has joined #ruby
roadie has quit [Ping timeout: 256 seconds]
Ai9zO5AP has quit [Remote host closed the connection]
Ai9zO5AP has joined #ruby
darthThorik has quit [Ping timeout: 240 seconds]
entel has quit [Ping timeout: 240 seconds]
kevinsjoberg has quit [Ping timeout: 240 seconds]
kevinsjoberg has joined #ruby
entel has joined #ruby
roadie has joined #ruby
darthThorik has joined #ruby
hutch has quit [Quit: WeeChat 2.8]
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<fishpercolator> adam12: Just an update... I can't reproduce this on a Docker server I own with the same image so it's something about my specific setup
<adam12> fishpercolator: SElinux? AppArmour? Check journalctl maybe.
<adam12> fishpercolator: What was the error, anyways?
burningserenity has quit [Read error: Connection reset by peer]
<fishpercolator> adam12: there's no error - it just doesn't copy any bytes
burningserenity has joined #ruby
<fishpercolator> copying the data any other way (e.g. just using #read and #write on the same IO objects) works fine
<fishpercolator> it's only IO.copy_stream that seems to have issues, but that's what ActiveStorage uses
<fishpercolator> I don't use selinux or apparmour
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<fishpercolator> my docker server is running Docker 17 and my local environment Docker 19, so that _could_ be it
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<fishpercolator> but this was working some days ago and Docker hasn't updated in the interim
<fishpercolator> it's so mysterious!
cliluw has joined #ruby
cd has quit [Quit: cd]
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
SeepingN has joined #ruby
fercell has quit [Ping timeout: 250 seconds]
fercell has joined #ruby
cliluw has quit [Ping timeout: 256 seconds]
gitter1234 has joined #ruby
troulouliou_dev has joined #ruby
teardown has quit [Read error: Connection reset by peer]
cliluw has joined #ruby
fercell has quit [Quit: WeeChat 2.8]
hassox has joined #ruby
dinfuehr has quit [Ping timeout: 256 seconds]
darkstardevx has quit [Read error: Connection reset by peer]
dinfuehr has joined #ruby
rippa has joined #ruby
imode has joined #ruby
dinfuehr has quit [Ping timeout: 260 seconds]
cthulchu_ has joined #ruby
gclef has joined #ruby
dinfuehr has joined #ruby
zacts has quit [Quit: WeeChat 2.7.1]
zacts has joined #ruby
gclef has quit [Ping timeout: 265 seconds]
sergioro has joined #ruby
ellcs has joined #ruby
sergioro has quit [Quit: leaving]
sergioro has joined #ruby
sergioro has quit [Client Quit]
sergioro has joined #ruby
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
ChmEarl has joined #ruby
burningserenity has quit [Quit: Leaving.]
burningserenity has joined #ruby
burningserenity has quit [Client Quit]
burningserenity has joined #ruby
fercell has joined #ruby
hassox has quit [Ping timeout: 256 seconds]
caterfxo has quit [Quit: leaving]
fishpercolator has quit [Quit: leaving]
SanguineAnomaly has quit [Ping timeout: 256 seconds]
troulouliou_dev has quit [Ping timeout: 256 seconds]
ellcs has quit [Ping timeout: 252 seconds]
troulouliou_dev has joined #ruby
ellcs has joined #ruby
chalkmonster has joined #ruby
giorgian has quit [Quit: restart emacs]
giorgian has joined #ruby
tungki has joined #ruby
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
caterfxo has joined #ruby
hassox has joined #ruby
d3bug has joined #ruby
vlouvet has joined #ruby
tungki has quit [Ping timeout: 240 seconds]
caterfxo has quit [Ping timeout: 240 seconds]
davispuh has joined #ruby
donofrio has joined #ruby
cliluw has quit [Ping timeout: 256 seconds]
cliluw has joined #ruby
burningserenity has quit [Ping timeout: 264 seconds]
howdoi has joined #ruby
burningserenity has joined #ruby
<howdoi> Off-topic: What does the future of ROR look like?
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
trouloulioud_dev has joined #ruby
<havenwood> howdoi: Rails 7
<howdoi> havenwood: hah hah, good one. Say in terms of growth compared to JS
<havenwood> It'd be fairer to compare Node.js to Ruby or a specific framework to Rails.
sauvin has quit [Read error: Connection reset by peer]
troulouliou_dev has quit [Ping timeout: 258 seconds]
<havenwood> howdoi: Any language in the upper right is huge and going to stick around: https://redmonk.com/sogrady/files/2020/02/lang.rank_.120.wm_.png
<havenwood> howdoi: Rails will incrementally improve and add new features. Ruby will get faster I/O with Ruby 3, which will keep Rails in the game. It'll continue to be the case that there are great options for frameworks in multiple languages.
<howdoi> havenwood: JS at the very edge in that gradient, I am asking for I started my carrier with ROR, after 10years back on a ROR project, not sure how it is doing these days.
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<havenwood> howdoi: It's thriving.
<imode> I've got a new project using Sinatra and a couple lovely libraries.
<imode> the choice was TS or Ruby.
<howdoi> nods, noice
<havenwood> howdoi: Non-blocking I/O with Fibers will be a new interesting paradigm.
<howdoi> Rust is climbing up too
burningserenity has quit [Ping timeout: 264 seconds]
<howdoi> havenwood: fibers failed badly in the node world
<havenwood> howdoi: Falcon is a Fiber-backed webserver that works off the shelf with Rails. It's quite impressive.
<howdoi> havenwood: thanks, will read it sooner
<howdoi> I think I had seen falcon before, will check it again.
<imode> what's the deal with fibers. green threads?
<havenwood> howdoi: If you pair it with Async adapters for Postgres, Redis, HTTP, disk reading, or any other I/O, then you get real wins.
<howdoi> nice!
<havenwood> imode: Enumerators for examples are backed by a Fiber internally. They have a small stack and you can spin up millions very quickly. The reason non-blocking Fibers are exciting is that you can have them suspend while waiting for I/O so you can have say millions of HTTP/2 WebSocket connections.
<imode> that's lovely, wonder if this'll propagate outward to older libraries.
helpa has quit [Read error: Connection reset by peer]
<imode> fibers are in the existing language spec, yeah?
helpa has joined #ruby
<havenwood> imode: The Async gem and related gems are examples of it working in the wild currently. The scheduler work that ioquatix is doing shows how it can work with legacy libraries, like Net::HTTP, too.
<havenwood> imode: https://github.com/socketry
<imode> neato.
<adam12> howdoi: Consensus I hear is that Javascript has more popularity but Rails is near unbeaten for getting things done quickly. I don't do much Javascript work but I do some maintenance for a few clients, and my biggest concern is the insane amount of dependencies and their vulnerabilities. I maybe patch a half-dozen a year for Ruby applications but I can have almost a 1000 a year of varying severity in JS.
<havenwood> imode: In Ruby 3, Async Fibers for non-blocking I/O will work alongside Guilds/Isolates with Channels to handle parallel processing.
<havenwood> imode: I'm a fan of porting Sinatra projects to Roda. It's easy to do and I've like the results.
<adam12> howdoi: More than just Rails too. Hanami 2 release is chuggling along with some interesting patterns that satisfy some Rails dissident (Operations/Command Scripts, ActiveRecord pattern, other stuff).
<havenwood> adam12: High five! We mentioned Roda and Hanami 2 within seconds.
<havenwood> :)
<imode> havenwood: what's an isolate? o_O
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<imode> anything like v8 isolates?
<adam12> My only Ruby issue lately has been boot time. Some dependencies (anything that starts with azure_ is suspect) just take forever to load. Everything else (docs, perf, etc) seems to be gradually getting better with the hard work from core. If bootsnap or something like pyc for Ruby was built in I think I'd be over the moon.
<havenwood> adam12: Without gems it loads fast! :P: ruby --disable=gems
<havenwood> hyperfine 'ruby -e "p 0" --disable=all'
<havenwood> Time (mean ± σ): 18.3 ms ± 1.8 ms
<imode> is there a future in which ruby gets fine-grained sandboxing?
<havenwood> imode: What does that mean?
<imode> as in, I can run untrusted user-submitted code in a time-and-memory limited scope.
<imode> Google's V8 engine has them.
<havenwood> imode: mruby is used for that sort of thing. Shopify has used mruby for that extensively.
<imode> oh? :O
<havenwood> imode: http://mruby.org/
<imode> was not aware that it could be sandboxed like that.
<adam12> There's also Artichoke.
<imode> hmmmm.
burningserenity has joined #ruby
helpa has quit [Read error: Connection reset by peer]
<adam12> havenwood: Disabling rubygems for small scripts is a guilty pleasure of mine. It's also where I found out that env(1) is non-portable :O
<havenwood> imode: Shopify spent at least $500k on security bounties, last I heard.
helpa has joined #ruby
helpa has quit [Remote host closed the connection]
<adam12> I think they crossed a $1MM...
<havenwood> adam12: I think so too.
helpa has joined #ruby
<imode> so they developed it as a native ruby extension, interesting.
<imode> I'll add this to my to-watch list. my project involves running one-shot executions of user-submitted code.
<imode> thanks!
SeepingN has quit [Ping timeout: 252 seconds]
<adam12> imode: I built something like that a few years ago and ended up just using Docker. If I was to do it now and I was running on bare metal, I might try for something like Firecracker.
<imode> adam12: docker would work, but the timings are just too long.
SeepingN has joined #ruby
<imode> user-submitted code needs to run on a keypress. once they hit enter, that code needs to be in memory, compiled and running.
davispuh has quit [Ping timeout: 256 seconds]
<adam12> imode: There's a library that does it as well. I'm not sure if it's still maintained. Used to be what I think the TryRuby site ran.
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<imode> interesting that that handles timeouts, but not memory limits.
<imode> generating a gigantohuge array would probably take longer than the timeout specifies.
<adam12> You'd be better off with the mruby-engine then likely.
kickr has joined #ruby
<imode> the scoped plan was to actually just build something like a Forth interpreter and then bootstrap a compiler to that, with linkings to primitive types like arrays and strings.
davispuh has joined #ruby
infinityfye has quit [Read error: Connection reset by peer]
markopasha has quit [Ping timeout: 256 seconds]
burningserenity has quit [Ping timeout: 252 seconds]
reber_ has joined #ruby
burningserenity has joined #ruby
kickr has quit [Quit: going to sleep...]
jordanm has quit [Remote host closed the connection]
dionysus69 has quit [Ping timeout: 256 seconds]
markopasha has joined #ruby
markopasha has quit [Max SendQ exceeded]
trouloulioud_dev has quit [Quit: Leaving]
troulouliou_div2 has joined #ruby
jordanm has joined #ruby
markopasha has joined #ruby
fercell has quit [Quit: WeeChat 2.8]
tankf33der has joined #ruby
zacts has quit [Quit: WeeChat 2.7.1]
jordanm has quit [Remote host closed the connection]
jordanm has joined #ruby
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
helpa has quit [Read error: Connection reset by peer]
helpa has joined #ruby
SanguineAnomaly has joined #ruby
Xiti` has joined #ruby
jinie has quit [Ping timeout: 258 seconds]
Xiti has quit [Ping timeout: 240 seconds]
vondruch_ has joined #ruby
<apotheon> havenwood: Is it somewhat accurate to say that roda's performance is somewhat dependent on how it handles thread concurrency?
<apotheon> Maybe I only needed one "somewhat" in that sentence.
burningserenity has quit [Ping timeout: 240 seconds]
<havenwood> apotheon: Roda relies on the Rack webserver to decide those things.
<apotheon> Do you know how much Roda's performance is a consequence of how Rack handles threads, then?
<havenwood> apotheon: Most of the top tier Rack webservers use an event loop with threading and forking.
<apotheon> gotcha
<apotheon> I'm guessing none of that stuff would be affected by kernel threading limitations, but . . . I'm not really sure.
<apotheon> . . . and I'm not sure who I'd ask about that.
vondruch has quit [Ping timeout: 258 seconds]
vondruch_ is now known as vondruch
<apotheon> I'm considering a tech stack for something, and there are reasons that OpenBSD and Roda make sense.
<apotheon> . . . but I'm not 100% sure whether OpenBSD's kernel giant lock would be a problem.
<havenwood> apotheon: Roda works great with OpenBSD. Roda's creator, Jeremy Evans, maintains Ruby for OpenBSD and is on Ruby Core.
<havenwood> apotheon: Jeremy uses Roda in production widely with OpenBSD, afaik.
<apotheon> I do know he's an OpenBSD Ruby packager.
<apotheon> Okay, cool. I guess I should just trust it'll be awesome, then, unless/until I see evidence to the contrary.
<apotheon> At worst, I suppose it'll be a learning exercise along the way.
<apotheon> havenwood: Thanks for helping me think this through a bit.
<havenwood> apotheon: Falcon is the most future-looking option, and has been used in production, but it's not battle tested like Puma, Unicorn, Passenger, etc.
<havenwood> apotheon: If you can go ahead and use Async I/O adapters, Falcon is compellig.
<havenwood> compelling*
zacts has joined #ruby
<apotheon> I like "compellig", too.
<havenwood> My "nn" key is seriously borked.
<apotheon> sorry to hear it
<apotheon> Do you need a new keyboard, or just to clean the present keyboard, or what?
<havenwood> apotheon: I need a ew laptop.
reber_ has quit [Read error: Connection reset by peer]
gix has quit [Disconnected by services]
<apotheon> Ah, expensive fixes.
<apotheon> If you lived near me, I might offer to buy the old laptop off you to help subsidize the new laptop, if it was something I'd find useful. I like laptops as servers.
<havenwood> apotheon: Falcon does work great with Roda. I wrote a little Roda plugin for async-websockets, which gives HTTP/2 WebSockets with Roda and Falcon: https://github.com/socketry/roda-websockets
burningserenity has joined #ruby
<havenwood> apotheon: Then if you use async-redis, async-io, async-http and such you really have a nice story to tell with Falcon.
<havenwood> apotheon: Postgres, for example: https://github.com/socketry/async-postgres
<havenwood> apotheon: Then Falcon can handle just a huge amount of incoming connections, and it just suspends a Fiber for each I/O call it's waiting on for whatever connection.
d3bug has quit [Quit: Connection closed for inactivity]
<apotheon> ack, weird code formatting in the README
<apotheon> havenwood: Cool.
<havenwood> apotheon: In roda-websockets or async-postgres?
<apotheon> async-postgres
<havenwood> apotheon: ioquatix likes tabs ¯\_(ツ)_/¯
<apotheon> It's not just that. There's also the multiline block with braces.
<havenwood> apotheon: Ah, yeah. I was gunna say ?ts=2, haha.
<apotheon> . . . but yeah, two-column indents in Ruby, via spaces.
<apotheon> Do you have a macro for that shrugging katakana guy?
<apotheon> . . . or do you type it out every time?
<adam12> ¯\_(ツ)_/¯
<adam12> If you run Weechat, it's /shrug
<apotheon> I see.
<apotheon> I don't.
<howdoi> ¯\_(ツ)_/¯
<adam12> But it won't work mid-string like havenwood has it so it must be a macro like TextExpander.
<apotheon> 20:04 -!- Irssi: Unknown command: shrug
<adam12> ( ͡° ͜ʖ ͡°)
<apotheon> There we go!
<havenwood> I have an OS keyboard shortcut for: &shrug;
<havenwood> Haha
<adam12> Yeah, if you're on Mac that works well too.
<apotheon> havenwood: Thanks for the help/info/suggestions.
<apotheon> definitely not on a Mac
<adam12> apotheon: You should check out Weechat. I'm a long time irssi convert.
<apotheon> no thanks
<apotheon> I have looked at it.
<apotheon> My immediate reaction was "Shit, irssi config is already too complicated."
<apotheon> . . . and I backed away slowly.
<apotheon> I'm always on the lookout for something simpler.
<adam12> Really? I find it so much simpler. Just typing /set brings up a list of options that you can flip on and off.
<adam12> Anyways, no worries :)
plutes has quit [Ping timeout: 260 seconds]
<havenwood> adam12: Have you looked at Agoo? https://github.com/ohler55/agoo
<adam12> havenwood: Yes but haven't tried it. I suspect it's got some speed since it's from ohler55.
<adam12> havenwood: I run Iodine in production and use the great websocket support for proxying terminal connections (VNC and Docker).
thejunkjon has joined #ruby
jinie has joined #ruby
<havenwood> adam12: It looks to be ~3x faster than Roda here: https://github.com/the-benchmarker/web-frameworks
davispuh has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
<apotheon> adam12: /help set does that too, in irssi
<apotheon> err, I mean /set
<adam12> apotheon: Neat. I didn't realize that. I must of just figured it out when I switched to Weechat.
<havenwood> adam12: Interestingly faster than agoo-c, also in C.
<apotheon> /set does that in irssi too
<apotheon> there
<apotheon> When did I stop being able to express myself well on the first try?
<havenwood> For some reason it never occurred to me to write the Ruby framework itself in C.
<adam12> ಠ_ಠ
<havenwood> &owl_googles;
<rubydoc> parser error at position 0 around `o'
<havenwood> goggles*
burningserenity has quit [Quit: Leaving.]
davispuh has joined #ruby
<havenwood> adam12: Iodine looks really awesome but I've not had a chance to try it in earnest.
<havenwood> adam12: Would you recommend it?
<adam12> havenwood: I use it near everywhere
<adam12> havenwood: That said, Falcon is shipping with some beauty features which might knock it off my pedestal. I guess we'll see what happens.
<havenwood> adam12: Do you reverse proxy to it or use it directly?
<adam12> havenwood: I stick Caddy in front of it.
d0liver has quit [Ping timeout: 265 seconds]
<havenwood> adam12: Ah, nice.
<adam12> Which is imho better than nginx+acme but still another moving piece I have to debug.
ReinH has quit [Ping timeout: 256 seconds]
grvgr has quit [Ping timeout: 272 seconds]
<apotheon> havenwood: Do you proxy your Falcon+Roda applications?
<apotheon> maybe nginx in front of 'em
<apotheon> The project I'm planning is a replacement for multiple Sinatra applications behind nginx proxy.
<apotheon> . . . and I'm thinking of moving it from FreeBSD with jails to OpenBSD with chroot+jailkit.
<havenwood> adam12: ioquatix has recently been working on virtual hosts, so you don't have to: https://github.com/socketry/falcon#virtual-hosts
ReinH has joined #ruby
<havenwood> adam12: but it's recent work
<havenwood> adam12: looks promising
<gitter1234> apotheon: Is there any way you could make use of OpenBSD's httpd?
d0liver has joined #ruby
grvgr has joined #ruby
<apotheon> gitter1234: I'm thinking about it.
<havenwood> adam12: oops, I got tells mixed
<havenwood> apotheon: You don't need anything in front of it. Use Falcon virtual hosts.
<gitter1234> I've had a lot of "IT-experts" look into it
<gitter1234> Nobody came up with a solution
<apotheon> havenwood: Okay, cool.
<apotheon> I'll look into that.
<apotheon> gitter1234: What do you mean?
<gitter1234> But I know, there is no solution better than this
<havenwood> apotheon: It handles HTTP/2 HTTPS, caching, everything.
<apotheon> havenwood: How do you set up HTTPS with that?
<apotheon> (meaning you, personally)
<apotheon> specifically, the cert
<apotheon> Do you use ACME for certs?
<havenwood> apotheon: letsencrypt
<havenwood> apotheon: aye
<apotheon> I'm thinking of using OpenBSD's built-in acme client.
<adam12> havenwood: Iodine's Websocket support for me is key. I just send a hijack header and Iodine proxyies the connection in C. Fiber support might make the need for that moot but proxying outside of the GVL is definitely nice.
<gitter1234> Let's do it :)
<gitter1234> lol
<havenwood> adam12: Makes sense.
<apotheon> Someone actually donated a pile of money to my nonprofit association, so now I'm honor-bound to get this shit done sooner rather than later.
<apotheon> (re: rebuilding the infrastructure for it all)
ellcs has quit [Ping timeout: 252 seconds]
<xco> apotheon i can donate too, something little :)
<apotheon> wow
vondruch has quit [Ping timeout: 258 seconds]
<havenwood> It's no trivial task to do away with the need for NGINX/Apache/whatev. I'm glad that ioquatix is doing that work with Async.
buckworst has joined #ruby
<havenwood> apotheon: What does your nonprofit do?
<gitter1234> Yeah
<gitter1234> What's up with your nonprofit?
<gitter1234> He has a nonprofit?
<gitter1234> Hard to run one. No doubt about that.
<apotheon> I think, if anyone tried to initiate some legal action, it would end up being classified as an "unregistered nonprofit association" when it landed in front of a judge.
<apotheon> copyfree.org
<xco> apotheon oooooo so now a lot makes sense :D
<apotheon> xco: har; yeah, I suppose so
* gitter1234 inspired to watch another episode of Better Call Saul
<xco> apotheon i didn't expect that to be honest, massive respect
<apotheon> CI (the Copyfree Initiative) exists largely because I started learning far more about licensing than I ever wanted to know, and I discovered other people valued the results of my learning about it.
<xco> like me building kovid to learn how to executables work in a gem, turned out lots of people like kovid
<gitter1234> Ever find yourself in legal trouble?
<gitter1234> I mean
<gitter1234> Ruby-related legal trouble?
<gitter1234> apotheon is your guy.
<xco> apotheon do you happen to have some background in law?
<apotheon> I do *not* have a background in law. I am not a lawyer. If I was a lawyer, that wouldn't make me your lawyer, but I'm not a lawyer anyway. Nothing I say is legal advice. If you treat it as legal advice, and get yourself in legal trouble, that's on you. Don't sue me.
<apotheon> /disclaimer
<apotheon> addendum - If you require legal advice, seek the counsel of a legal professional.
<xco> right!
vondruch has joined #ruby
<gitter1234> xco: If you manage to convince him to give you legal advice though :)
<apotheon> That being the case, it is my (informed) opinion that there are specific licenses you should avoid, both for your own peace of mind and for the sake of humanity at large.
<gitter1234> you'll be scott free
<gitter1234> no matter what you did :)
<apotheon> Who is Scott Free?
<apotheon> Scott Free™
<apotheon> seems like a paper towel brand
<gitter1234> hehe
<havenwood> I feel left out being unable to say I'm not a lawyer. :(
<gitter1234> apotheon: Scott Free - https://www.youtube.com/watch?v=bo5bxbAUulg
<gitter1234> I don't know much about American brands
<havenwood> I like the new IRB Easter Egg with typing "RubyVM" and hitting <tab> twice.
<gitter1234> Except Nestle
<apotheon> Hmm.
<apotheon> I seem to recall there was a way to turn an existing method into a proc, but . . . maybe I imagined that.
<apotheon> (as opposed to defining it at the time with a block)
<havenwood> apotheon: #to_proc
<apotheon> Ah! Thank you.
<jhass> Nestle is Swiss?
<xco> havenwood that's cool. i thought it was that static ruby gem one, seen that?
<havenwood> Swiss Mix
<gitter1234> Swix!!!!!!!!!!!
<adam12> havenwood: Is that in HEAD?
<havenwood> adam12: yup!
<adam12> I'll have to compile later and look.
<apotheon> I think Nestle is owned by some Central or South American company, actually.
<apotheon> Mondelez?
<apotheon> Wait, no, Mondelez is USian.
<apotheon> Damn.
<apotheon> What was the C/SA company (that evidently doesn't own Nestle)?
<apotheon> Maybe I was thinking of Mondelez owning Nabisco.
<apotheon> Crap, I really am getting old.
<apotheon> Okay, never mind. Nestle is Swiss, Nabisco is owned by Mondelez, and there's some Central or South American food conglomerate whose name I forgot altogether.
buckworst has quit [Quit: WeeChat 2.8]
<imode> hm. in 2020, what's the "recommended" framework to use if you just need a REST API. I've been planning on using Sinatra but I've seen Roda and such mentioned.
helpa has quit [Remote host closed the connection]
helpa has joined #ruby
<havenwood> &>> 'CH'.bytes.map { _1 + 127397 }.pack('U2')
<rubydoc> # => "🇨🇭" (https://carc.in/#/r/8w2h)
<havenwood> imode: I'd recommend Roda for a REST API.
<gitter1234> Shoutout to Death Valley
<apotheon> Death Valley?
<gitter1234> [EN][Keynote] Optimization Techniques Used by the Benchmark Winners / Jeremy Evans @jeremyevans0 - https://www.youtube.com/watch?v=RuGZCcEL2F8
<gitter1234> apotheon: Author of Roda
<apotheon> I'm not sure how Death Valley and Jeremy Evans are linked.
<apotheon> Oh! Mondelez owns Cadbury! Damn. Okay.
<jhass> half of the things are owned by modelez and nestle really
<jhass> ferrero is still indepenent and pretty big, in europe at least
<apotheon> jhass: In the US, I only see Ferrero Rocher.
<jhass> Nutella and Kinder is Ferrero
<jhass> if it has hazelnut, sugar and chocolate it's probably ferrero really
<apotheon> Ah, I didn't know Ferrero owned Kinder.
<apotheon> or, rather, made it
<apotheon> whatevs
<apotheon> I think I've seen those a couple times in the last decade in the US, but not before then.
<apotheon> I saw them *all the time* when I was in Europe.
<apotheon> . . . and yeah, there's Nutella in the US.
Esa__ has joined #ruby
<apotheon> Oh, Ferrero also makes Tic Tac, Keebler, and Famous Amos. Crazy.
<apotheon> jhass: It's not independent. It's owned by Mondelez.
<apotheon> (according to Wikipedia)
<jhass> huh, I must be blind, I don't see where it says that
ur5us has joined #ruby
schne1der has quit [Ping timeout: 258 seconds]
<jhass> More interesting is that ferrero apparently bought almost the entire US sweets buisness from Nestle
<zenspider> ...what did I walk into??
<jhass> nothing to see here, move along :D
<apotheon> jhass: I think I saw it in the sidebar, at the bottom under "parent company", in the US Wikipedia article for Ferrero.
plutes has joined #ruby
plutes has quit [Max SendQ exceeded]
plutes has joined #ruby
<jhass> Ctrl+F Parent gives no results on the page?
plutes has quit [Remote host closed the connection]
galaxie has quit [Remote host closed the connection]
plutes has joined #ruby
galaxie has joined #ruby
<apotheon> hm
<apotheon> search for Parent or Mondelez
<jhass> that's exactly what I did :D
<apotheon> I'm looking at it right now.
henninb has joined #ruby
<jhass> curl https://en.wikipedia.org/wiki/Ferrero_SpA | grep -i mond returns empty
jinie_ has joined #ruby
<jhass> mmh, from one of my servers it doesn't :o
<apotheon> I get results.
jinie has quit [Ping timeout: 258 seconds]
jinie_ is now known as jinie
<jhass> caching fun
postmodern has joined #ruby
<jhass> it was edited in on April 11 by an anonymous user,
<apotheon> Hershey is independent of Ferrero, Nestle, and Mondelez, though.
<apotheon> It has licensing to use the Cadbury brand in the US, but it's a separate company.
<jhass> I think that edit is wrong, I can't find any other source claiming ferrero is owned by mondelez. in fact rather is mondelez attacking ferrero by having their own nutella under the milka brand now
SeepingN has quit [Read error: Connection reset by peer]
SeepingN has joined #ruby
Na_Klar has joined #ruby
<Na_Klar> Is there a way to talk to the soundcard and generate low-complex tones with ruby and "on-board" libraries. Don't want to install ffi and portaudio etc.
Ai9zO5AP has quit [Ping timeout: 240 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
henninb has quit [Quit: Lost terminal]
ur5us has quit [Quit: Leaving]
ur5us has joined #ruby
<havenwood> Na_Klar: You could create a wav or midi file. There are a ton of system-specific ways to make a beep at a hz. Does it need to be portable?
<havenwood> Na_Klar: If not portable, what OS/distro?
<Na_Klar> havenwood: on linux, it just has to be real-time. something in a loop where when a variable is changed a beep is sent to the soundcard. basic as this (well, a little more control over the sound tho)
<havenwood> Na_Klar: Have you tried Sonic Pi? https://sonic-pi.net/
Ai9zO5AP has joined #ruby
<havenwood> Na_Klar: That ^ gem just shells out to beep.
henninb has joined #ruby
alfiemax has joined #ruby
henninb has quit [Client Quit]
henninb has joined #ruby
<Na_Klar> havenwood: yes, well, no ^^ thanks for the hints, but that's not what I search. I have to research this more before I ask. Just thought there would be a ruby lib I wasn't aware of.
<havenwood> Na_Klar: Sonic Pi is quite fancy and can do chords and much more.
<havenwood> Na_Klar: The command line utility `beep` can do simple frequencies for a duration.
<havenwood> Na_Klar: If you just need that, you can shell out yourself.
<Na_Klar> yes, cmd would be an option .. but meh .. nevertheless: thanks
Na_Klar has quit [Quit: Leaving.]
alfiemax has quit [Ping timeout: 264 seconds]
ur5us has quit [Ping timeout: 256 seconds]
alexherbo25 has joined #ruby
alexherbo2 has quit [Ping timeout: 256 seconds]
alexherbo25 is now known as alexherbo2
alexherbo2 has quit [Remote host closed the connection]
jinie has quit [Quit: ZNC 1.6.1 - http://znc.in]
galaxie has quit [Ping timeout: 240 seconds]
jinie has joined #ruby
galaxie has joined #ruby
<zenspider> hitting your system to make a sound without installing ffi or anything else? good luck. you might get by with something that only works on your (type of) system.
<zenspider> What I've done in the past is to use one of the (probably now defunct) midi libraries to talk to my OS's midi layer. I used that to "play" code
SeepingN has quit [Read error: Connection reset by peer]
SeepingN has joined #ruby
howdoi has quit [Quit: Connection closed for inactivity]
<zenspider> skip to about 1m, then watch about 40s worth... amazingly bad code and a good way of "visualizing" that
henninb has quit [Quit: Lost terminal]
<havenwood> zenspider: hahah
<havenwood> wow
<apotheon> Auditorizing?
zacts has quit [Quit: WeeChat 2.7.1]
zacts has joined #ruby
Ai9zO5AP has quit [Ping timeout: 240 seconds]
Ai9zO5AP has joined #ruby
markopasha has quit [Ping timeout: 264 seconds]
<zenspider> :D
<zenspider> pretty much. My boss didn't understand when I said it was really bad code. that laid it to rest
galaxie has quit [Remote host closed the connection]
galaxie has joined #ruby
desnudopenguino has joined #ruby
<desnudopenguino> i built a rails app a while ago, and hooked up through passenger to run on apache along side a couple php websites, but i ran into a conflict with passenger using libcurl3 and the php sites using libcurl4, i was wondering if there was a different rails server i could run instead to avoid the libcurl conflict, or if i have to run the rails app on a separate server or mess with containers there
thejunkjon has quit [Quit: leaving]
<havenwood> desnudopenguino: The current versions of Passenger do use libcurl4. Can you just update Passenger? Alternatively, a webserver like Puma or Unicorn wouldn't have that dependency at all.
<desnudopenguino> havenwood: i'll take a look and see which version it is running and get an updated version! thanks!
ldepandis has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
TCZ has joined #ruby
<desnudopenguino> well it looks like installing through gems is the way to go. not through the package manager
teardown has joined #ruby