地名の楽しみを読んでいる。まだ40%弱しか読んでないけどめっちゃ面白い。
twitter.comへええ、「インターパーク」という地名が宇都宮にあるのか。そして高岡にはICパークという地名がある。知らなかった…https://t.co/6xQr31eUad
— Pocke(ぽっけ) (@p_ck_) August 12, 2020
twitter.com愛知県豊川市に「東名町」があるのも面白い。地名→高速道路名→地名という
— Pocke(ぽっけ) (@p_ck_) August 12, 2020
twitter.comイノ先輩が好きそうだな、みたいな気持ちになっている
— Pocke(ぽっけ) (@p_ck_) August 12, 2020
スルッと読めて面白くて良い。
TraceLocationにCLIを追加するPRがマージされてた。やったね。
PRの例ではtrace_location bundle -v
とかやっててこれは実際動くのだけど、めっちゃ時間かかるしめっちゃでかい出力が出るのでこれだけだとそこまで実用的とは言いづらい。
ただ、例えば次のように局所的なコードを-e
で指定すると割と実用的なんじゃないだろうか。
$ RUBYOPT=-ruri trace_location -e 'URI.parse("https:://github.com")' -f log Created at /tmp/tmp.bYiuL59j5n/trace_location-2020081223081597243953.log $ cat /tmp/tmp.bYiuL59j5n/trace_location-2020081223081597243953.log Logged by TraceLocation gem at 2020-08-12 23:52:33 +0900 https://github.com/yhirano55/trace_location [Tracing events] C: Call, R: Return C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/common.rb:246 [URI.parse] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/rfc3986_parser.rb:71 [URI::RFC3986_Parser#parse] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/rfc3986_parser.rb:14 [URI::RFC3986_Parser#split] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/rfc3986_parser.rb:69 [URI::RFC3986_Parser#split] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/common.rb:151 [URI.for] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:169 [URI::Generic#initialize] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:334 [URI::Generic#set_scheme] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:336 [URI::Generic#set_scheme] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:509 [URI::Generic#set_userinfo] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:542 [URI::Generic#split_userinfo] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:543 [URI::Generic#split_userinfo] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:517 [URI::Generic#set_userinfo] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:603 [URI::Generic#set_host] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:605 [URI::Generic#set_host] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:692 [URI::Generic#set_port] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:695 [URI::Generic#set_port] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:779 [URI::Generic#set_path] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:781 [URI::Generic#set_path] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:829 [URI::Generic#query=] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:830 [URI::Generic#query=] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:873 [URI::Generic#set_opaque] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:875 [URI::Generic#set_opaque] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:919 [URI::Generic#fragment=] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:920 [URI::Generic#fragment=] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:39 [URI::Generic#default_port] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:32 [URI::Generic.default_port] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:34 [URI::Generic.default_port] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:41 [URI::Generic#default_port] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:39 [URI::Generic#default_port] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:32 [URI::Generic.default_port] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:34 [URI::Generic.default_port] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:41 [URI::Generic#default_port] C /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:692 [URI::Generic#set_port] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:695 [URI::Generic#set_port] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/generic.rb:214 [URI::Generic#initialize] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/common.rb:159 [URI.for] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/rfc3986_parser.rb:73 [URI::RFC3986_Parser#parse] R /home/pocke/.rbenv/versions/trunk/lib/ruby/2.8.0/uri/common.rb:248 [URI.parse] Result: https:://github.com
inspiredと書いているstackprof-runに比べると、実行速度の劣化と出力の扱いづらさがあるから雑にtrace_location
コマンドにRubyのプログラムを解析させてもあまり旨味がないのは確かだよなあと思っている。
まあ適当に使っていればそのうち利点も見えてくるかな。