ブルー会員ID更新のお知せ2008年11月01日 00時02分17秒

メンバエリアにアクセスするためのユーザID/パスワード(ブルー会員)を更新しました。新しいIDは、2008年11月~2009年2月末まで使用できます。 (もちろん、前回のIDも11月末までは使用できます。)

不定期にユーザID/パスワード(グレー会員)をメルマガで公開していますが、新規にメルマガに登録された方は次回ユーザID/パスワードがメルマガで公開されるまでメンバエリアにアクセスできません。

このため、救済策としてユーザID/パスワード(ブルー会員)を販売しています。(Windows限定)

ブルー会員は期間限定でメンバエリアにアクセス可能となります。

http://www.akaneiro.jp/download/

現在、グレー会員(メルマガ購読者)とブルー会員(有料ID)の違いは有効期限の違いの他、アクセス可能なエリアが異なります。

  • ブルー会員はグレー会員エリアへのアクセスも可能です。
  • グレー会員では、ブルー会員エリアへのアクセスはできません。

ActivePerl 5.8.8.824 for Windows (x86)2008年11月04日 02時49分19秒

Namazu for Windows 自体は ActivePerl のバージョンに依存しませんが、私が配布しているバイナリパッケージは ActivePerl ビルド800番台専用となっています。

同様に私が配布している MeCab PPM もActivePerl ビルド800番台専用となっています。

ActivePerl ビルド800番台というのは、Perl 5.8.X のもので最新版はビルド824です。

現在はビルド1000番台が主流となっているため、ビルド824の入手先が分からない方も多いかと思います。 ビルド824は次のページから入手が可能です。

http://www.activestate.com/store/download.aspx?prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca

右側のActivePerl 5.8.8.824 for Windows (x86) のMSI パッケージをダウンロードし、インストールしてください。

現在のところ、Namazu for Windows のバイナリパッケージ、MeCab PPM は Windows (x86) にのみ対応しています。

Nintendo DSi 発売記念 グレー会員ID公開のお知らせ2008年11月10日 21時55分35秒

Nintendo DSi 発売記念としまして、DSi ブラウザで以下の URL にアクセスされた方にグレー会員のID,パスワードを公開いたします。

http://www.akaneiro.jp/cgi-bin/dsi.cgi

DSi をお持ちの方はアクセスしてみてください。

メンバエリアにログインするには下記の URL にアクセスしてください。 グレー会員はグレー会員エリアにアクセスが可能です。

https://www.akaneiro.jp/members/

なお、このIDの有効期限は11月末日までとなっております。




MP3-Info 1.242008年11月15日 21時56分26秒

MP3-Info 1.24 が公開されましたので、Namazu 2.0.18 での簡単な動作確認(pltests)を行いました。

とりあえず 1.23 同様 my の問題を除き、動作に問題がないようです。

my 問題とは Info.pm line 1980 の

   read $fh, my $bytes, 4;

の my の使い方が悪く、Parentheses missing around "my" list at MP3/Info.pm line 1980. というメッセージが出る問題です。

perl -w オプション付きの時にでますが、環境によっては問題なく使える場合もあるようです。

   my $bytes;
   read $fh, $bytes, 4;

と書き換えることで、このメッセージを消すことができます。

SWIG を使ってみよう! [第7回] C# 編(Windows版)2008年11月21日 21時40分43秒

SWIG を使って libnmz の様々な言語用のバインディングを作成してみましょう。

今回は Windows 環境で C# から libnmz の nmz_get_version を呼び出すことを考えます。

モジュール名は前回と同じ Sample とします。 SWIG 用インターフェイスファイルを Sample.i という名前で作成します。 中身は前回と全く同じです。

%module Sample
%{
#include "namazu/libnamazu.h"
%}
char *nmz_get_version();

swig コマンドを使ってラッパ用コードを生成します。 今回は C# 用ですので引数に -csharp を指定します。

C:\> swig -csharp Sample.i

実行すると C# 用の Sample_wrap.c と Sample.cs, SamplePINVOKE.cs が生成されます。

コマンドラインでコンパイルを行うため vsvars32.bat を実行します。

C:\> "\Program Files\Microsoft Visual Studio 8\VC\bin\vsvars32.bat"

次に Sample_wrap.c をコンパイルします。

C:\> cl /LD Sample_wrap.c  /I c:\namazu\include
     /link /OUT:Sample.dll C:\namazu\lib\nmz.lib

Sample.dll が作成されました。csc を使って Sample.netmodule を作成します。

C:\> csc /t:module Sample.cs SamplePINVOKE.cs

ここではカレントディレクトリに生成したモジュールをそのまま使ってみましょう。

Sample モジュールを呼び出す C# プログラム を main.cs という名前で作成します。

using System;

namespace Namazu
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine(Sample.nmz_get_version());
        }
    }
}

このプログラムは nmz_get_version の値を表示するだけの単純なプログラムです。 コンパイルして main.exe を生成します。

C:\>csc /addmodule:Sample.netmodule main.cs

実行すると、Namazu のバージョンが表示されます。 (プログラムはローカルのHDDに置いてください。 デフォルトでは、ネットワークドライブに置いたプログラムは実行時にセキュリティに引っ掛かり例外エラーが発生します。)

C:\> main
2.0.18

非常に簡単な例ですが、SWIG を使って libnmz(nmz.dll) を C# から利用する方法をしめしました。 モジュールの生成方法は各言語ごとに異なりますが、 Perl の時に使ったものと同じインタフェースファイルから作成できることが分かったかと思います。 他の言語でも同じように利用することができますので、いろいろと工夫してみてください。

ここでは紹介しませんが、Mono C#コンパイラ を使うことで UNIX 環境でも C# のプログラムから libnmz を利用することはできると思います。応用してみてください。

[お断り]

  • SWIG Version 1.3.36 を使用しました。
  • Namazu 2.0.18 を使用しました。(libnmz2.0.18.003-win32.zip に含まれる nmz.dll を使用)
  • Microsoft Visual C++ 2005 SP1 を使用しました。
  • Microsoft .NET Framework v2.0.50727 を使用しました。
  • libnmz は GPL ライセンスです。libnmz を動的であれ、静的であれリンクして使用するプログラムは GPL ライセンスと矛盾しないライセンスである必要があります。
  • SWIG を用いて作成した Sample モジュールは libnmz をリンクしますので、GPL ラインセンスとして公開します。
  • Sample モジュールは GPL ライセンスですので、Sample モジュールを利用するプログラムは GPL ライセンスと矛盾しないライセンスでなければなりません。ご注意ください。