akira yamada

akira yamada

プログラミングやOSS、雑多なこと

2025

select_rails_log.gemをリリース

Railsのログからさまざまな条件による抽出と整形や集計を行うselect_rails_logというツールをgemにしてリリースしました。

2024

MatchDataを渡してくれるscanが欲しかった話

"string".scan(/regexp/) {}は引数の正規表現にマッチした文字列または文字列の配列をブロック引数に渡しますが、MatchDataを渡してくれるscanがあると便利ではないかと考え、試しにRegexp#scanとして実装してみました。

MiniMagickでゼロから画像を作る方法(更新)

何もないところからMiniMagickで画像を作成する方法。以前に書いたメモの更新。

2022

ruby/debugとエディタ

Visual Studio CodeやNeovimからruby/debugを使用する。

RubyのLSP実装の簡易比較

RubyのLSP実装のSolargraph、Sorbet、ruby-lsp、typeprof、steepのごく簡単に比較する。

macOSのInputMethodKitについてさらっと調べた

InputMethodKitについて調べたメモ。おおむね検索しただけ。

2021

fluent.confのユニットテスト

fluent.confのユニットテストを書いた話。

こんにちはマイコン(M5StickC Plus)

M5StickC Plusでマイコンを始めました。Arduino IDEのインストール、M5StickC Plus向けのボード設定、ライブラリの追加を行うまでは問題なかったのですが、サンプルスケッチを動かそうとしてもesptool.pyを実行できないというエラー。それをなんとか解消してスケッチを書き込めたもののLチカはできず、画面も黒いまま。そんなトラブルの記録です。

macOS版LTspiceで限界を調べる初心者の試行錯誤

電子回路が壊れるような致命等な問題をmacOS版LTspiceのシミュレーションにより見付ける手順について調べてみた際の記録です。電子回路に詳しくなく、しかもLTspiceを使うのが初めてなので、おそらくこうではないかという推測が多分に入っています。

M1 MacBook Air

M1 MacBook Airを購入したのでセットアップしたところ、想像していたよりも何事もなく完了しました。

2020

コマンド実行可能かどうかを調べる方法の比較

ある名前が指定されたときにそれを実行できるかどうかを調べる方法について、zsh、bash、dash、fish、tcshで比較してみた。

小さなコマンドをtest-unitでテストする

RubyやRailsのプロジェクトでシェルスクプトやRubyスクリプトで小さなコマンドを作ることがある。 そういったコマンドのテストをするためのヘルパーモジュールを考えてみた。

GitHub Actionsのステップのフロー制御

GitHub Actionsのステップ間のフロー制御をどのように行えるか試してみた。

rrのstub/mockと特異クラスのmethod_missing

Rubyのテストでstubやmockが使えるようになるrrについて、不思議な感じの挙動に出会ったので動作を追跡してみた。

VIMのaleでのrubocopを軽快に

VIMのaleからrubocopをrubocop-daemonやspringを経由して動かすための設定にチャレンジした。

2019

ファイルから一行ずつ読み込む方法のベンチマーク

ファイルから一行ずつ読み込んで何か処理をするというときの、読み方について簡単な比較を行った。また、その結果をもとにもう少し現実的な例としてRailsのログを読み込んで日時やPIDに分割する処理を作り、それらの比較を行った。

既存プロジェクトでRuboCopを始めるヒント

長期間にわたって複数の人の手で開発が続いているプロジェクトにRuboCopを導入しようとしたとき、コードの書き方にいろいろなスタイルがあって困ることがある。そこでどのスタイルを選択すると、導入直後のストレスが小さくなるかを計るスクリプトを作成した。

homebrewのformulaをカスタマイズする

homebrewのimagemagick formulaからビルドオプションが廃止されたらしいので、brew editでカスタマイズしてimagemagickをインストールした。

macOSからQNAPをNFSマウントする

macOS(10.14)からQNAPをNFSマウントするために試行錯誤が必要だったのでメモ。

2018

rbenvなrubyから別のrubyを実行する

.ruby-versionを持っているあるプロジェクトの中で起動したRubyの中から、.ruby-versionの内容が異なる別のプロジェクトに入ってRubyスクリプトを実行するケースについて調べた。

delayed_job runでジョブが実行されない?

delayed_job startならばジョブ実行されるのに、delayed_job runとするとジョブ実行されないという問題が発生した。何がどうなってそんなことになるのか調べてみた。

正規表現の名前付きキャプチャの名前が重複したときの動作

正規表現の名前付きキャプチャの名前が重複したときの動作を確認した。

pp sql

SQLテキストを整形して表示する、というのをカラー化してみた。

springを自動終了させる

spring経由でrailsコマンドを実行すると、ログをつかみっぱなしになるので、ヒマになったら終了させるという設定を考えてみた。お試し中。

NAS購入

NASを購入した。

UPS更新

UPSを買い替えた。

謎のPG::UndefinedTableエラー

