Ruby」タグアーカイブ

BkBsfilWrapper

Becky! でスパムフィルタを実現するためのプラグイン。
公開されてからかなり経過してるのと、フィルタのコアとなる bsfilter を最新(とはいえ、こちらもかなり前)のものを使おうとするとインストールの際に Ruby もインストールする必要があるなど、若干クセがあるので、備忘録がてら記事にした次第。

同じ bsfilter ライブラリを利用したプラグインとして、bkbsfilter なるものも以前あったようだが、こちらはサイトが閉鎖された模様。
おそらく現在で bsfilter を利用した Becky! プラグインの唯一なものではないかと。

インストール手順などは上記プラグイン配布元の解説があるので、そちらを参照の事。

上記サイトとは別に bsfilter、さらに bsfilter の最新版を利用する場合は Ruby もインストールする必要あり。

上記サイトから最新版をダウンロードすればよいかと。

Ruby のインストール手順については、別途ググってインストール。
ただしインストールの際は、Ruby 2系を使用すること、最新バージョンの Ruby 3系は不可。

Ruby 2系を使うこと、Ruby 3系だと正しく動作しない

bsfilter 自体が 2系時代(しかも初期)に作成されたもの。
そして Ruby は2系 ⇒ 3系になった際にサポートされなくなった機能(仕様? 文法?)があるようで、それらが影響しているのかはわからないが、bsfilter スクリプトが途中でエラー終了してしまう。

これらは Becky! に bkbsfilter プラグイン導入後して動作させると、受信時の動作が明らかにスローダウンするうえ、フィルターに一切引っかからないなど挙動が起こすので容易に分かる。
もしこの挙動が確認されたら、Ruby のバージョンを疑うこと。

ちなみに Ruby 3系と2系を同一マシンにインストールしても問題なさそう。
BkBsfilWrapper 上で使用する Ruby は、プラグインの設定内でプログラムパスを直接指定する設定する。そのため環境変数 Path の影響を受けないように実装されている。

もし開発環境としてRuby 3系を利用している場合は、別ディレクトリに Ruby 2系をインストールすれば同居可能。
(同居については、この記事の主体ではないので省略。2系⇔3系の切替方法や Path の変更方法など色々調べたうえで、自己責任で。)

Ruby 2系のバージョン

執筆時点での Ruby 2系のバージョンは最新版の 2.7.5 を利用しているが、今のところ動作に問題はなさそう。

Eclipse よ、今までありがとう

およそ10年弱の今まで、Windows の IDE として使ってきたけれども、そろそろお別れの時がきたよ。

今思えば、キミとの付き合いは紆余曲折の連続だった。

私がサラリーマンの頃、まず出社してやることは、パソコンの起動、そして次に Eclipse。そう、キミの起動だ。
会社から支給されたパソコンはとても非力で、キミの起動には数分の時間を要したのをよく覚えているよ。そのお陰で、起動操作ののち、僕はトイレやコンビニに行って、朝の優雅な時間を過ごすことができた。

でもそんな怠惰な生活に嫌気がさして、NetBeans に一度浮気したこともあったね。
その Netbeans も、一時オラクル社に浮気したお陰で(?)、バージョンアップがパッタリ止まったりしたことがあって、そんな浮気騒動も一度きり、僕は目が醒めて戻ってきてしまったけど、君は文句も言わず、相変わらずの怠惰な起動で優しく出迎えてくれた。
そんな出来事も含めて、いい想い出だ。

でも僕は、新たな旅に出たいと思う。そう、いよいよ戻らない、新たな旅に。

今までありがとう、Eclipse。
きっと君のことは忘れないよ。(多分?)

…というわけで、Visual Studio Code(VSCode)に鞍替えです。
だって起動が速いし、Extentions も沢山そろってるし、PHP の各種フレームワークバリエーションにも対応してるみたいだし。
それに C/C++、Java、Python、Perl、Ruby など、仕事柄、多言語を使用する立場として、各言語対応なのは、とても有り難い。

UI も Windows ライクなのも良い。
Visual Studio ライクな感じで、本家の血筋なのも良い。

要するにミーハーなだけなんですが。
でも使い勝手が良ければ、それを利用するに越したことはないかと。

Windows 版の Ruby で XSLT を動かす

Ruby 上で XSLT を使うには、ruby-xslt というのを使うらしいのだが、Windows 版ではそのままでは動かないらしい。
ということでネットで調べてた事をまとめてみた。

実はこの調べるのが一番難儀でした。
直球でズバリ解説しているサイトはなかったので、とにかく回りくどいというか、リンク切れというか。英語というか。

  • Compiling ruby-xslt on Windows(Aquifer)(閉鎖)

色々と書いてあるが、本文最下行にある「~ Aquifer SourceForge site.」という文中にあるリンクから以下の場所へ移動。

ここから「ruby-xslt-(バージョン番号)-win.zip」というファイルを落とす。

あとは解凍して、本文にある通り、コピー。

  • xslt_lib.so
    →(Ruby のインストール先)\lib\ruby\site_ruby\1.8\i386-msvcrt\xml
  • xslt.rb
    →(Ruby のインストール先)\lib\ruby\site_ruby\1.8\xml

なお xml フォルダがない場合、フォルダを新規作成したうえでコピー。

でもこのままだと、DLL が足らないと言われ、エラーで落っこちる。
というわけで、今度は足らない DLL を追加する必要がある。

ここから以下の3ファイルを落とす。

  • libxslt-(バージョン番号).win32.zip
  • libxml2-(バージョン番号).win32.zip
  • iconv-(バージョン番号).win32.zip

ちなみに Windows の場合、ruby-xslt は以下の参照関係がある模様。

xslt.rb → xslt_lib.so → libexslt.dll → libxml2.dll → iconv.dll

(使わない機能がある場合、おそらく DLL も一部不要かもしれん。)

そんなわけで、必要な DLL をすべてインストール。
ちなみにインストールとは言え、実際には「適当に解凍して、Windows システムフォルダ配下の system32 フォルダ内に DLL を手動コピーする」のこと。

これで、動く…らしい。