cpan authorになりました

mashあいてたー
CPAN Recent Changesに自分の名前のるのうれしいなー
意外に簡単でびびる。PAUSEも2日くらいで来たなぁ。
最初からshipitのお世話になりました。いい。
最初のモジュールは
http://search.cpan.org/~mash/Lingua-JA-Yomi-0.01/lib/Lingua/JA/Yomi.pm
http://svn.coderepos.org/share/lang/perl/Lingua-JA-Yomi/trunk/
ちょいちょいつくったものをupしてみますよ。
誰かが便利になるといいですなぁ。
よろしくお願いいたしますm(._.)m

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 [...]

[perl]TheSchwartzのWorkerにIDをつける

こういうときはどうやってやるのがいいのかなぁ
・なんか限れられた数のリソース(例えば、DISPLAYとか?、)があって、リソースにはTheSchwartzのWorkerを1対1対応させて、Workerを動かしたい
・Jobをinsertする方はどのWorkerに仕事させるか意識したくない
Jobをinsertする方はこんな
feeder.pl
PLAIN TEXT
PERL:

#!/usr/bin/env perl

use strict;

use warnings;

use FindBin;

use File::Spec;

use YAML::Syck;

use TheSchwartz;

 

my $conf = LoadFile( File::Spec->catfile($FindBin::Bin, '..', 'myapp.yml') );

my $pool = TheSchwartz->new( %{ $conf->{TheSchwartz}{args} } );

$pool->insert('MyApp::SleepWorker');

1;

0~9秒間の間でランダムな秒数寝るだけのWorkerを起動させるpl。
こいつを複数プロセス動かして、それぞれは自分に割り当てられてるリソースを知っている、っていう状態をつくりたい。
workの引数になんか入れてもだめっぽいので、、
worker.pl
PLAIN TEXT
PERL:

#!/usr/bin/env perl

use strict;

use warnings;

 

use FindBin;

use File::Spec;

use lib File::Spec->catfile( $FindBin::Bin, '..', 'lib' );

use YAML::Syck;

use TheSchwartz;

use MyApp::SleepWorker;

 

my $conf = LoadFile( File::Spec->catfile($FindBin::Bin, '..', 'myapp.yml') );

my $worker = TheSchwartz->new( %{ $conf->{TheSchwartz}{args} } );

$worker->can_do('MyApp::SleepWorker');

$worker->work;

 

1;

環境変数なのかなぁ
PLAIN TEXT
PERL:

package [...]

[git]gitに入門してみた

svn使ってます
myappの下には、trunk, tags, branches がある状態
PLAIN TEXT
CODE:

git svn init -s https://path/to/myapp/ myapp

cd myapp

git svn fetch

これに時間かかる
PLAIN TEXT
CODE:

git checkout trunk

これがちょっぱやでびびるなぁ
編集した後、
PLAIN TEXT
CODE:

git add file1 file2 file3

git commit -m"[edited file1,2,3]"

ローカルへのコミットは気軽にしていいみたい
perlのcatalystアプリで、myapp_local.yml とかもろもろローカルで変更しているのがあるので、
そいつらがある状態で
svnにコミットしようとすると、
PLAIN TEXT
CODE:

