$shibayu36->blog;

株式会社アンドパッドでエンジニアをしています。プログラミングや読書のことなどについて書いています。

Docker・MySQL・RuboCop・RSpec・factory_botを導入したRailsプロジェクトを作る

Rails勉強し直している - DB操作編 - $shibayu36->blog; の初期セットアップ部分で言及したとおり、Rails・Docker・MySQL・RuboCop・RSpec・factory_botという構成でやってみた。その構成を初期セットアップする方法についてブログ記事に残しておく。 作った…

子供の熱性けいれんを初体験した

すごく焦ったけど良い形で対応できたので書いておく。 状況 子供が40度近い熱が出たので小児科へ。インフルエンザA型の診断を受けて薬をもらう。自転車での帰り道に違和感を感じたので後ろを振り向いたら、子供がけいれんを起こしていて泡も吹いていた。 熱…

Rails勉強し直している - DB操作編

基本に戻ろうと思い、Railsも勉強し直している。勉強し直しの時、Hatena-Textbookの課題を使うことが多いので、今回もそのようにした。 今回はデータベースの課題をRailsを使ってやってみた。 作ったもの この辺がdiff。かなり探索的に作ったのでcommitはご…

幼児期からの性教育を学ぶ - 「おうち性教育はじめます」を読んだ

性教育は幼児くらいから始めた方が良いと聞いたことがあり、「おうち性教育はじめます」という本を読んだ。 おうち性教育はじめます 一番やさしい!防犯・SEX・命の伝え方 (コミックエッセイ)作者:フクチ マミ,村瀬 幸浩KADOKAWAAmazon 性教育について家で簡…

グラフアルゴリズムの理解のためにBellman–Ford法をRubyで実装してみる

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム作者:石田保輝,宮崎修一翔泳社Amazon 優先度付きキューにも使われる二分ヒープ構造をRubyで実装してみる - $shibayu36->blog;に引き続き。アルゴリズム図鑑を眺めていて、グラフ系のアルゴリズムを全く知ら…

VSCodeで全ワークスペースで使うdebug launch設定をする

VSCodeでデバッガを起動したい時に、毎回.vscode/launch.jsonの追加をしていた。これ面倒だなと思っていたのだが、普通にsettings.jsonのlaunchというキー名で全ワークスペースで使うdebug launch configurationの設定ができた。 例えばRubyのデバッグのため…

優先度付きキューにも使われる二分ヒープ構造をRubyで実装してみる

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム作者:石田保輝,宮崎修一翔泳社Amazon アルゴリズム図鑑を眺めていて、二分ヒープ構造は優先度付きキューに使われることを知った。面白いなーと思うと同時に、そういえば二分ヒープ構造の実装をしたことがな…

Rubyでnewに渡ってきたパラメータ引数のaccessorを自動で作る

GitHub Copilotに補完されて面白いなと思ったのでメモ。たとえばLTSVのログを格納する構造を作るときに、渡ってきたパラメータ引数名を使ってアクセサを作りたいとする。以下のようなコードで実現が可能。 class Log # パラメータ引数をハッシュで受け取って…

認知行動療法についての自分なりのまとめ

最近、「マンガでやさしくわかる認知行動療法」読んだ - $shibayu36->blog;や「認知行動療法による対人援助スキルアップ・マニュアル」を読んだ - $shibayu36->blog;で紹介したとおり、認知行動療法について学んでいた。自分の中で認知行動療法のイメージが…

「認知行動療法による対人援助スキルアップ・マニュアル」を読んだ

「マンガでやさしくわかる認知行動療法」読んだの続きとして、認知行動療法について学ぶため、「認知行動療法による対人援助スキルアップ・マニュアル」を読んだ。 認知行動療法による対人援助スキルアップ・マニュアル作者:竹田 伸也遠見書房Amazon 最近認…

ローカル開発環境でMySQL5.7を使っているときにtable_open_cacheを少なくすると、なぜLost connection to MySQL serverが起きなくなるか

最近ローカル環境でMySQL 5.7 + Railsの開発をしていると、たまにMysql2::Error: Lost connection to MySQL server at 'reading initial communication packet'というエラーが出て困っていた。これについては、mac osx におけるファイルディスクリプタの上限…

不確実な状況に耐える力を学ぶ - 「ネガティブ・ケイパビリティ」を読んだ

自分は問題解決は得意な方だと思っている。しかし逆に不確実な状況・不安な状況・課題がある状況をそのままにして耐える力をもっと付けたいなと思っている。そこで最近目にした「どうにも答えの出ない、どうにも対処しようのない事態に耐える能力」であるネ…

ミーティングが効果的になるように、自分がよく使うミーティングテンプレート

何かを進めようと思ってミーティングをとりあえず入れるというのをしてしまうことも多いが、適当にやるとミーティングが終わったが何も進んでいないとなりがちだ。そうならないように、自分用のミーティングテンプレートを作っているので、ブログに書いてみ…

「マンガでやさしくわかる認知行動療法」読んだ

思考のクセを変化させることで、ストレスを軽減させられると良いなあと思ったので読んだ。 マンガでやさしくわかる認知行動療法作者:玉井仁,星井博文,深森あき日本能率協会マネジメントセンターAmazon 以下のことを学んだ。 状況確認シートで個人の反応を、…

RubyKaigi 2022にオフライン参加しました

ANDPADに入社してRubyistになったのでRubyKaigi 2022にオフライン参加してきました。 rubykaigi.org 久しぶりのオフラインカンファレンス参加、本当に楽しかったです。最近オンラインのカンファレンスや勉強会に行っても中々いろんな人と話す機会が持てず、…

