patorashのブログ

方向性はまだない

人生の経営戦略を読んでる

Pivotの動画でたまたま見て、気になったので本を買って読んでいるんだけれど、気づきが多そうなので、1章ずつ刻んで感想を書いていこうと思う。感想はこの記事に継ぎ足していこうと思う。 人生の経営戦略――自分の人生を自分で考えて生きるための戦略コンセプ…

継続する技術を読んだ

Kindle版の書籍が499円だったので、買って読んでみました。習慣化の手法が気になる今日この頃。 200万人の「挫折」と「成功」のデータからわかった 継続する技術作者:戸田大介ディスカヴァー・トゥエンティワンAmazon 3つの原則 Amazonの本のページに原則が…

すぐ動ける人の週1ノート術を再読した

前に1on1のテンプレートに採用した、先が見えなくても、やる気が出なくても 「すぐ動ける人」の週1ノート術を再読しました。この本の内容自体はうっすらと覚えていながらも、1on1の際にメンバーに書いてもらっていて、一定の成果が出てます。メンバーたちか…

今後の投資方針の結論を出したので書き留めておく

一日に何度も証券口座を確認してしまう癖がついていたのを、なんとか止めたいなぁと考えていたのだけれど、より安定して稼げる方法はないか?とついつい見てしまいます。投資系YouTubeや本も。 ただ、この半年くらいで投資方針を定めることができたので、こ…

SQLのORDER BYの条件の途中にNULLが入ってくる場合の対処法

SQL

データのソート順がまぁまぁ複雑で、NULLの場合もあるケースでソートをかけてみたら、1番目のソート条件がNULLだったせいで、2番目のソート条件が無視されてしまい、思った通りになりませんでした。 Geminiに相談してみたところ、ORDER BY句の中でCOALESCEす…

Sequelでorder byするときにNULLのデータを最後にする方法

現在担当しているプロジェクトで、データベースを扱う際にrom.rbを使っています。 そのため、ベースになっているSequelも使うことになっているのですが、その際に調べた小ネタ等をちょいちょい投稿していこうかなと。 ORDER BYするときの書き方が、ActiveRec…

Rodauthで日本語のメールを送る際に出るwarningを消す方法

最近、認証機能の実装をするためにRodauthを使っています。多機能で便利ですね、Rodauth。 rodauth.jeremyevans.net しかし、Rodauthでメールを使う機能(パスワードリセット等)を有効化して、メール本文に日本語を使った場合に以下のようなwarningが出てい…

Sinatraでfaviconへのアクセスを無視する

Sinatra使っているとfaviconを置くのを忘れがちというところがあるのは私だけ? というかAPIサーバなのでfavicon要らんねんけど…。というときに使える小ネタを知ったのでメモとして記しておく。 # app.rb before '/favicon.ico' do halt 204 end これでルー…

Lambda Web Adapterのコンテナでタスクを実行する

前回、Lambda Web Adapterを使ってSinatraアプリをAWS Lambdaで動かす話をしました。 patorash.hatenablog.com 今回は、Lambda Web Adapterを使っているコンテナでサーバーレスでタスクを実行する方法についてです。 タスクはrake taskを実行すればいいんで…

Lambda Web Adapterを使ってSinatraを動かす

