23:11onkcopをejectしたブログ開発日記https://github.com/okonomi/blg/commit/b2d92034725e0395daf7de2958a971124899ddc8onkcopが更新されなくなって久しく、rubocopのアップデートに追従していない状態なので、onkcopを外してrubocopとプラグインを入れ直した。コードスタイルにあまり思想はないので、既存コードに大きく手を入れなくていい範囲で.rubocop.ymlを書いておいた。onkcopの設定内容は今でも有用なので、どうするか迷ったときは参考にしたい。23:12Xcodeをアンインストールする最近モバイルアプリの開発は特に行っていないので容量を食っているXcodeをアンインストールすることにした。Toolsはrbenvとかで必要。Toolsは単独でインストールできるので、Xcodeをアンインストールするまえにインストールしておく。デベロッパーサイトからダウンロードする。Toolsを切り替えるXcodeのやつからさっきインストールしたやつに切り替える。--print-path/Library/Developer/CommandLineToolsXcodeをアンインストールする普通のアプリ削除と同じノリでアンインストールする。手で削除してもいいし、削除ツールを使ってもいいと思う。結果7Gくらい空いたのでよかった。14:18パンくずリストにbuoysを使うことにしたRailsRailsでパンくずリストを出すのにgretelを好んで使ってたけど、2016年からリリースがなくてこのまま使い続けるのも...と思ってrubygems.orgで検索したところbuoysというのを見つけた。https://github.com/muryoimpl/buoysbuoysはgretelを参考に作られてて、かつよりシンプルにしているみたい。思えばgretelは機能が豊富で便利だけど使うのがちょっとややこしかったかも...使い方はgretelと同じなので特に苦労はなく、結果的によりよいと思えるgemに移行できてよかった。gretelはメンテナが交代したそうなので、今後また活発になることを期待したい。lassebunk/gretelとりあえず応援の意味を込めて新しいリポジトリにスターを付けておいた。https://github.com/WilHall/gretelちなみにbuoysはなんて読むんだこれ...と思ったが「ブイ」らしい。installが抜けててrubocopが実行エラーになってた、というのをつい最近経験したので下記Issueに気持ちをコメントしておいた。15:14secret_key_baseがどういうふうに扱われているかRailsRailsアプリを本番デプロイしたらsecret_key_baseが未定義っておこられたので、どういう扱いになってるのか確認してみた。確認したRailsのバージョンは6.0.0.rc1。"bb7a320962dda4262e21262f80229946f5a3b3c05cc8968d71d1ae9e40c64b5d7afb5340c196134089590b69d8a51a05ee801217b90eb859236bf4b14f8d5a76"secret_key_baseの定義場所Rails::Applicationにメソッドとして定義されている。end環境がdevelopmentかtestの場合secrets.secret_key_baseが未設定なら、generate_development_secretを実行し結果をsecrets.secret_key_baseに保存するsecrets.secret_key_baseを返すそれ以外の場合ENV["SECRET_KEY_BASE"]、credentials.secret_key_base、secrets.secret_key_baseの順番で評価してバリデーションした上で結果を返すsecrets.secret_key_baseとはRails::Application#secretsが定義されてる。endsecret_key_baseが未設定ならtmp/development_secret.txtを自動生成してその内容を返すらしい。20:34シンタックスハイライトをつけたブログ開発日記コードを書いたときにシンタックスハイライトが効くようにしてみた。okonomi/blg@e5835bchighlight.jsを使った。class="ruby">みたいに言語を指定したりできないけど、highlight.jsは勝手に言語を判別してなんとなくいい感じに色付けしてくれるので楽。DockerRailsサーバとwebpack-dev-serverを別コンテナで起動して、WEBPACKER_DEV_SERVER_HOSTでRailsにwebpack-dev-serverの居場所を教えてあげる形にした。18:38OGP対応したブログ開発日記meta-tagsを使ってOGP対応した。https://github.com/kpumuk/meta-tagsChrome拡張とFacebookやTwitterの開発ツールで動作確認した。基本的なSEOチェックに。Developersdescriptionはとりあえずサイト名を設定してるので、きちんと本文のはじめの方だけ切り出して設定するとかを後でやる。ブログ開発日記Dockerの勉強がてら、HerokuのデプロイをDocker化(という言葉であってるのか?)した。okonomi/blgまずstackをcontainerに変更する。$PORTあとはDockerfile.productionをいい感じに用意する。DockerシンプルなRailsアプリを作って、それをDockerで動かすためのDockerfileを書いてみた。["bin/rails"]あと.dockerignoreはこうした:.bundle.dockerignore.git.gitignoreDockerfilelognode_modulespublic/assetspublic/packsREADME.mdstoragetesttmpマルチステージビルドを使って、ビルドステージではgemのインストールとassets:precompileを行う。次のステージでRailsサーバを動かすためだけの最小限のファイルをコピーする。これでイメージサイズが160Mくらい。小さくできそうな気もする。あとDBとか他のサーバと合わせて動かすとどうなるかちょっと分かってない。投稿ページの<title>タグに個別のタイトルを表示するようにした。22:51ActionTextのフォームをE2Eテストしたブログ開発日記ActionTextのリッチテキストエディタは単純な<textarea>ではなく、JSでテキスト入力をトラップして処理してる(らしい)ので、capybaraでフォームの入力をしようとしても普通のやり方だとうまくいかなかった。したらいいのかなと思ってたけど、ちょうどいいPRが出ていた。rails/railspage.execute_scriptでJSを実行して文字列をリッチテキストエディタに入力させるらしい。同じようにやったらテストが上手く動くようになった。22:22onkcopを導入したブログ開発日記コードが汚くなってきたのでrubocopを導入したくて、調整するのが面倒なのでonkcopを入れてみた。調整されてるし、.rubocop.ymlに設定理由がコメントされてて勉強になる。そのままの設定だとbin/以下のファイルで引っかかるけど自分で作ったファイルじゃないので除外設定した。普通に設定するとonkcopで指定されてる除外設定を上書きしてしまうので、追加されるようにinherit_modeを指定する。19:03記事編集画面に<code>タグを挿入するボタンを付けたブログ開発日記ActionTextが内部で使ってるTrixは自動的にツールバーを出してくれるけど、<code>タグの機能がなかったので付けた。Trix.config.textAttributesに要素を追加するのと、Trix.config.toolbar.getDefaultHTMLを置き換えたらできた。ツールバーにボタンを追加するのは現状デフォルトのHTMLを全部置き換えるしかなくて、単純にボタンを追加するというAPIがない。Issueでリクエストが出ていたので+1しておいた。そのうち対応されたらいいなと思う。長文を書くときに一旦保存したいなと思ったので、下書き機能をつけた。Doorkeeper@higakiさんのRuby初級者向けレッスン。Rubyの例外について基本と応用の説明。rescueにelseを指定できるとかensureでreturnしちゃいけないとか知らなかった。@znzさんのRubyの開発リポジトリがSubversionからGitに移行した話。移行していったそうで、バージョン管理の歴史だなぁと思った。@kozo2さんのrubydownの話。Notebookということかな。Notebookの利用例としてアプリのログ集計とかの日次レポートを作ってメールで送信するというのがなるほどと思った。rubydownはgemなので既存のRailsアプリに組み込んだりとかもやりやすそう。@ogomrさんのGraphQLの発表はライブコーディングだったけどめっちゃスムーズでわかりやすかった。モデルにドメインロジックを書かないという話があったけど、どこに書くのかっていうのがちょっとわからなかった。gem?)を使うとコード量が増えるように思うけど、それはそれぞれのクラスに責務が分離されるから、とのこと。序盤、プロジェクターが準備できていないというハプニングがあったけど、なんかそれも結果オーライでゆったりした雰囲気でリラックスして参加できた。同じ日に複数投稿したら時系列がよくわからなくなるので投稿時間も表示するようにした。<input>にtype="datetime-local"があるの知らなかった。MDNあとタイムゾーンの設定でちょっとハマってしまった。Qiitaconfig.time_zoneを設定しておけばよさそうと理解した。念の為TZ環境変数も設定しておいた。投稿にタグを付けられるようにした。multiple>にした。00:00ブログタイトルを設定できるようにしたブログ開発日記BLOG_TITLE環境変数で設定できるようにした。設定ファイルとかDBで設定するのはなんか手間のわりにメリットが少ないかなあと思って環境変数にしたけど、viewファイルで環境変数を直接参照しててなんかかっこ悪い気がするけどどうなんだろう。他のプロジェクトはどうやってるんだろうか。00:00Dependabotの設定ファイルを作ったブログ開発日記id:sue445さんの記事を参考にDependabotの設定ファイルを置いてみた。Heroku"ボタンを付けてみた。簡単にデプロイできるようになって便利。投稿のURLにIDが見えてるとちょっとかっこ悪いというか、ソートがID順ではないのにID順なのを期待してしまいそうでややこしいのでランダム値にした。consoleで対応した。Herokuに移行した。Gatsbyで手っ取り早く作ったけど、Gatsbyに慣れてないせいでかゆいところに手が届かなかった。自分で作ったほうが手っ取り早いなと思ってRailsで作り直した。6.0.0.rc1で作ってる。いまのところ特に不具合に遭遇せず普通に開発できてる。あとAtomフィードをつけた。AtomFeedHelperで簡単にできた。前から使ってみたかったbulmaを使ってみた。https://bulma.io/bulmaはクラス名が叙述的になっていてわかりやすい。RSpecに近い書き味。あとは投稿日をつけたり、ActionTextを導入したり。specが一部失敗するようになってしまった。調べたけどわからなかったので、のちほど調査することにしていまは無視することにした。organizationのメンバーになった。Twitterを見てたらreviewdogが開発を手伝ってくれる人を募集しているとのことで、以前プルリクを投げたこともあるし、なにか手伝えることがあるかなと思って手を上げた。reviewdog/reviewdogあわせてreviewdogはorganizationに移管された。今後はチームで開発していく体制になるのかな?reviewdog自分はGoはほとんど書けないので、いちユーザーとしての意見をあげたりドキュメントの修正とかをやっていこうかなと思っている。00:00Railsアプリを作るときにいつも叩いてるコマンドRailsRailsアプリを作るときにいつもやってることをメモしておく。.gitignoreおわり。Railsをグローバルにインストールしたくないのでこんなことしてる。Railsの依存でいろんなgemが入るのが嫌なので...。