やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

2023-08-01から1ヶ月間の記事一覧

Jupyter NotebookでRubyを実行する

少し前のRubyWeeklyの中に、非常に面白そうな記事が記載されていました。 nithinbekal.com Jupiter Notebook上でRubyのコードが実行する方法が紹介されていました。 計算領域で強いJuliaが、Jupyter Notebookで実行可能というのは前々から把握していたのです…

スプラトゥーンにおける自責と他責

最近はスプラトゥーン3にハマっていて毎日、1時間ぐらいコンスタントにプレイしています。 一人でやることも多いのですが、同居人と一緒にプレイすることもあります。過去作と比べるとラグがひどかったり...と賛否両論あるようですが、個人的にはとても楽し…

【書評】ソフトウェアアーキテクチャの基礎はアーキテクト最初の一冊にピッタリ

先日、オライリーより出版されている「ソフトウェアアーキテクチャの基礎」を読了しました。 ページ数はそこそこの書籍でしたが、少しずつ少しずつ...読み進めて約1ヶ月で読了することができました。 ソフトウェアアーキテクチャの基礎 ―エンジニアリングに…

bulletのログファイルをパースするgemをリリースしました

ActiveRecord上のN+1問題を検知するbulletというgemがあります。 bulletを仕込んでおく事でbullet.logファイルに該当箇所でN+1問題が発生している旨のログが出力されるようになります。どんな対応をすれば良いかまで提案してくれる...非常に賢いですね。 202…

ピュアなRubyだけで複数のLoggerに出力する

RubyにはLoggerクラスが組み込みライブラリとして提供されていて、ログをいい感じに出力することができます。 しかし、複数のロガーに対してログを出力することはLoggerクラスだけでは出来ません。RailsであればActiveSupport::Logger.broadcastが使えるそう…

Rubyにおける並行処理と使い分けについて

Rubyで並行処理をしたい場合、いくつか選択肢が考えられます。 自分がパッっと思いつくものを列挙しただけでも、これだけの選択肢が出てきました。 Thread Process Fiber Async Ractor Concurrent Ruby 単一サーバーにおける並行処理では基本的にはスレッド…

書籍「君たちはどう生きるか」は子供に読んでほしい本だった

先日、スタジオジブリ最新作の「君たちはどう生きるか」を見てきました。 映画の感想については賛否両論あるようですが、僕の感想としてはポニョやハウルのようなストーリー面での楽しさはないものの、さまざまな謎や問いが劇中でされており「君はどう思う?…

コントローラーの単体テストをファットにしないRspecテストの書き方

Rails製のアプリケーションのコントローラーの単体テストを見ていると内部で使用しているクラスやモジュールの観点・パターンまでを網羅したファットな単体テストが書かれているものを見かけます。しかしながらコントローラーの単体テストはあくまでコントロ…

【ええな〜コード】irbから定義された関数のソースコードを表示する

irbの実行環境から定義されている関数のソースコードが見たいなぁ...と思いMethodクラスのドキュメントを眺めていたのですが、そのようなメソッドは提供されていませんでした。代わりではありませんがsource_locationたる関数が定義されているファイル名と定…

Rubyにおけるカリー化(Method.curry)と関数合成(<<)

RubyのMethodクラスの公式ドキュメントを読んでいた所、面白いメソッドを発見しました。 なんとメソッドをカリー化してProcにした値を返してくれるcurryというメソッドがありました。 Rubyではカリー化が簡単には出来ないと思っていたのですが、こんなメソッ…