diary

I like Hatena Star with a text selection.

2022-05-21

moneyforward.com

moneyforward.com

会社のブログを何件か書いた。社内向けに書いていたものを、ちょっと手を入れて社外向けに出した。Rails周りでいまいち自信がないところを調べて文章にする仕事をしている。


github.com

日本語版Rails GuideのZeitwerkのページを読んでいて、気になったところがいくつかあったのでPRをした。

先のエンジニアブログのネタである調査をしていた時に、関連しそうなRails Guideのページは一通り読んでいたのがきっかけ。


[B07GSZ3X7L:embed:cite]

鬼桐さんの洗濯、4巻まで読んだ。こういう人間の世界に人ならざるものが住んでいる漫画が好き。

自分の洗濯力は皆無なので、なるほどわからんという感じ


ピアノレッスンだった。

引き続き愛の挨拶を練習している。ついに愛の挨拶の最後までが練習範囲になった。まだ最後のあたりは右手だけだけど、頑張って練習している。

練習をしていて、右手でソ♯シミソ♯の和音(アルペジオ)がなかなか指で押しづらいなあと考えていた。

左手をクロスさせて弾くところがあって、なんとなくかっこよくて良い。

来週はレッスンがおやすみなので、2週間後。最後のあたりもなんとなく弾けるように練習したい。

2022-05-17

姫のためなら死ねる、12巻読んだ。やはり好き。続きが気になる…。

史実よりの話を知っていると結構刺さる話もちょくちょくあって、それも好き。


瑠璃の宝石、2巻まで読んだ。 こういう話めっちゃ好き。鉱物探すの楽しそう。続きも楽しみ。


百合オタに百合はご法度です!? 2巻まで読んだ。好き。百合を摂取できた。百合。

2022-05-10

ワクチンの副反応で一日休んでいた。

解熱剤は飲んでいるけど、熱は37.5 〜 38.4℃あたりを推移している。 とはいえ熱の割には頭ははっきりしていて、座っている分にはあまりつらさを感じない。立ち上がって動くと結構しんどい。

腕の痛みはあまり気にならない。注射したほうの腕を下にして寝ると痛いけど、安静にしていれば痛みはほぼない。

こういうときにUber Eatsがあると便利。

一日休みにしたので、遊戯王の漫画をずっと読んでいた。バトルシティ編の決勝まで進んだ。

2022-05-08

笠岡諸島北木島に遊びに行っていた。 笠岡には以前カブトガニ博物館には行ったことはあるのだけど、離島に行くのは初めて。

twitter.com

笠岡の港で鳩が収納されていた

twitter.com

乗った船。

twitter.com

帰りは船の屋上が開放されていた。とてもいい天気で遠くまで見えて良かった。船の設備っぽいのも見れて楽しかった。

twitter.com

https://www.okayama-kanko.jp/spot/15077

今回のメインの目的地だった採石場北木島はもともと採石で有名だったのだけど、最近はアクティブな採石場は減ってきていて、石を切り出しているのはこことあと1箇所になってしまったらしい。

展望台から石切場を眺められて楽しい。もともと山だった空間が全部削られたと考えるとなかなかすごい。

twitter.com

光劇場という古い映画館。石切場についてのビデオ上映をしていた。「今日は開いているみたいだから行ったほうがいい」みたいなことを言われたので、毎日は開いていないみたい。

昔は石船という船に石を積んで埋立地に石を捨てていたらしい。石の捨て方がなかなかすごくて、船を傾けて(30°ぐらいは傾いていた気がする)石を滑らせて捨てていた。一歩間違えばすぐ転覆しそうだし、ハチャメチャですごい。 ref: https://ja.wikipedia.org/wiki/%E7%9F%B3%E8%88%B9

近所に光産業というお店もあったので、「光」というのは地名か人の名前かだったりするのだろうか、とちょっと気になっている。

twitter.com

これはきれいな水場。海沿いにあって、満潮時とかには海とつながっていそうだった。

