$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

2022-01-01から1年間の記事一覧

優先度付きキューにも使われる二分ヒープ構造を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…