diary

I like Hatena Star with a text selection.

2020-02-07

www.bengo4.com

コインハイブ事件、有罪判決きびしいですね…。

こういうの、ちゃんと理解するには何を勉強したら良いのかな。 漠然と「このまま有罪になったらろくに新規技術に触れなくなる」と思っているけど、その辺をはっきり自分で理解できるようになりたい。


https://github.com/rubocop-hq/rubocop-rails/compare/master...pocke:Rails/UniqueValidationWithoutIndex 思いつきでCopを書いていた。眠いから続きは明日。

2020-02-06

koic.hatenablog.com

RubyKaigi 2020でkoicさんと一緒に登壇することになった。 rubocop-typed(仮)の話をします。


github.com

RuboCop TypedにCIを設定していた。 Ruby 2.6で中々CIが通らず、良くわからないhackを入れた。 rakeの中でchdirしつつbundle exec rakeを呼んで、その中で更にraccを呼ぶ、みたいな状態で、raccが見つかっていなかった。 Bundler.with_original_envして回避。前にもOvtoを触っていた時に似たような問題を踏んだことがあったような気がする。 Ruby 2.7では動くから修正済みのバグかなあ。


メソポタミア文明入門 (岩波ジュニア新書)

メソポタミア文明入門 (岩波ジュニア新書)

読み終わった。ちょうどキリスト教ユダヤ教あたりに触れていたところだったので楽しく読めた。


読んでいる

2020-02-05

誕生日プレゼントにいただいたボイドキューブを眺めていた。 普通の3x3x3キューブだと発生しない状態になったのでどうしてかなあと考えていたら、ruby-jpの #cubing でznzさんにアイディアをもらって普通のキューブで再現することができた。


https://github.com/rails/rails/blob/1dac170c236a4ba30ffad9b8d648bcc396e9c78a/activerecord/lib/active_record/explain.rb#L30-L33

AR::Relation#explainの結果がrails consoleでいい感じにハイライトされるのはなぜだろう、と眺めていた。

  • 一度変数に代入したりしてもハイライトは継続される
  • Object#itselfを呼んでもハイライトは継続される
  • String#dupするとハイライトされない
  • String.new(explain)するとハイライトされない

ので、explainが返すオブジェクト自身がなにかフラグ的なやつを持っているのかなあと推測して眺めていた。

rails consoleで$ str.inspectのようにしたらinspectが上書きされていて単にselfを返すようになっていた。

つまり、pryは特別なことをしていなくて、単にselfをそれっぽくハイライトしているだけみたい。なるほどなあ。


若い読者のための宗教史を読み終わった。このシリーズの他の本の方がおもしろかったかなあ。 でも良い本だと思う。2日間ぐらいで読み終わってしまった。 https://scrapbox.io/pocke-sub/%E8%8B%A5%E3%81%84%E8%AA%AD%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E5%AE%97%E6%95%99%E5%8F%B2


メソポタミア文明入門 (岩波ジュニア新書)

メソポタミア文明入門 (岩波ジュニア新書)

今読んでいる。 岩波ジュニア新書だから子供向けなのかな?と思ったけどそうでもなさそう。充分楽しめる。

ちょこちょこ今まで読んだ本とリンクする内容が出てきて楽しい。アマルナ文書はエジプトの本で出てきたし、バビロン捕囚は旧約聖書の本や先に上げた若い読者の〜でも出てきた。

これを読んだ後、考古学周りの本を何冊か読もうかなあと思っている。


github.com

すこし前に作ったrubocop-regular_expressionの今後を考えていたのをIssueにした。 個人的には本家に混ぜちゃうのが良いような気がするけど、どうかなあ。

そういえば、このプラグインは最初rubocop-regexpとして作ろうとしたのだけど、RuboCop::Regexpモジュールが誕生することでRuboCop内のコードでRegexp定数を参照するところが壊れまくったので諦めたのだった。


pocke.hatenablog.com

書こうと思ってしばらく放置してた記事をえいやで公開した。 ほどほどに声をかけてもらえたら嬉しいなあ。


github.com

steepを使う関係上普通のRuboCopのテストの仕組みに乗るのは難しそうだなあと思ってテストを放置していたけど、つらくなってきたので実装した。 やっていることは単純で、rubocopを実行してその出力を比較しているだけ。

Enumerator#slice_whenべんりですね。

2020-02-03

投資信託ポートフォリオを組み直そうとしたら、証券会社のWebページが全然反応しなくて結局スマホアプリからポートフォリオを組み直すことに成功した。 Chrome (Linux), Firefox (Linux), Chrome (Android)で試してダメだった。なんだったんだ…

ついでにリバランスした。


SteepのLSPを試していた。 rubocop-typedでSteepに密結合するのではなくLSPを介してやった方がいいのではと予想してLSPのspecificationを読んでいたけど、LSPは詳細な型情報を細かく手に入れるためのツールではないということが分かった。 エディタのためのプロトコルなのでそれはそう。

https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_signatureHelp Signature Help Requestとかがそれっぽいかな?とおもったけど、レスポンスを見るとラベル、ドキュメント、callableなら引数情報、ぐらいしか返ってこなくて使い物にならない。

Code Lensというやつが一番使える可能性がありそうかなあ。 https://qiita.com/atsushieno/items/ce31df9bd88e98eec5c4#%E3%82%B3%E3%83%BC%E3%83%89-%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A8code-lens よくわからないけど、なんでも詰め込んで良さそうに見える。 まあなんでも詰め込んで良いものを使ったら共通企画に乗っかる意味はあんまりないんだけど…


自分の誕生日ケーキを買いに駅前に行ったら、期間限定で桔梗信玄餅が売っていたから買ってしまった△ おもったより袋がかわいい。こういうの捨てるのも使うのも苦手だから困ってしまう

2020-02-02

LSPのSpecificationを読んでいる。よくわからん。


宗教史を読み始めた。同じシリーズのアメリカ史/経済史に比べると面白くない気がするけど、悪い本ではないと思う

2020-02-01

昨日から引き続き首が痛くて、今日は一日ずっと映画を見てた。しんどい。 夜の10時ぐらいにはだいぶ落ち着いてきて、多少首を動かしても痛みが走ることはなくなった。ただ異常な肩の重さと言うか違和感がある。まあ痛みのある向きを避けるように不自然な向きを向いていたからなあ。


github.com

正規表現周りを触るRuboCopプラグインを作ってみた。 正規表現のパースにregexp_parser gemが必要なので、本体に入れるよりはプラグインとしたほうが良いかなあという気持ち。 とはいえ正規表現は多くのRubyプログラムで使われるものだし、gemの依存は増えるけど本体に突っ込んでしまっても良いかも知れない。

実装したRegularExpression/MixedCaptureTypesは、うるさいと感じることも多そうで実際どうなのかなーと言うのはわからない。 もう一つあるアイディア( https://github.com/pocke/zatsu/issues/25 )は実用的な気がするけど、こちらは多少は実装がむずそう。


読み終わった。読んでてひたすら退屈で、後半はほとんど読み飛ばしてしまった。


別冊NHK100分de名著 集中講義 旧約聖書 「一神教」の根源を見る

別冊NHK100分de名著 集中講義 旧約聖書 「一神教」の根源を見る

NHK100分de名著シリーズが良いと聞いたので読んでいる。 なんか著者の主張をところどころ感じるけど、なにも知らない分野なのでまあまあ面白く読めている。 旧約聖書新約聖書の違いをそもそも知らなかったけど、旧約聖書ユダヤ教にとっての聖書で、キリスト教にとっての聖書は旧約聖書 + 新約聖書という感じらしい。