bin/rake testは問題なく実行できるのに、bundle exec testを実行すると「ActiveRecordStatementInvalid: PGUndefinedTable: ERROR: relation “…” does not exist」というエラーになる。いったいなぜ。

Railsのログファイルを検索する

Railsのログファイルからいろいろな条件を指定して抽出するスクリプトを書いてみた。

2017

MiniMagickで画像を作る方法とデバッグプリント

何もないところからMiniMagickで画像を作成する方法と、詳細なデバッグプリントを得る方法。

riでシンタックスハイライトする

Rubyのriコマンドで参照できるリファレンス中のサンプルコードをシンタックスハイライトして表示できるようにしてみた。

rb-readlineと^Y

rb-readlineを使っているとCtrl-Yでirbやpryがサスペンドしてしまう問題について調べた。 macOSなどで起きるがLinuxでは起きない現象で、端末制御のdsuspへの対処がrb-readline.gemとreadlineライブラリとで異なっているのが要因であることが分かった。そこからrb-readlineを使わない以外の対策について考えてみた。

systemdとinitスクリプト
RMagickでconvolve
Homebrew環境でRMagickをインストールする
can't activate foo-2.0 already activated foo-1.0
Opal、Vue.js、Sinatra
RubyとMiddlemanを更新した
Ruby 2.2.2のopensslでbuildエラー
Debian Stretchした
HTTPSのホスト名をごにょごにょする
B判サイズ
parcellite
byebugのガイドをおおざっぱになぞってみる(5)
byebugのガイドをおおざっぱになぞってみる(4)
byebugのガイドをおおざっぱになぞってみる(3)
byebugのガイドをおおざっぱになぞってみる(2)
byebugのガイドをおおざっぱになぞってみる(1)
trace_code
Railsのrake testで複数ファイル指定
Rakeとdry run
RakeとCWD
Middlemanを更新したらcurrent_pathがどうとかっていうエラーが起きました

2016

tumblr_clientを試す
therubyracerがインストールできない
nokogiriが(また)インストールできない
OneTabのデータを取り出す
config_forを思い出せなかったんだ
Rubyのgsubとブロックと$1
middleman 4の外部パイプラインを必要そうなときだけ動かす
gitignoreするmiddleman
middleman 4で一部だけ出力する
Middleman 4にする
Railsなwebメール
~/.spring.rb
validatesの引数に名付け
ruby-termios 1.0.2
Index name is too long
string contains null byte
仮名(など)に対するUnicodeプロパティによるマッチ
Unicode空白文字にマッチ
RubyでNFKCやってみた
DebianにMagick-configがないという話
rescue_fromと

2015

ここ一年ばかりのRuby/Railsプロジェクトで使ったり使わなかったりしたgemとか
rb-readlineをあれするびみょうなほうほう
form_forにARでないオブジェクトを渡すときのパス
なつかしいrjis
記号を探す
Rubyのテスティングフレームワークを再考
Debian backportsでパッケージ検索
XMLの比較
今になってRails 2.3をインストールする話
rbenvで同じバージョンの複数Rubyを使いわける
Kanagawa.rb#01雑感
遠い世界の数式
git-sh-setupが見付からない

2014

JekyllからMiddlemanへ
引数をなんでも受け入れる
ri ruby:
groongaコマンドをPryの上で
brew installでコケたので回避してみた話
UPSを新調した
jekyllでhaml
Railsのerbの文法チェックなど
Rubyの文法チェックをRubyコードの中で
Settingslogicから「Missing setting "to_ary"」
dovecot-antispamが動いてなかった

2013

Jekyllで記事を書き始めるためのRakeタスク
Rubyのエンコーディングとファイル名
Rubyのエンコーディングとコマンドライン引数
prependとmoduleとalias_method_chain
agをwheezyで使う
Welcome to Jekyll!
sunspot:reindexのeager loading
evalやめる
Sunspotのfulltext対象のフィールドを探す
必要なときだけ電源オン
wheezyへ
Debianパッケージの棚下ろし
時計の覚え書き
Rubyプログラマにお得な一冊でした「詳解Rails 4」「Ruby 2.0最速入門」(WEB+DB PRESS Vol.73)
ruby-termios 1.0.0
古典再読「XP再入門 ~アジャイルなグループの10年から学ぶ~」(WEB+DB PRESS Vol.72)

2012

iMac Fan Control付属のツールを使ってiMac内部の温度を読み取る
Debian stable(squeeze)→testing(wheezy)にした
等幅フォントの比較
OS X Mountain Lion上でRVMを使ってRuby 1.9.3をbuildする
Octopress/JekyllでGroongaによる類似文書検索機能を使う
Yokohama Hack Cafe (目論見)
大統一Debian勉強会に行きます(予定)
Origamiを使ってPDF中の画像を調整する
Octopress/Jekyllの実行時間をもう少しなんとかする
Octopress/Jekyllの実行時間をなんとかする
TypoからOctopressに移行した

2011

