なるほど。
と思ってgithubとかは見出しにリンクがhoverで出るようになっていることに気づいてパクってそのまま実装しました。
果たしてどれだけ有用かは僕がちゃんとした記事を書けているかどうか?ってところですが。。
railsを6.0にアップデートしました。
特に何か新しい機能を入れたりはしていませんが、アップデートして問題なく動くことを確認しました。
capybaraのバージョンアップ
railsのバージョンがcapybaraのバージョンに引きずられて上がらなかったので、アップデートしました。
エラーの対応
rails6にしてデプロイすると、herokuで以下のエラーが出たので対応しました。
bundler: failed to load command: puma (/app/vendor/bundle/ruby/2.6.0/bin/puma)
Errno::ENOENT: No such file or directory @ rb_sysopen - tmp/pids/server.pid
/app/vendor/bundle/ruby/2.6.0/gems/puma-4.1.0/lib/puma/launcher.rb:135:in `initialize'/app/vendor/bundle/ruby/2.6.0/gems/puma-4.1.0/lib/puma/launcher.rb:135:in `open'
/app/vendor/bundle/ruby/2.6.0/gems/puma-4.1.0/lib/puma/launcher.rb:135:in `write_pid'
/app/vendor/bundle/ruby/2.6.0/gems/puma-4.1.0/lib/puma/launcher.rb:108:in `write_state'
...
... Continue Reading
昨日、 マルチサイトのテーマの切り替え を行いました。
流石にcssを当てていないと読みにくいため、開発日誌側のlayoutは黒としました。
一旦、それぞれの色が変えられるような仕組みを導入するのが良いかなと思っていますが、
コードを書くより、色のスキーマを設計する方が時間がかかるので。。。。
本来はもっと多様なテーマに対応できなり、cssそのものやDOMをそれぞれのサイトごとに変更できることが理想です。
将来的にはヘッドレスCMS化を行いJavaScriptで自由に描画を行えるようにするところまで考えてはいます。
切り替えというか、完全に開発者ブログの方ではcssを落とすという実装になりました。
ブログなんて、本来このくらいの方が男らしいかもしれません。
流石に読みにくいので時間があるときに対応するつもりではあります。
herokuを使っていると、環境変数でDATABASE_URLが設定される。
その流れでdotenvを入れて、環境毎の値はdotenvでサクッと管理してきた。
けれども、本来crednetailに当たるような情報も暗号化せずに管理していたので、
それは良くないなと、sentryを導入するにあたってcredentialを使うようにしてみた。
今回は秘匿化が目的なので、 Rails.application.credentials[Rails.env.to_sym][:foo] で取れるようにしてみた。
本来は環境毎に秘密鍵を分けて管理できる仕組みがあるといいのだけれど。
ただ、本当はもうちょっといいやり方がないか模索している。
https://twitter.com/yoshi_hirano/status/1115420387976699904
https://twitter.com/yoshi_hirano/status/1067019171521716224
config.x は以前使用したことがあるのだけど、結局ENVを渡すことが多くなってしまった。
本番環境の値はcredentailに入れて、開発環境の値はenvでというのも悪くないと思っている。
その橋渡し役に config.x はrailsの機能を使うやり方でいいなぁと思う。
ただ、実運用の世界ではproductionだけでなくstagingの情報も秘匿化しなくてはならなかったり、
秘密鍵の権限管理をしなくてはならなかったり、もうちょっと複雑なので、 Config + yaml_valut あたりの運用になってしまうのではないかとは思う。
...
... Continue Reading
マルチサイトに対応したもののRSSフィードがサイト毎に出なかった問題がありましたので、修正しました。
https://koheisg.dreamin.cc/feed
上記がdreamin blogのサイトのフィード、
https://dev.dreamin.cc/feed
上記がこの開発ログのフィードになります。
マルチサイトでドメインの紐付けをherokuと連携できるか調査しています。
この障害から分かる通り、マルチサイトはマルチテナントではなく、シングルテナントでの運用を行っています。
このサイトは現状個人開発で自分のために運用しているため、マルチテナント化の予定はありません。
実際にこういうサイトを一般のユーザーに解放する時はマルチテナントの運用によってリスクを回避するべきなのかもしれません。
この度、個人ブログである koheisg.dreamin.cc をマルチサイトに対応させました。
ブログには書くまでもない、個人ブログを機能開発の情報を発信していきたいです。
マルチサイトは雑にドメインを判定して、記事を出し分けているだけなので、
デザインのレイアウトがヘッダ、フッター含めて全て同じ状態になってしまっています。
(個人開発はこのレベルでもリリースしちゃえと思えるのがいいところです。)
しかしながら、一つのherokuを複数のドメインを扱えることがわかったので、個人的には大きな学びでした。
今後はマルチサイトのデザインを別デザインにできるよう改善していきます。
https://gist.github.com/nicolashery/5765395
CSSは上記を参考にした。
koheisg.dreamin.cc では記事の生成処理に、html-pipelineのはフィルターのを利用しているが、html-pipelineのから rouge を使用している。
rouge は pythonの pygments 互換らしいので、そちらでsolarizedを使っている人がいないか検索してみた。
rougeよりも情報が多かったが、基本的にcss部分は互換性があるので、そのまま使えそうである。
シンタックスハイライトはサーバーサイドでレンダリングするのではなく、
クライアントサイドでレンダリングする場面が多そうではあるが、サーバーサイドでレンダリングする場合はrougeで情報がなかった場合は、
pygments で情報を探すと出てくるかもしれません。