havenwood changed the topic of #ruby to: Rules: https://ruby-community.com | Ruby 3.0.0, 2.7.2, 2.6.6: https://www.ruby-lang.org | Paste 4+ lines of text to https://dpaste.org | Books: https://goo.gl/wpGhoQ | Logs: https://irclog.whitequark.org/ruby | BLM <3
FastJack has quit [Ping timeout: 258 seconds]
Rounin has joined #ruby
iamgr00t_ is now known as iamgr00t
FastJack has joined #ruby
coniptor has quit [Ping timeout: 246 seconds]
gearnode has quit [Ping timeout: 246 seconds]
dfucci has joined #ruby
coniptor has joined #ruby
dfucci has quit [Ping timeout: 240 seconds]
bvdw48 has quit [Quit: The Lounge - https://thelounge.chat]
bvdw48 has joined #ruby
<dorian> hey, anybody aware of a ruby equivalent to https://metacpan.org/pod/DateTime::SpanSet ?
<dorian> something to represent/do operations on a set of datetime spans
<dorian> (i guess the datetime spans too)
s3nd1v0g1us has joined #ruby
<nakilon> dorian this one has some Datetime example few pages down in README https://github.com/rjasper/ruby-interval_set
s3nd1v0g1us has quit [Client Quit]
gix has joined #ruby
s3nd1v0g1us has joined #ruby
gix- has quit [Ping timeout: 276 seconds]
powerhouse_ has quit [Remote host closed the connection]
s3nd1v0g1us has quit [Client Quit]
<nakilon> what's the simplest way to get all combinations of splitting the array of size N into two subarrays of sizes X and N-X?
<nakilon> unfortunately the Array#delete_at accepts only one index
s3nd1v0g1us has joined #ruby
s3nd1v0g1us has quit [Client Quit]
dfucci has joined #ruby
orbyt_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sphex has quit [Ping timeout: 256 seconds]
dfucci has quit [Ping timeout: 265 seconds]
<dorian> nakilon: cool thanks
s3nd1v0g1us has joined #ruby
rzjian has joined #ruby
s3nd1v0g1us has quit [Client Quit]
s3nd1v0g1us has joined #ruby
<havenwood> &>> module Enumerable def nakilon = Array.new(count.pred) { |n| each_with_index.reduce([[], []]) { |(head, tail), (element, index)| index <= n ? [[*head, element], tail] : [head, [*tail, element]] } } end; (:nakilon..:nakilos).nakilon
<rubydoc> # => -e:4: syntax error, unexpected '=', expecting ';' or '\n'... check link for more (https://carc.in/#/r/ad5s)
va5c0 has joined #ruby
<havenwood> &>> Ruby::VERSION
<rubydoc> # => -e:4:in `<main>': uninitialized constant Ruby (NameError)... check link for more (https://carc.in/#/r/ad5t)
<havenwood> &>> RUBY_VERSION
<rubydoc> # => "2.7.0" (https://carc.in/#/r/ad5u)
<havenwood> Ah, right.
<havenwood> &>> module Enumerable def nakilon; Array.new(count.pred) { |n| each_with_index.reduce([[], []]) { |
<havenwood> (head, tail), (element, index)| index <= n ? [[*head, element], tail] : [head, [*tail, element]] }
<havenwood> } end; end; (:nakilon..:nakilos).nakilon
<rubydoc> # => -e:5: syntax error, unexpected `end', expecting '|'... check link for more (https://carc.in/#/r/ad5v)
<havenwood> Oh dear.
<havenwood> &>> module Enumerable def nakilon; Array.new(count.pred) { |n| each_with_index.reduce([[], []]) { |(head, tail), (element, index)| index <= n ? [[*head, element], tail] : [head, [*tail, element]] } } end; end; (:nakilon..:nakilos).nakilon
<rubydoc> # => [[[:nakilon], [:nakiloo, :nakilop, :nakiloq, :nakilor, :nakilos]], [[:nakilon, :nakiloo], [:nakilop, :nakiloq, :nakilor, :nakilos]], [[:nakilon, :nakiloo, :nakilop], [:nakiloq, :nakilor, :nakilos]], [[:nakilon, :nakiloo, :nakilop, :nakiloq], [:nakilor, :nakilos]],... check link for more (https://carc.in/#/r/ad5w)
<havenwood> nakilon: Yeah, lots of ways to do it but one doesn't strike me as best at the moment.
<havenwood> That ^ isn't it though. :P
<havenwood> nakilon: #index with #slice_before maybe?
va5c0 has quit [Ping timeout: 240 seconds]
s3nd1v0g1us has quit [Quit: WeeChat 3.0.1]
s3nd1v0g1us has joined #ruby
s3nd1v0g1us has quit [Client Quit]
s3nd1v0g1us has joined #ruby
s3nd1v0g1us has quit [Client Quit]
s3nd1v0g1us has joined #ruby
<nakilon> cool, now Enumerable has a method with my name
<apotheon> err
<apotheon> What?
<apotheon> Enumerable#nakilon
powerhouse_ has joined #ruby
dnadev2 has quit [Ping timeout: 240 seconds]
coniptor has quit [Ping timeout: 246 seconds]
Swyper has joined #ruby
coniptor has joined #ruby
brainfunnel has quit [Quit: thanks, bye!]
dfucci has joined #ruby
elcuervo has joined #ruby
cuerbot has quit [Ping timeout: 256 seconds]
Rounin has quit [Ping timeout: 276 seconds]
Iarfen has quit [Remote host closed the connection]
orbyt_ has joined #ruby
dfucci has quit [Ping timeout: 272 seconds]
dviola has quit [Quit: WeeChat 3.0]
Swyper has quit [Remote host closed the connection]
goepsilongo has quit [Quit: Konversation terminated!]
m27frogy has quit [Ping timeout: 276 seconds]
adu_ has joined #ruby
m27frogy has joined #ruby
adu_ is now known as adu
dviola has joined #ruby
m27frogy has quit [Ping timeout: 246 seconds]
gix- has joined #ruby
gix has quit [Disconnected by services]
al2o3-cr has joined #ruby
m27frogy has joined #ruby
tris has joined #ruby
m27frogy has quit [Ping timeout: 246 seconds]
m27frogy has joined #ruby
va5c0 has joined #ruby
m27frogy has quit [Ping timeout: 265 seconds]
ChewyB has joined #ruby
va5c0 has quit [Ping timeout: 265 seconds]
akem is now known as akem123
ChewyB is now known as akem
dfucci has joined #ruby
dfucci has quit [Ping timeout: 256 seconds]
Mrgoose2 has joined #ruby
kaivai_ has joined #ruby
orbyt_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
akem has quit [Read error: Connection reset by peer]
kaivai has quit [Ping timeout: 276 seconds]
akem has joined #ruby
vondruch has quit [Ping timeout: 276 seconds]
FastJack has quit [Ping timeout: 276 seconds]
Mrgoose has quit [Ping timeout: 276 seconds]
Mrgoose2 is now known as Mrgoose
EdwardIII has quit [Ping timeout: 246 seconds]
FastJack has joined #ruby
EdwardIII has joined #ruby
mehwork has left #ruby [#ruby]
_whitelogger has joined #ruby
elcuervo has quit [Quit: ZNC 1.7.5 - https://znc.in]
elcuervo has joined #ruby
jenrzzz has quit [Ping timeout: 240 seconds]
orbyt_ has joined #ruby
dfucci has joined #ruby
jenrzzz has joined #ruby
dfucci has quit [Ping timeout: 240 seconds]
ttoocs has joined #ruby
panorain has joined #ruby
Technodrome has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jenrzzz has quit [Ping timeout: 240 seconds]
jenrzzz has joined #ruby
al2o3-cr has quit [Ping timeout: 256 seconds]
adu has quit [Quit: adu]
al2o3-cr has joined #ruby
jenrzzz has quit [Ping timeout: 256 seconds]
jla has joined #ruby
dfucci has joined #ruby
va5c0 has joined #ruby
s3nd1v0g1us has quit [Quit: WeeChat 3.0.1]
jenrzzz has joined #ruby
va5c0 has quit [Ping timeout: 240 seconds]
dfucci has quit [Ping timeout: 240 seconds]
jenrzzz has quit [Ping timeout: 265 seconds]
popgreen has joined #ruby
ChmEarl has quit [Quit: Leaving]
jenrzzz has joined #ruby
jenrzzz has quit [Ping timeout: 272 seconds]
nofxx_ has joined #ruby
cd has quit [Quit: cd]
nofxx__ has quit [Ping timeout: 256 seconds]
postmodern has joined #ruby
dfucci has joined #ruby
jenrzzz has joined #ruby
al2o3-cr has quit [Ping timeout: 256 seconds]
Rudd0 has quit [Ping timeout: 246 seconds]
jenrzzz has quit [Ping timeout: 264 seconds]
nofxx_ has quit [Read error: Connection reset by peer]
nofxx has joined #ruby
AndreYuhai has joined #ruby
<AndreYuhai> With sidekiq, I want to send a notification to slack when all the jobs are done. How can I do that? Should I just keep checking the specific queue with my main script, which inserted the jobs, untill the queue gets emptied?
jla has quit [Ping timeout: 240 seconds]
evil has quit [Quit: Connection closed for inactivity]
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
jla has joined #ruby
<AndreYuhai> How is Net::HTTPNotFound caught with Mechanize::Error?
Caerus has quit [Ping timeout: 272 seconds]
al2o3-cr has joined #ruby
Caerus has joined #ruby
<AndreYuhai> Oh that was actually Mechanize::ResponseCodeError
panorain has quit [Quit: Leaving]
gearnode has joined #ruby
Caerus has quit [Ping timeout: 276 seconds]
jla has quit [Ping timeout: 240 seconds]
jla has joined #ruby
va5c0 has joined #ruby
Rudd0 has joined #ruby
jla has quit [Ping timeout: 246 seconds]
rzjian has quit [Quit: WeeChat 3.0]
va5c0 has quit [Ping timeout: 246 seconds]
jenrzzz has joined #ruby
howdoi has quit [Quit: Connection closed for inactivity]
dfucci has quit [Ping timeout: 256 seconds]
postmodern has quit [Quit: Leaving]
va5c0 has joined #ruby
va5c0 has quit [Ping timeout: 264 seconds]
akem has quit [Read error: Connection reset by peer]
User458764 has quit [Ping timeout: 240 seconds]
User4587_ has joined #ruby
dfucci has joined #ruby
dfucci has quit [Ping timeout: 264 seconds]
dfucci has joined #ruby
Technodrome has joined #ruby
johndotpub has quit [Remote host closed the connection]
dfucci has quit [Ping timeout: 265 seconds]
gdc_m has joined #ruby
johndotpub has joined #ruby
akem has joined #ruby
johndotpub has quit [Client Quit]
johndotpub has joined #ruby
johndotpub has quit [Quit: /dev/zero]
johndotpub has joined #ruby
dfucci has joined #ruby
queip has quit [Ping timeout: 240 seconds]
johndotpub has quit [Client Quit]
johndotpub has joined #ruby
m27frogy has joined #ruby
dfucci has quit [Ping timeout: 246 seconds]
johndotpub has quit [Quit: /dev/zero]
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
johndotpub has joined #ruby
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
baojg has joined #ruby
Technodrome has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
baojg has quit [Remote host closed the connection]
Rounin has joined #ruby
baojg has joined #ruby
baojg has quit [Remote host closed the connection]
dfucci has joined #ruby
dfucci has quit [Ping timeout: 240 seconds]
serard has joined #ruby
somazero has joined #ruby
somazero has quit [Client Quit]
queip has joined #ruby
goepsilongo has joined #ruby
somazero has joined #ruby
dfucci has joined #ruby
dfucci has quit [Ping timeout: 276 seconds]
weaksauce has quit [Ping timeout: 240 seconds]
ChewiB has joined #ruby
akem has quit [Read error: Connection reset by peer]
croberts has quit [Ping timeout: 276 seconds]
croberts has joined #ruby
adu has joined #ruby
ChewiB has quit [Quit: Leaving]
akem has joined #ruby
gdc_m has quit [Quit: gdc_m]
Swyper has joined #ruby
jla has joined #ruby
dfucci has joined #ruby
dfucci has quit [Ping timeout: 256 seconds]
Technodrome has joined #ruby
croberts has quit [Ping timeout: 276 seconds]
ua_ has joined #ruby
ua has quit [Ping timeout: 264 seconds]
dfucci has joined #ruby
dfucci has quit [Ping timeout: 246 seconds]
al2o3-cr has quit [Ping timeout: 256 seconds]
m27frogy has quit [Ping timeout: 240 seconds]
jla has quit [Ping timeout: 256 seconds]
jenrzzz has quit [Ping timeout: 265 seconds]
m27frogy has joined #ruby
dfucci has joined #ruby
dfucci has quit [Ping timeout: 256 seconds]
shokohsc has joined #ruby
lucasb has joined #ruby
Technodrome has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shokohsc has quit [Client Quit]
adu has quit [Quit: adu]
shokohsc has joined #ruby
cd has joined #ruby
Tempesta has quit [Read error: Connection reset by peer]
Tempesta has joined #ruby
Tempesta has quit [Changing host]
Tempesta has joined #ruby
al2o3-cr has joined #ruby
goepsilongo has quit [Quit: Konversation terminated!]
<nakilon> how do I chose the gem from these? https://dpaste.org/1tiq/slim
va5c0 has joined #ruby
va5c0 has quit [Ping timeout: 264 seconds]
evil has joined #ruby
dfucci has joined #ruby
dasher00 has quit [Remote host closed the connection]
dfucci has quit [Ping timeout: 264 seconds]
<nakilon> the one with the highest version (presumably more developed) is requiring Ruby 2.5 only because there is activesupport in development dependencies
<nakilon> and it is there for no visible reason, lol
dnadev2 has joined #ruby
surrounder has quit [Quit: WeeChat 2.9]
Swyper has quit [Remote host closed the connection]
surrounder has joined #ruby
Swyper has joined #ruby
<al2o3-cr> &>> include Gem::Text; levenshtein_distance("unchained", "melody")
<rubydoc> # => 9 (https://carc.in/#/r/ad85)
<al2o3-cr> yes
<nakilon> see answer's author )
<nakilon> the problem is: https://dpaste.org/w17y/slim
<al2o3-cr> ah, it's you :)
<al2o3-cr> it's slooowwwwww....
<al2o3-cr> nakilon: which one you picking :p
dasher00 has joined #ruby
<al2o3-cr> try levenshtein-ffi if you not using unicode.
Swyper has quit [Remote host closed the connection]
Swyper has joined #ruby
<nakilon> have no idea why it called it 10 times less often though but time percentage is now ok https://dpaste.org/VSqM/slim
Swyper has quit [Remote host closed the connection]
Swyper has joined #ruby
<al2o3-cr> much better
dfucci has joined #ruby
Swyper has quit [Ping timeout: 260 seconds]
hiroaki has joined #ruby
dfucci has quit [Ping timeout: 276 seconds]
croberts has joined #ruby
pabs has joined #ruby
adu has joined #ruby
elcuervo has quit [Read error: Connection reset by peer]
elcuervo has joined #ruby
Swyper has joined #ruby
Technodrome has joined #ruby
Swyper has quit [Remote host closed the connection]
_aeris_ has quit [Remote host closed the connection]
_aeris_ has joined #ruby
Swyper has joined #ruby
dfucci has joined #ruby
dfucci has quit [Ping timeout: 240 seconds]
<popgreen> Yo
<popgreen> Yo
<popgreen> I can work with you.
Swyper has quit [Remote host closed the connection]
seydar has joined #ruby
<seydar> i'm trying to remember something from like 6 years ago. was there a tool that would render a source file in html that had the comments side-by-side to the code?
va5c0 has joined #ruby
<popgreen> Ruby runs lines.
<popgreen> I do not like sometime how I have been disrespected operating under any type of Debian device.
<popgreen> What I do now is scoff at terminals who do not pay their taxes.\
<popgreen> I havce worked on some things instead of Bash for a time.
<popgreen> Your U.S.A government is a fucking jokme
<popgreen> No more stockings whores.
<seydar> popgreen are you alright?
seydar has quit [Quit: leaving]
<popgreen> Oh yes I am Fine. -seydar
adu has quit [Quit: adu]
neshpion has joined #ruby
dfucci has joined #ruby
dfucci has quit [Ping timeout: 264 seconds]
akem has quit [Read error: No route to host]
jhass has quit [Quit: Bye]
dfucci has joined #ruby
<AndreYuhai> How to differentiate between a method and a variable name when I Wanna use the variable name that's passed as argument?
<AndreYuhai> I've got a method with the same name, so I think when I try to use the variable name, it's calling the method
jhass has joined #ruby
dfucci has quit [Ping timeout: 240 seconds]
roshanavand has joined #ruby
TomyLobo has joined #ruby
canton7 has quit [Quit: ZNC - http://znc.in]
dfucci has joined #ruby
canton7 has joined #ruby
neshpion has quit [Remote host closed the connection]
dfucci has quit [Ping timeout: 246 seconds]
neshpion has joined #ruby
va5c0 has quit [Ping timeout: 276 seconds]
akem123 has quit [Ping timeout: 240 seconds]
skryking has quit [Quit: Konversation terminated!]
adu has joined #ruby
akem123 has joined #ruby
hiroaki has quit [Ping timeout: 265 seconds]
dinfuehr_ has joined #ruby
Technodrome has quit [Ping timeout: 276 seconds]
dinfuehr has quit [Ping timeout: 276 seconds]
adu has quit [Quit: adu]
Swyper has joined #ruby
Swyper has quit [Remote host closed the connection]
akem has joined #ruby
dfucci has joined #ruby
<popgreen> Are you able to acknowledge "White Lives Matter"?
dfucci has quit [Ping timeout: 256 seconds]
s3nd1v0g1us has joined #ruby
jcGyo has joined #ruby
jcGyo has left #ruby [#ruby]
AndreYuhai has quit [Quit: Leaving]
ChmEarl has joined #ruby
<popgreen> hmm
<popgreen> you only enjoy nmesh
<popgreen> Goodbye Heavy Persons.
<popgreen> I love you all.
dinfuehr_ has quit [Ping timeout: 240 seconds]
dinfuehr has joined #ruby
roshanavand_ has joined #ruby
<popgreen> I like nickicing inte4ll. Ahh I only run and old old KGB computer.
akem has quit [Remote host closed the connection]
<popgreen> \I literalally do hate you.
alexherbo2 has joined #ruby
akem has joined #ruby
<popgreen> I will rip your mask off.
<popgreen> You fuck with me I have more pictures than bobby has to hold th U of M.
roshanavand has quit [Ping timeout: 240 seconds]
<popgreen> Take it you fuckes
<popgreen> I havce more than you .
<popgreen> HAVE!
<popgreen> No matter wat ; I always work for Soviets.
<popgreen> Let it run and assist another.
<popgreen> If you think KGB is not real I beg to differ.
popgreen was banned on #ruby by adam12 [*!*@unaffiliated/panorain]
popgreen was kicked from #ruby by adam12 [umm bye?]
<adam12> That's .. some interesting dialog.
akem has quit [Quit: Leaving]
<apotheon> adam12: I like your review.
<apotheon> How many stars is that?
akem has joined #ruby
akem has quit [Remote host closed the connection]
dnadev2 has quit [Ping timeout: 256 seconds]
adam12 has joined #ruby
User458764 has joined #ruby
akem has joined #ruby
<User458764> Hi, I have a question about HTTP::Net for sending multiple Set-Cookie header. As the "header" param is a hash how do I do in this example (which is incorrect)? https://pastebin.com/K2bUMn95
<ruby[bot]> User458764: we in #ruby do not like pastebin.com, it loads slowly for most, has ads which are distracting and has terrible formatting. Please use https://gist.github.com
reyfi9e has quit [Quit: Konversation term]
akem has quit [Read error: Connection reset by peer]
akem has joined #ruby
akem has quit [Read error: Connection reset by peer]
akem has joined #ruby
akem has quit [Ping timeout: 246 seconds]
akem has joined #ruby
weaksauce has joined #ruby
al2o3-cr has quit [Ping timeout: 256 seconds]
alexherbo2 has quit [Ping timeout: 272 seconds]
akem has quit [Remote host closed the connection]
OMGKitte- has joined #ruby
<OMGKitte-> This might be a dumb question, but I'm trying to debug a build issue with a gem (rugged). Is there a way to generate a Makefile, or build a gem in verbose mode? The .so thrown out in the end cannot resolve functions inside of libssh2.so, which is *does* know exists..
dfucci has joined #ruby
dfucci has quit [Ping timeout: 256 seconds]
roshanavand_ has quit [Ping timeout: 272 seconds]
dnadev2 has joined #ruby
jla has joined #ruby
<OMGKitte-> Oh, nm. When the gem breaks, I can just manually execute "ruby extconf.rb" and see the debugging I need
adu has joined #ruby
roshanavand_ has joined #ruby
adu has quit [Quit: adu]
adu has joined #ruby
jla has quit [Ping timeout: 240 seconds]
s2013 has joined #ruby
somazero has quit [Quit: Leaving]
carbone5 has joined #ruby
carbone5 has quit [Client Quit]
somazero has joined #ruby
adu has quit [Quit: adu]
dviola has quit [Ping timeout: 240 seconds]
va5c0 has joined #ruby
hiroaki has joined #ruby
dviola has joined #ruby
va5c0 has quit [Ping timeout: 256 seconds]
LtHummus has quit [Quit: ZNC 1.8.2 - https://znc.in]
dviola has left #ruby ["WeeChat 3.0"]
dviola has joined #ruby
LtHummus has joined #ruby
dfucci has joined #ruby
dnadev2 has quit [Ping timeout: 256 seconds]
al2o3-cr has joined #ruby
dfucci has quit [Ping timeout: 272 seconds]
al2o3-cr-tmp has joined #ruby
ur5us has joined #ruby
al2o3-cr has quit [Ping timeout: 256 seconds]
al2o3-cr-tmp is now known as al2o3-cr
alexherbo2 has joined #ruby
gearnode has quit [Ping timeout: 265 seconds]
ur5us has quit [Ping timeout: 240 seconds]
roshanavand_ has quit [Ping timeout: 272 seconds]
vincent_ has joined #ruby
landakram has joined #ruby
alexherbo2 has quit [Read error: Connection reset by peer]
alexherbo26 has joined #ruby
alexherbo26 is now known as alexherbo2
vincent_ has quit [Remote host closed the connection]
moldorcoder7 has quit [Ping timeout: 240 seconds]
moldorcoder7 has joined #ruby
roshanavand_ has joined #ruby
somazero has quit [Remote host closed the connection]
roshanavand_ has quit [Quit: Leaving]
roshanavand has joined #ruby
landakram has quit [Ping timeout: 264 seconds]
AndreYuhai has joined #ruby
alexherbo28 has joined #ruby
alexherbo2 has quit [Ping timeout: 246 seconds]
alexherbo28 is now known as alexherbo2
ruby[bot] has quit [Remote host closed the connection]
ruby[bot] has joined #ruby
va5c0 has joined #ruby
gearnode has joined #ruby
<AndreYuhai> Isn't ActiveRecord dropping idle connections after timeout?
<AndreYuhai> I am using ActiveRecord with Sidekiq and when I did show full processlist inside the DB, I saw a sleeping connection.
dasher00 has quit [Ping timeout: 240 seconds]
va5c0 has quit [Quit: WeeChat 3.0]
alexherbo2 has quit [Ping timeout: 256 seconds]
goepsilongo has joined #ruby
dasher00 has joined #ruby
Tempesta has quit [Read error: Connection reset by peer]
Tempesta_ has joined #ruby
neshpion has quit [Quit: neshpion]
dfucci has joined #ruby
dfucci has quit [Ping timeout: 246 seconds]
Tempesta_ has left #ruby ["Closing Channel, bye."]
Tempesta has joined #ruby