Railsで運用されていたアプリをSinatraで実装し直した上でサーバーレスで動かしたかったのでやってみました。 こちらのRailsアプリも長いことメンテされておらず、RubyのバージョンもRailsのバージョンも古すぎた…。 作ったもの シンプルなWebAPIを作った(R…

AWS Lightsailで社内向けツールのサーバ立ててみた

AWS

部署向けアプリケーションを動かしていたサーバーのOSサポート期間がギリギリになってきたので、他のサーバーへの移行を行う際に、AWS Lightsailを使ってみました。 Lightsailは、AWSで使えるVPSです。EC2のように柔軟に使えないものの、月額支払いのため、…

長男に家の1階全部を水浸しにされた話

先週の日曜日の早朝に、長男に1階全部を水浸しにされました。 長男は知的障害児で現在小学校2年生で支援学校に通っています。 水遊びが好きで、家でも目を離すとすぐに水道を出しっぱなしにして大変です。それのせいと、大きくなってきたのと、ある意味で知…

rom-rb(rom-sql)でマイグレーションをロールバックする

Hanami v2.0を試そうとしているのだけれど、まだHanami v2系にはHanami Modelがリリースされておらず、rom-rbを直接使うことが推奨されている状態なので、rom-rbを使ってDBのマイグレーションを行っていたのですが、これロールバックはどうするんだろうか?…

Railsで作ってたアプリをSinatraで作り直した

何年も前に社内向けにシンプルなアプリをRailsで作っていたのだけれど、長いことメンテナンスできずにいた。 Rubyのバージョンも古いし、Railsのバージョンも古かったので、バージョンアップをしないとなぁと思っていたのだけれど、やったところでまた数年後…

スキーマ駆動開発は依存関係逆転の原則を適用したものだと気づいた

ここ最近、チーム内で設計力強化のためにクリーンアーキテクチャ読書会をしているのだけれど、そこで気づいたことがあるのでメモとして残しておく。 18章の境界の解剖学を読んでいた際に、クライアントとサービスの図があったのだが、下位レベルのクライアン…

2022年9月に取り組んだこと

とりあえず、前回の記事からほぼ1ヶ月くらい経過しました。前回の記事では、昇進して課長になったよという話を書きました。 patorash.hatenablog.com この1ヶ月で取り組んだことをざっと書いていこうかなと思います。 独自にOKRの導入 スプリントのふりかえ…

株式会社リゾームで昇進しました(2回目)

うちの会社は期首が9月で、今期で昇進した。世間では退職エントリーとか入社エントリーが多いから、自分は昇進エントリーを書く。(2回目) なお、1回目はこちら。3年前ですね。 patorash.hatenablog.com 課長に昇進した うちの会社ではキャリアとしてマネジ…

ActiveRecordでテーブルコメントを参照する

小ネタです。migrationの際にテーブルコメントを追加する情報は検索すればいくらでもヒットするんですが、ActiveRecordでテーブルコメントを参照する方法はなかなかヒットしなかったので、メモしときます。 環境情報 Rails 6.1.6.1 Ruby 3.1.2 方法 ヒットし…

Elasticsearchへの保存を非同期ではなく同期で行う方法

環境情報 Rails: 6.1.6.1 Ruby: 3.1.2 Database: PostgreSQL 11.x Elasticsearch 7.x DBに保存したらElasticsearchも更新されたい Railsプロジェクトで、データベースへの保存を行ったら同時にElasticsearchへの反映も行いたい、というケースが出てきました…

「現場で役立つシステム設計の原則」読書会 vol.10

第10回の感想です。前回の感想はこちら。 patorash.hatenablog.com 会社のブログのレポートはこちら。 tech.rhizome-e.com 最後なのでみんな参加できるようにしようということで日程調整してから行ったので少しずれ込みました。というても5月前半だったので…

Herokuへのデプロイが成功しているのにgitのエラーが発生する件に対応した

git pushでHerokuにデプロイしたら、デプロイは成功しているのに、最後にエラーメッセージが出てしまう現象に遭遇しました。 $ git push heroku release-yyyymmdd:master # なんやかんやあって remote: Waiting for release.... done. fatal: protocol error…

「現場で役立つシステム設計の原則」読書会 vol.9

読書会自体はGW前にやっていたのですが、諸々あって書くのが遅くなってしまった…。 第9回の感想です。前回の感想はこちら。 patorash.hatenablog.com 会社のブログのレポートはこちら。 tech.rhizome-e.com 9章 オブジェクト指向開発のプロセス 開発の基本は…

RSpecでブロック引数をmockで置き換える

RSpecで、ブロック引数に渡されたオブジェクトが、とあるメソッドを実装しているかどうかによって処理を変える件のテストをしたかったのだけれど、どうやったらいいかわからなかったので調べました。 テストしたい処理 class Hoge < ApplicationRecord def f…

Rspecで環境変数をstubしていたのが動かなくなった件(解決済)

小ネタです。rubocopのバージョンアップを行ったら、新しいルールで怒られが発生しました。 C: [Correctable] Style/FetchEnvVar: Use ENV.fetch('FOO') or ENV.fetch('FOO', nil) instead of ENV['FOO']. Correctableなので、bundle exec rubocop -Aで自動…

「現場で役立つシステム設計の原則」読書会 vol.8

第8回の感想です。前回の感想はこちら。 patorash.hatenablog.com 会社のブログのレポートはこちら。 tech.rhizome-e.com 8章 アプリケーション間の連携 1つのサイトであっても、様々なシステムが連携しあっている。 アプリケーション間の連携方式。 ファイ…

「現場で役立つシステム設計の原則」読書会 vol.7

第7回の感想です。前回の感想はこちら。 patorash.hatenablog.com 会社のブログのレポートはこちら。 tech.rhizome-e.com なお、この回の会社のブログのレポートの担当が私だったので、書きたいことはそちらにほぼ書いちゃってる…。 7章 画面とドメインオブ…

「現場で役立つシステム設計の原則」読書会 vol.6

第6回の感想です。前回はこちら。 patorash.hatenablog.com 会社のブログのレポートはこちら。 tech.rhizome-e.com 6章 データベースの設計とドメインオブジェクト データベースには事実を記録する。事実にはNULLなどない。基本的にNOT NULL制約を付けなけれ…

「現場で役立つシステム設計の原則」読書会 vol.5

第5回の感想です。前回はこちら。 patorash.hatenablog.com 会社のブログのレポートはこちら。 tech.rhizome-e.com 5章 アプリケーション機能を組み立てる アプリケーション層がサービスクラスとモデルになるのかな?(Rails脳) 複数のモデルにまたがるよう…

「現場で役立つシステム設計の原則」読書会 vol.4

第4回の感想です。前回はこちら。 patorash.hatenablog.com 記事の投稿日付は連続になってますが、読書会自体は週に1度の開催です。 会社のテックブログのレポートはこちら。 tech.rhizome-e.com 4章 ドメインモデルの考え方で設計する 要件定義のタイミング…

「現場で役立つシステム設計の原則」読書会 vol.3

第3回の感想です。前回はこちら。 patorash.hatenablog.com 会社のブログのレポートはこちら。 tech.rhizome-e.com 3章 業務ロジックをわかりやすく整理する 私が書いていた箇条書きのメモ。 データクラスと機能クラスの話。真っ先に思い浮かんだのは、Fat C…