Findyさんのイベントで「今の生産性向上活動で大切にしている考え方」という発表をしました

開発生産性を高めるヒントを最前線で働くエンジニアによる取り組みから考える会 - connpassのイベントで、「今の生産性向上活動で大切にしている考え方 〜開発チームに属した改善活動から得た気づき〜」というタイトルで、開発生産性に関する発表をしてき…

Re: チームのベロシティを上げる vs. 安定させる

yigarashi.hatenablog.com これが良い話だなと思ったので感想メモ。 「安定させる」のは良い。安定しないならチームの開発フローに問題が起こっていることが多く、「なんでブレちゃうんだっけ?」という議論からチームの課題が見つかることが多い。安定させ…

コード変更で抜け漏れやミスを少なくするための習慣

自分はこれまでの仕事で、バグ修正や機能追加でPullRequestを送るときに、考慮の抜けもれやケアレスミスが非常に少ない方であると思っている。振り返ってみて、これは自分に課している習慣が大いに効いていると思っているので、メモしておく。 毎回のcommit…

GitHub ActionsでRuboCopのキャッシュを利用する

RuboCopはキャッシュファイルを作成し、2度目以降の実行を高速化するのですが、GitHub Actionsでキャッシュを利用するために工夫が必要だったのでメモしておきます。 小規模なプロジェクトの場合 小規模なプロジェクトでRuboCopの実行時間がある程度ありキャ…

More Effective Agile読んだ

More Effective Agile “ソフトウェアリーダー”になるための28の道標作者:Steve McConnell日経BPAmazon 読みました。アジャイル開発やスクラム開発をしている時に取り入れると良いプラクティスを大量に知ることができて良かった。 印象に残ったのは以下の項目…

スケールする組織を支えるチームタイプやチームインタラクションを学ぶ - チームトポロジー読んだ

チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計作者:マシュー・スケルトン,マニュエル・パイス日本能率協会マネジメントセンターAmazon 読みました。非常に良かったので、スケールする組織をどうやって作るか考えている人は一読する…

意図せず外部へのネットワークアクセスをしているテストを、WebMockを使って徐々に外部アクセスを減らす話

最近担当しているRubyのプロジェクトで、テスト実行中に外部のサービスに意図せずアクセスしている(たとえばexamle.comへGETリクエストしていたなど)ケースがあった。これはまずいなと思い、WebMockを使って徐々に外部アクセスを減らしていっているので、…

GitHub Actionsが失敗したらSlackに通知する with Slack Workflow + slack-github-action

GitHub Actionsのjobが失敗した時に簡単にSlackに通知する方法を探していたら、Slack公式のツールを使えば結構簡単にできたので共有します。Slack Workflowとslack-github-actionを組み合わせると良い。 できたもの ジョブが失敗した時だけ、以下のようにSla…

Devise gemのsign_outを引数なしで呼ぶと全セッションをクリアしてしまう

表題の問題でハマりました。Devise gemのsign_outを引数なしで呼ぶと、Devise管理かどうか関わらず全てのセッションをクリアしてしまうので気をつけましょう。 Deviseのsign_outを引数なしで呼ぶと、sign_out_all_scopesを呼ぶ https://github.com/heartcomb…

マイクロサービス化や大規模リファクタリングの手順を学ぶ - モノリスからマイクロサービスへを読んだ

本当に最高の本でした。マイクロサービス化に取り組んでなかったとしても、規模が一定以上大きいプログラムのリファクタリング手法としても勉強になるので、みんな読みましょう!少なくともマイクロサービス化をしていきたいと思っていて、この本を読んでな…

モンテッソーリ教育の研究者に学ぶ子育てがぐっとラクになる「言葉がけ」のコツが出版されました

最近妻が子育てに関する書籍を出版したので宣伝です。 モンテッソーリ教育の研究者に学ぶ 子育てがぐっとラクになる「言葉がけ」のコツ (コミックエッセイ)作者:てらいまきKADOKAWAAmazon この本は子育てで自分たち夫婦が「子供に伝わり、かつ自分たちもラク…

before_actionなどのCallbacksに登録されているものを知る方法

Railsのbefore_actionとかが何が実行されたか知る方法はあるのだろうか— 柴崎優季 (@shiba_yu36) 2021年11月12日 と悩んでいたが、方法を教えてもらえたり、便利なツールを発見したりしたのでメモ。方法は二つ。 特定アクションアクセス時に登録されているCa…

Auth0でユーザーがMFAの設定をしている時のみMFA検証フォームを出す

ユーザー設定画面にMFAの設定画面があり、それが設定されているときだけログイン後にMFAのフォームを出したいという要求はよくある。これをAuth0を使っている場合に達成したかった。しかし、Enable Multi-Factor Authenticationなどを見ても、全体に有効/無…

git grepの結果に、その行を書いたAuthorを表示する

あまり知らないコードを触るときに、周りのコードを参考にしたいことが多い。しかし、そのコードの技術スタックに詳しくない場合、どのコードは筋が良いかというのが全く分からないことがある。そういう時に、その分野に知見がある人が書いたコードを参考に…

「Scaling Teams 開発チーム 組織と人の成長戦略」を読んだ

開発組織をスケールする方法を学びたい - 「ユニコーン企業のひみつ」を読んだ - $shibayu36->blog;に引き続き、開発組織が拡大しても、一人当たりの生産性を落とさずに、かつ顧客にとって本当に必要なものを作り続けるにはどうしたら良いのかのヒントを得る…