Cannot dcommit with a dirty index.  Commit your changes first, or stash them with `git stash'.

って怒られる
PLAIN TEXT
CODE:

git stash

ってやるとmyapp_local.ymlとかdirtyなファイル達がどっかに退避されるみたい
そこで
PLAIN TEXT
CODE:

git svn dcommit

するとsvnにコミットできる
PLAIN TEXT
CODE:

git stash apply [...]

hilight2skype irssiのhilightをSkypeへ通知

みんなircで呼ばれた時、どうやって気づいてるんだろう?
mash:
って呼ばれてもputtyは3つのディスプレイの1つに表示されてるだけなので気づけないです。
http://im.kayac.com/
をtypesterが使ってるの見てて、やっぱデスクトップでぴこーんってされるのはいいな、と思ってたんだけど
GoogleTalk使ってないしなぁ、Skype版つくるべ、ってことでつくりました。
Skype4IRCってのもありますが、
こちらは、Skypeに届いたチャットメッセージをircに転送するもの。
hilight2skypeとは逆ですね。
■動かし方
skype for linuxインストール
skype4py(skypeAPIのpythonラッパー)インストール
以下をチェックアウト
http://coderepos.org/share/browser/lang/perl/irssi/scripts/hilight2skype.pl
http://coderepos.org/share/browser/lang/perl/irssi/scripts/hilight2skype/send_chat_message.py
$HOME/.irssi/scripts/autorun に入れる
hilight2skype.pl のskype名を自分のに修正
linuxでskypeを立ち上げるんですが、skypeを立ち上げるのにDISPLAY環境変数が必要なので、
PLAIN TEXT
CODE:

Xvnc -query localhost -geometry 1024x768 -depth 16 -fp /usr/share/fonts/X11/100dpi/,/usr/share/fonts/X11/misc securitytypes=none

vncサーバ立ち上げる
一度つないでシェルから
PLAIN TEXT
CODE:

echo $DISPLAY

ってすると、
うちは
127.0.0.1:0.0
になってたので、
vncクライアントは落として、コンソールから
PLAIN TEXT
CODE:

export DISPLAY=127.0.0.1:0.0

./skype-2.0.0.6/skype

ってやるとskype立ち上がる
準備OK
irssi起動すると hilight2skype ってscriptを自動でロードしてくれる
hilight指定されてるメッセージが流れてくると、
skypeがぴこーん!
PLAIN TEXT
CODE:

[irssi #チャンネル名] <送ってきた人> ircのメッセージ

って感じのメッセージがSkypeに届きます。
初めてちょっとだけpython書いたー
vncサーバとDISPLAY環境変数付きでSkype起動できればいいので、
daemontoolsで監視できそう。
なんかサービスつくる?

snmp/mrtgでプロセスの開いているファイルディスクリプタ数を監視

してみる
PLAIN TEXT
PERL:

#!/usr/bin/perl

 

use strict;

use warnings;

use Unix::Lsof;

use Unix::PID;

 

my $pid = Unix::PID->new();

my $red5_pid = $pid->get_pidof('search for a process by this string');

unless ( $red5_pid ) {

  print '0';

  exit;

}

 

my ( $output, $error ) = lsof( '-p', $red5_pid, '-w' );

my @vals = values %{$output};

print scalar @{ $vals[0]{files} };

snmpd.conf に
PLAIN TEXT
CODE:

exec fd_mon   /path/to/fd_mon.pl

mrtg.cfg に
PLAIN TEXT
CODE:

Target[fd]: .1.3.6.1.4.1.2021.8.1.101.1&.1.3.6.1.4.1.2021.8.1.101.1:public@localhost

MaxBytes[fd]: 2000

YLegend[fd]: File Descriptors

ShortLegend[fd]:

LegendI[fd]: [...]

dbicadminの使い方memo

DBIx::Class::ResultSetのdelete_allを使って消してくれるから使うべし
memo
dbicadmin --op=delete --schema=MyClass::Schema --class=MyClass::Schema::TableName --connect='["dbi:mysql:dbname","username","password",{"on_connect_do":["SET NAMES utf8"]}]' --where='{"me.id":"338"}'
何行消すかconfirmしてくれる
そのまんまだと依存モジュールが代わっちゃったのか、--op=selectの時にみれないから
/usr/local/bin/dbicadmin
の99行目とかをコメントアウトして自分でダンプしてみる
use YAML;
print Dump(\@fields)."|n";

factio Blog Parts Generator beta

factio Blog Parts Generator beta
factio ブログ パーツ ジェネレーター ベータ
つくりました。
↓こういうものがお手軽につくれるツールです。

 
taptap Tシャツ
by slightlyblue
タップTシャツ。
価格: 2,625円(税125円)
購入ページ | サイズ
AD by slightlyblue

factioの商品ページの縮小版をBlogに貼り付けるためのツールです
黒点線の内側(点線を含まない)までが本ブログパーツのhtmlコードで表現されています
htmlコードをコピーし、ブログのサイドバー等にはりつけてください
htmlコードは自由に編集して使っていただいてokです
"AD by slightlyblue"は残しておいていただけるとうれしいです
写真や商品説明文の転載許可はデザイナーさんから得てくださいね
factio officialが登場するまでのbetaです

工夫としては、
マウスオーバー時の画像拡大(縮小表示→等倍表示)を行わせるjavascriptも生成してブログパーツに含めていること、かな。
実装としては、
factioサイトをGETして、HTML::TokeParserで解析して(Lolipopインストール済だったから....)、JSONでブラウザに返して、Lyase_viewテンプレート[javascriptテンプレートエンジンまとめ][inforno::埋め込みjavascriptを実装してみました。]でレンダリングしてます。
factioデザイナーの方、ファンの方、どうぞお使いください。
ちなみにslightlyblueデザインのTシャツは、このブログパーツでスタイルを変更しなかった場合に限り転載可とします。

lolipopのインストール済みperlモジュール

lolipopのレンタルサーバを借りてから、perlでごにょごにょ始めてます。
そんな時に便利だったのが、
サーバーアナライザー
お使いのサーバの仕様って分かってますか?意外と、サービス事業者のページは技術的に細かいことまでは掲載されていないことが多いですよね。サーバアナライザーは、サーバの仕様を自動的に調査し、ブラウザー上に表示します。どんな Perl モジュールが使えるのか、このコマンドのパスは?等などの疑問が解消できるでしょう。
lolipop検討中の方へ、調査結果から一部参照してお届け。

« go back