twitter.com

ここはとても良かった。北木島の桂林と呼ばれている場所。

こういう力強い風景はなかなか好き。

twitter.com

ヒラメ(もしかしたらカレイかも知れない)

twitter.com

自転車で島内を回っていた。 レンタサイクルは、港近くのK's LABOで借りた。事前予約なしで行って借りれたけど、予約したほうが安定っぽい。 http://kslabo.info/

島内は自転車で通れる道を一通り一周した。Google mapsによると15kmほどサイクリングをしたみたい。 途中結構な坂があってしんどかったけど、海沿いを走っていい景色が見られて楽しかった。

島内でよく見かけた標識(?) 海の方を向いていたので船のためのものだろうか

お昼にK's LABOで食べた笠岡ラーメン

自転車で巡った時に撮った海

廃工場(?)からのぞく藤

フェリーの屋上。これは椅子ではなく煙突なんです、と説明を受けた

夜ご飯に食べたさわら。めちゃ美味しかった

夜ご飯に食べたフィッシュアンドチップス。魚は鯛とはも。これもめちゃ美味しかった。

夜ご飯は https://malfish.jp/ で食べた。お魚中心で美味しい食事ができて良かった。笠岡駅からすぐ近くで便利。 また行きたい


笠岡駅の接近メロディがやけにポップな音楽で、ちょっとびっくりした。「がんばれカブトガニ」という曲らしい。YouTubeに動画があるので見てみると雰囲気が伝わりそう。

2022-05-06

github.com

Active Record Validation のRails Guideを読んでいて、気になったところがいくつかあったのでPRした。


上記Rails Guideを読んでいて、NumericalityValidatorがよくわからなかったので調べていた。

Rails Guideで次のように書かれているところに引っかかった。

それ以外の場合は、Floatを用いる数値の変換を試みます。Floatは、カラムの精度または15を用いてBigDecimalにキャストされます。

https://railsguides.jp/active_record_validations.html#numericality

原文だと以下のように書かれている

Otherwise, it will try to convert the value to a number using Float. Floats are casted to BigDecimal using the column's precision value or 15.

https://guides.rubyonrails.org/active_record_validations.html#numericality

ここでは、「値をFloatに変換したあと、BigDecimalに変換する」と書かれている。 Floatに変換した段階で情報が落ちるので、なぜ直接BigDecimalに変換しないのだろうと気になった。

この実装は次のあたりにある。

github.com

どうやら'0.12345'のような値がこのvalidatorに渡ってきたときに、この「FloatにしてからBigDecimalにする」という処理を通りそうということがわかった。

経緯を追っていると、次のPRが見つかった。

github.com

このPRでは、もともとKernel.BigDecimalを呼んでいたところで、Kernel.Floatを呼んだあとto_dを呼ぶように変更されている。その意図は、to_fを定義したPOROをこのvalidatorに渡したときにうまく動くようにするため、のよう。

この挙動については、意図した挙動のように見える。次のドキュメントでは「Precision of Kernel.Float values are guaranteed up to 15 digits.」と言っていて、15以上の精度が保証されているとは言っていない。

github.com

また、Active Record側のコードを見ると、精度をFloat::DIG( == 15)で打ち切っている。

github.com

ということで、まあこれは意図した挙動なのではないかという気がしている。

実際これが問題になるのは、'0.1234567890123456789'のような15桁を超える値がユーザーから送られてきて、かつそれを15桁を超える精度で比較したいときだけだと思う。validationという文脈ではそこまで細かい精度が必要になることはあまりない気がするので、問題にはなりづらい気がしている。

ちなみに、DB上ではこの精度は15より大きい値が許されているので(Floatより高い精度で計算したいのだからそれはそうか)、例えば20桁の精度で定義したカラムを持っているRails appとかはなにか問題を踏んだりしないのだろうか、とかはちょっと気になる。

www.postgresql.jp

dev.mysql.com