Hama Blog

Hama Blog

主にtech関連の記録

単一責任原則(SRP)について考えてみた

概要 最初に結論 そもそも単一責任原則(SRP)とは 上記の説明で思ったこと 余談 (その1)記事にしようと思った背景 (その2)Railsのモデルに単一責任の原則を適用するのって難しそう 概要 単一責任原則(Single Responsibility Principle, SRP)についての理解が…

書籍「具体と抽象」を読んだ感想

概要 全体的な感想 どういう人におすすめな内容か 特に気になった章の感想 序章 抽象化なくして生きられない 第1章 数と言葉 第2章 デフォルメ 第4章 法則とパターン認識 第8章 本質 第11章 量と質 第15章 階層 第16章 バイアス 第18章 マジックミラー 第19…

個人的テック系情報収集方法まとめ

概要 能動的に収集している方法 X (旧: Twitter) ポッドキャスト 拝聴中 (名前順) 今後拝聴したい (名前順) 技術書 YouTube 受動的に収集している方法 RSS 企業テックブログRSS Qiita メルマガ Qiita さいごに 概要 僕はソフトウェアエンジニアを職業として…

PullRequestのレビュー時に主に気をつけていること(レビュアー/レビューイとして)

概要 レビュアーとして気をつけていること 感謝の気持ちを持つ(できれば伝える) コメントするときは冷たい表現にしない 意図が読み取れない部分はそのままにせず質問する 質問するほどではないけれど気になったところはコメントする 指摘するときは意図も伝…

キーボードに無関心だった人がKeychron Q11を買ってみた

概要 キーボード詳細 買ってみてよかったこと、悪かったこと よかったこと 悪かったこと なぜ分割キーボードなのか 理由・経緯 購入先 DHLで困ったこと 概要 自分はソフトウェアエンジニアをやっているため毎日PCを触っているのだが、少し前まではキーボード…

Railsで複数カラムの組み合わせでuniquenessバリデーションを指定するときの指定順について

概要 記事執筆時の環境 結論 調査内容 uniqueness バリデーションの実行ログ確認 SQL 実行計画の確認 PostgreSQL MySQL 所感 概要 Rails の uniqueness 1 バリデーションは単一のカラムだけでなく、複数のカラムに対しても、scope オプションを使うことで va…

connpassで自分が所属しているグループのイベントをGASを使ってSlackに定期的に通知する

概要 成果物 設定手順 その他 概要 connpass でいくつかのグループに所属しているのだが、グループによっては毎日のようにイベントを開催していて、開催通知的なメールが多いと、そんなに通知いらないな、、、と思うことがある。 かといって通知をなくすのも…

Macのディスプレイ間のマウスカーソル移動をショートカットで実現する (Karabiner-Elements を使用)

概要 記事執筆時の環境 適用方法 任意のキー1つで対応する方法 任意のキーの組み合わせで対応する方法 所感 概要 以前以下の記事で、MacBook と外部ディスプレイ間 (2画面間) のマウスカーソル移動を AppleScript と Raycast を使ってショートカットでできる…

Railsのform_withヘルパーと素のformタグのネスト(というかHTMLのformタグ自体のネスト)に注意

概要 記事執筆時の環境 結論 form_with ヘルパーが先の場合 テンプレートファイル 出力結果 素の form タグが先の場合 テンプレートファイル 出力結果 そもそも素の form タグ自体をネストさせるとどうなるのか テンプレートファイル 出力結果 概要 先日、会…

Rubyで空配列に対してのArray#all?をtrueにしている理由を調査(考察)

概要 記事執筆時の環境 結論 自分なりの考察 (一応) ChatGPT に聞いてみた結果 なぜ違和感を感じたか 調べたこと 公式ドキュメント 他の言語ではどうなのか Elixir と Kotlin でなぜ true にするのかの説明があった 調査して思ったこと 概要 普段 Ruby を使…

RailsアプリケーションをDokkuにデプロイする

概要 記事執筆時の環境 手順 VPS の契約 Dokku のインストール Rails アプリケーションのデプロイ +α SSL 化 Redis の設定 Cron の設定 Chrome, ChromeDriver のインストール GitHub Actions で自動デプロイ 所感 概要 個人開発しているサービスを Heroku で…

Macのディスプレイ間のマウスカーソル移動をショートカットで実現する ※環境制約あり

概要 記事執筆時の環境 成果物(適用方法) 作った経緯 AppleScript の解説 課題 所感 Links [※ 2023/9/12 追記] この記事で書いた内容よりももっと簡単に、環境制約もなく実現できる方法があったため、以下で紹介しました。 なので基本的には以下の記事を参照…

【随時更新】これまでに読んだ書籍や使った学習教材のリスト

自己満足感を得るために、これまでに読んだことのある書籍や使った学習教材をまとめた。(随時更新していく) (感想が書けていないものが多々あるので、それも随時更新していく...) 書籍 技術書 ビジネス書 学習教材 Udemy その他 書籍 技術書 カテゴリー タイ…

コマンド履歴から任意の文字列に該当する履歴を削除するコマンドを自作した

概要 普段 zsh を使っているが、Ctrl + r でコマンド履歴から過去のコマンドを呼び出したいときに、タイポなどで実行してしまった不要な履歴が候補に含まれてしまうのが邪魔だった。 なので、それらを個別にキーワード指定して削除できるコマンドを自作して…

zsh の設定ファイルの説明

概要 macOS で zsh を使っているが、.zshenv や .zshrc などの違いをちゃんとわかっていなかったので(調べてもすぐに忘れてしまい、その都度ググって調べてしまうので)、簡単にまとめた内容をメモとして残しておく。 まとめ zsh の設定ファイルは5種類ある。…

Railsでrenderの引数に渡したtemplateのパスの先頭に `/` があってもいける理由を調べてみた

概要 Rails の controller で別のパスにある template を呼び出したいことがたまにあり、その際は render template: "products/show" のような指定をするのだが、render template: "/products/show" のように先頭に / があってもエラーにならずにレンダリン…

DockerのRails開発環境でweb-consoleを表示する

概要 新しく Rails アプリケーションを Docker 環境で開発していたときに、web-console が表示されなくて困ったのでどうすれば表示されるか調べた。 記事執筆時の環境 Ruby on Rails: 7.0.4 Docker Desktop: 4.15.0 Docker Compose: 3.9 結論 config/environ…

Railsのform_withのオプションでmethodを指定しない場合にHTTPメソッドがどのように決められるのか調べてみた

概要 Rails の form_with ヘルパーでは、method オプション(任意オプション)を指定すると form_with によって生成される html の form タグに対して HTTP メソッドを任意に決めることができる。 未指定の場合はデフォルトで POST になるのかと思っていた(こ…

gem 'rails' のコードを Docker 環境で動かしながらコードリーディングする

概要 Rails で開発をしていて、たまに Rails 本体 (gem 'rails') のコードリーディングをしたいときがあるが、ただ読んでいるだけだと難しくて理解できないことが多い。 なので、Rails のコードをローカルにクローンし、開発中の Rails アプリからクローンし…