ファイルから一行ずつ読み込む方法のベンチマーク
Rubyでファイルから一行ずつ読み込んで何か処理をするときにはIO#each_lineやIO#getsをよく使う。そこでふと「一行ずつ読み込むのを他のメソッドでやったらどうなるか」が気になったので簡単なコードで試してみた。使用したベンチマークはこれで、読み込むファイルのサイズは約220MB、Rubyのバージョンは2.6.5という条件で以下の結果となった。 user system total real...
View ArticleVIMのaleでのrubocopを軽快に
rubocop軽快化のためのツール前提素のrubocopの起動時間を確認しておく。$ time rubocop -v 0.80.1 rubocop -v 0.56s user 0.20s system 95% cpu 0.794 total...
View Articlerrのstub/mockと特異クラスのmethod_missing
Rubyのテストでstubやmockが使えるようになるrrについて、不思議な感じの挙動に出会ったので動作を追跡してみた。まずは基準となる環境を整えることにする。READMEによれば2.0.0-p195でテストを通せということなのでそのようにする。$ rbenv install 2.0.0-p195 [...] make: *** [build-ext] Error 2...
View ArticleGitHub Actionsのステップのフロー制御
GitHub Actionsのステップ間のフロー制御をどのように行えるか確認してみた。name:Flow controlon:push:branches:[master]pull_request:branches:[master]jobs:build:name:Buildruns-on:ubuntu-lateststeps:-name:step0 successrun:|echo...
View Article小さなコマンドをtest-unitでテストする
Railsアプリケーションを開発していると、ちょっとした確認用だとか、ちょっとした管理作業だとかのために小さなコマンドを作ることがある。この手の「小さなコマンド」は、その内部から他の複数のコマンドを呼び出していて、実際の仕事はそれらのツール類にやらせているということが少なくない。純粋にRubyで書いた場合にはいつも通りにテストを書けばよいのだが、こういったケースではテストを書くのが意外とめんどうだっ...
View Articleコマンド実行可能かどうかを調べる方法の比較
ある名前が指定されたときにそれを実行できるかどうかを調べる方法について、以下のシェルで比較してみた。zsh 5.7.1bash 3.2.57dash 0.5.10.2fish 3.1.2tcsh 6.21.00テストスクリプト前提としてmakeコマンドがPATHにあることとする。# which.shalias a_make=make f_make(){ make;} try(){echo echo...
View ArticlemacOS版LTspiceで限界を調べる初心者の試行錯誤
電子回路が壊れるような致命等な問題を、実際に動かさずに見付けられないか。そう思って調べてみたところLTspiceでシミュレーションできることが分かった。LTspiceはアナログ・デバイセズ社で開発された電子回路シミュレータであり、カリフォルニア大学バークレー校で開発されたSPICE(Simulation Program with Integrated Circuit...
View Articleこんにちはマイコン(M5StickC Plus)
先日M5StickC Plusを購入した。マイコンを始める。M5Stack系列の製品の一つであるM5StickC PlusはArduino IDEでもプログラミングできるということなので、まずはそれを使うことにする。Arduino IDEのインストールはhomebrewで、M5StickC Plus用の設定はマニュアル通りに行った。brew install arduinoQuick Start -...
View Articleタブレッド用アーム二種とトラックボール
少し前にイスの高さを少し変えた。そうしてしばらくたってiPadを使うときに少しばかりかがみ込むようにしているのに気付いた。イスの調整とは言ってもほんの数cmのこと。おそらく前からそうしていたのだろうと思う。それまで使っていたタブレッド用のスタンドは高さのない単に立てかけておけるだけのものだったので、高さを変えられるアームを購入することにした。最初はデスクに固定できるタイプのものを見ていたのだが、お手...
View Articlefluent.confのユニットテスト
ちょうど昨年の今頃からfluent.confのユニットテストをする仕組みを作り始めたのを思い出したのでgithubでさらしてみた。https://github.com/arika/fluent-conf-testきっかけはRailsアプリケーションのデバッグログをgrafanaに食わせて見られるようにする何かが欲しかったことで、最初は適当なスクリプトを作って終わりのつもりだったのだがfluentdを...
View Article2021年のまんが
今年読んだなかで完結したまんが。博多女子は鬼神のごとく気が強か!?おりたたぶだんちがい夜と海勇者の孫と魔王の娘空電の姫君姫のためなら死ねるヲタクに恋は難しい恋と呼ぶには気持ち悪いホリミヤ部長と2LDK近所のななこさんカノジョと秘密と恋もよう社長、恋人のフリをして私の父に会ってください。割り切った関係ですから。あくヨメできそこないの姫君たち今年(単行本で)読み始めたまんが。コンビニで君との5分間。焼い...
View Article耳をふさがないイヤホンの比較
耳をふさがないイヤホンを使用した感想。使用したイヤホン三つ購入した際にポイントにしたのは下の点。めがねに干渉しないこと長時間使用したときの耳穴への負担が小さいこと自宅以外での使用はあまり考えていないので音漏れの度合いについては参考程度。以下に三つの製品についての書いいるが、まとめるとLinkBudsがなかなか良好だった。SBH82Damazonrakuten耳にひっかけてぶらさげる形。耳への負担はか...
View ArticlemacOSのInputMethodKitについてさらっと調べた
公式情報InputMethodKitNumberInput_IMKit_SampleAppleのサンプルをベースにしたリポジトリhttps://github.com/pkamb/NumberInput_IMKit_Samplehttps://github.com/ensan-hcl/macOS_IMKitSample_2021日本語での情報InputMethodKit超入門 - Cocoa勉強会...
View Article細い横線をImageMagickで検出する……のに失敗した
ドキュメントスキャナの画像に垂直な細い線が入ることがある。センサー部分にゴミや汚れが付着するためで、複数のページに渡って線が入り続ける。スキャン後の確認の際に、疑いのある線を目立たせることができる確認が簡単になる。そこでImageMagickを使って画像処理する方法を考えてみた。なお、ここでは細い横線を検出対象とする。元画像処理結果ここまではできたところで実際の画像を処理してみたところ、まったく使い...
View ArticleRubyのLSP実装の簡易比較
RubyのLSP実装の機能の簡易の比較をしてみた。対象は以下。solargraph 0.47.2sorbet 0.5.9204ruby-lsp 0.3.6typeprof 0.21.3steep 1.3.0現時点ではSorbetはRuby 2.7までしかサポートしていなくて、typeprofのLSPはRuby 3しかサポートしていない。そのためtypeprof以外をRuby...
View Articleruby/debugとエディタ
ユニットテストで問題を再現させてデバッグするといった使い方が多いので、サンプルコードをtest-unitを使ったものを用意した。# Gemfilesource'https://rubygems.org'gem'debug'gem'test-unit'# アプリケーションclassFoodeffoo:fooendend#...
View Articleselect_rails_log.gemをリリース
Railsのデフォルトのテキスト形式のログファイルから、いろいろな条件でリクエストログを抽出するselect_rails_logという自作ツールがあります。最初は抽出して軽く整形して出力するだけだったのシンプルなスクリプトだったのですが生ログ出力だとかJSON出力だとかを少しずつ機能追加しながら、なんだかんだと使い続けいるものです。三か月くらいまえにふとYouPlotに渡せるような出力を追加すると面...
View Article