Lingua::JA::Yomi 日本語読みモジュールをつくった

英語を手軽に日本語にしたいと思ってつくった。
今あるモジュールだと、Lingua::JA::Kanaっていうのがあってローマ字→ひらがな変換はできる。
PLAIN TEXT
PERL:

#!/usr/bin/env perl

 

use strict;

use warnings;

use Lingua::JA::Kana;

use utf8;

use Encode;

 

my $hiragana = romaji2hiragana('aerosmith');

print 'hiragana: '.Encode::encode('utf8',$hiragana)."\n";

# hiragana: あえろsみth

でもローマ字にあてはまらないのは上記のように残念な感じになるので、
Lingua::JA::Yomi ってのをつくった。
http://coderepos.org/share/browser/lang/perl/Lingua-JA-Yomi/trunk
PLAIN TEXT
PERL:

#!/usr/bin/env perl

use strict;

use warnings;

use Test::More qw/no_plan/;

use utf8;

 

use Lingua::JA::Yomi;

 

my $converter = new Lingua::JA::Yomi;

is( $converter->convert('aerosmith'), 'エアロウスミス','aerosmith');

ルー語インスパイアなので辞書は
Bilingual Emacspeak Project
のを使わせていただいております。
今、あの紫の本を読んでるので、再帰処理で少しずつ変換していくとこを実装するのがたのしかったー
PLAIN TEXT
PERL:

# pass in utf8 flagged string

sub convert {

    my ($self, $roman, $remainder) = @_;

    $remainder ||= '';

    print [...]

FlashによるP2Pセッション確立用サーバStratus

って理解でいいのかな。
Adobe MAX 2008 US での発表つづき
Stratusってなんだろって探すとある
Stratus
http://labs.adobe.com/wiki/index.php/Stratus

Flash Player 10 and Adobe AIR 1.5 introduce a new communications protocol called the Real-Time Media Flow Protocol (RTMFP). The most important features of RTMFP include low latency, end-to-end peering capability, security and scalability. These properties make RTMFP especially well suited for developing real-time collaboration applications by not only providing superior [...]

dpkg: 解析エラー であせる

dpkg: 解析エラー, ファイル `/var/lib/dpkg/available' の 21380 行目付近:
package name が見つかりません
E: Sub-process /usr/bin/dpkg returned an error code (2)

[debian-users:15343] Re: /var/lib/dpkg/available の解析エラー
sudo dselect
からupdateして救われたー

C#とアンマネージドC++のDLL間で文字列の配列をやり取りする

マネージド環境(C#)からアンマネージド環境になんか渡す時にマーシャリングというのが自動で起きて、
変数の相互型変換をしてくれるようだ。
名前がわかりにくすぎる。
C#からC++に文字列の配列を渡すとこ
C#でC++dllの関数使うよって宣言
PLAIN TEXT
C#:

[DllImport("pcp.dll")]

private static extern int call_array([MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 1)]string[] files, int length);

C#側コード
PLAIN TEXT
C#:

string[] files = new string[2];

files[0] = "日本語1";

files[1] = "日本語2";

int ret = call_array(files,2);

return ret;

C++側
PLAIN TEXT
C++:

int call_array( wchar_t** files, int length ) {

    setlocale(LC_ALL,"japanese");

    for ( int i=0; i<length; i++ ) {

        wprintf(L"%d: %s\n",i,*(files+i));

    [...]