まだあった1.9.3-p0化にともなうトラブル
Web系の開発を独学する人に: RailsによるアジャイルWebアプリケーション開発 第4版
Ruby 1.9.3-p0化にともなうトラブル
ArelでLIKEとかいうRails
ssh、socks、proxy.pac、spidermonkey、johnson
今なら36%オフな「徳丸本」PDF版を買った
ビューのテストをしていてjpmobile 1.0.4ではまった話
RSpec 2.4/2.6でヘルパーのテストをしていてはまった話
長年Railsをやってきた人にこそ「Rails3レシピブック」
勉強会の行きやすさとか
rvmでrabbitを動かすまで
気になるタイトル; 最後のRuby会議
config.ruに設定を埋める
SSHログインで「shell-init: error retrieving current directory」となるのを調べたら意外に時間がかかったという話
文字コードとFileUtils#remove_entry_secure、およびその他
Rubyでunzip(+文字コード変換)
末尾「.」アドレスとActionMailer
一周まわってprocmail+bsfilterに戻ってきた日
RSpecと名前付きルートの相性?
PassengerMaxRequestsがない
リニューアル
さくらのVPS
dovecot antispamプラグインを更新したらdovecotが起動しなくなった
今後のDebianでのRuby

2010

milter-managerでmilter管理
Capistranoでのエラー処理(ロールバック処理)
Ruby 1.9.2とRubyGems 1.3.7とGem.pathの消失
Ruby会議2010を見てた
dovecotのantispamプラグインで迷惑メールフィルタの学習をコントロールする
HDDがまたとんだ
プログラミングGIMP
HDDがとんだのでケースを買った
Capistranoで指定したユーザ権限によりファイルを作成する
5/26、プログラミングRuby 1.9
Content-Encoding: deflateなHTTPレスポンスを作る
明日はじめるCapistrano
Railsで本当にやった○○な話

2009

iptablesのstringモジュールでバイト列にマッチさせる
RailsによるアジャイルWebアプリケーション開発 第3版
C-0.06の15分間パッケージング
Passengerで本当にあった○○な話
PSCS
とちぎRuby会議02でしゃべった
Capistranoで上位タスクと同じホストを強引に処理対象とする
ハードウェアトラブルでPC新調
ruby1.9*-full不要! Ruby 1.9.1をDebianにインストールする
入門git
Ruby会議2009三日目
Ruby会議2009二日目
Ruby会議2009一日目
新しいGPG鍵
Debian Ruby 1.9会議を終えて
分割パッケージをまるごとインストール
Capistranoと仮想端末と標準入出力の関係
入門書の次に読むRailsデプロイ
Capistrano、sudoとrunと:env
最近のsudoと環境変数
adjtimexによる時計の調整
今読み書きしているプロセスを探す
zshのMULTIOS
とちぎRuby会議01に行ってきた
「プログラミング言語Ruby」を読まなくてもよいのは誰か
Ruby 1.9.1〜を構成する三つのバージョン

2008

Capistranoでダウンロード
Capistranoのタスク名に応じて動作を変える
gonzuiをrackupしてみた
Ruby/GD2でGIFアニメ
Rails 2.0.2とRuby 1.8.7のString#chars
Passenger (mod_rails) 1.0.1でプールがいっぱいのときの動作
Passenger (mod_rails) 1.0.1を動かしてみて
Passenger (mod_rails) 1.0.1の動作
本の発売日をGoogleカレンダーで見られるようにする
Capistranoで(一括)apt-getする
socat
Apache 2.2のmod_headers
mod_substitute(Apache 2.2)

2007

雑誌メモ: Software Design 2007/12号
雑誌メモ: WEB+DB PRESS 41号
RailsによるアジャイルWebアプリケーション開発 第2版
Agile Web Development with Rails 2nd EditionとRailsレシピ
VMware上のLinuxにシリアルコンソールで接続する
マシンの中身総とっかえ

2006

現場で使えるMySQL
プログラミングRuby第二版
Ruby on Rails入門—優しいRailsの育て方
RailsによるアジャイルWebアプリケーション開発
/etc/apt/sources.list.d
雑誌拾い読みメモ: 日経ソフトウェア 2006.03号
PCの中身とっかえ
雑誌メモ: Software Design 2006.02号

2005

雑誌メモ: オープンソースマガジン2006.01号
雑誌メモ: オープンソースマガジン2005.12号
雑誌メモ: Software Design 2005.12号
雑誌メモ: UNIX USER 2005.11
雑誌メモ: Software Design 2005.10号
雑誌メモ: UNIX USER 2005.10号
雑誌メモ: Software Desing 2005.09号
雑誌メモ: UNIX USER 2005.09号
dRubyによる分散・Webプログラミング
雑誌メモ: Software Design 2005.08号
雑誌メモ: UNIX USER 2005.08号
Ruby on Railsのドキュメントを読んだ
dRuby連鎖

2003

IRCでのユーザ情報の接頭辞(?)—その後
IRCでのユーザ情報の接頭辞(?)
今日買った本
注目の本
Bug#183271: request to create debian-ruby@lists.debian.org
ITP: ruby1.8
Ruby関係のヒット作