2008.01.21

「SoulDrops ファイル置き場」を作ろうと…

EDEN's Shiftの後継ゲーム(?)のSoulDropsが始まりました。こちらにも当然登録し、キャラも出来上がりました
でまぁゲームに関するお話は小部屋のベランダに譲るとして、EDEN's Shift ファイル置き場のようにSoulDrops ファイル置き場も作ろうか、と色々やっているのですが。

続きを読む "「SoulDrops ファイル置き場」を作ろうと…"

| | コメント (0) | トラックバック (0)

2007.09.06

CPAN@ActivePerl+VC2005Express Editionでモジュールをインストールする際のメモ

Unicode::Japaneseを新しいPCにインストールする際にあほみたいにはまったのでメモ。参考にしたのはT.MURACHI氏のVisual C++ 2003/2005 で perl モジュールを nmake できるようにするためのパッチ: 国民宿舎はらぺこ 大浴場という記事と、id:prinori氏のyz garage ::: Blog ::: - 2006-03-03 昨日の続き。という記事です。

要点をまとめると、

  1. T.MURACHI氏の記事を参考に、ExtUtils::MM_Win32にパッチを当てて、XSモジュールをコンパイルする際にはマニフェストを埋め込むようにする
  2. 「mspdb80.dllが見つかりません」対策のために、id:prinori氏の記事を参考に環境変数を追加する(ただしこれはやらなくてもいいかも)

ということです。

なお同じくPOEを入れる際にmake testが通らずに(force install POEすれば何とかなったけど)なんでだろー、と嵌ったんですが、これはYAMLモジュールが入ってないのが原因でした。

| | コメント (0) | トラックバック (0)

2007.06.27

Nucleus+NP_TrackBackでトラックバックが送れなかった

サーバーを新しい物に移行してはや1ヶ月強。メモリは3倍になるわCPUはPen3-Sデュアルになるわ(電気代がえらいことになったので1個は外しましたが)で性能は文句なしなのですが、1つ不満点が。
といってもハード的なものでも、Apacheなどのサーバーソフトの問題でもなく、Arvinedの小部屋 ベランダで使っているNucleusの問題です。

新しいサーバーに移行する際に手動でデータを移した関係でコメントとトラックバックが全部消えまして、まぁそれは仕方ないなと諦めていたんですが、なぜかトラックバックが送受信できなくなってしまいました。

続きを読む "Nucleus+NP_TrackBackでトラックバックが送れなかった"

| | コメント (2) | トラックバック (0)

2007.05.22

nDmを計算するPerlスクリプト

最近、DICEWARSというゲームに嵌っています。ルールはこのあたりを見ていただくとして、こんな感じでオリジナルのゲームを作れないかなぁと考えてみたりしてる過程で、「nDmの結果分布テーブルを出すスクリプトとか無いかなぁ」と思ってざっくり検索したんですが見つからず。
ならば自分で作ろう多分CPANにいけばありそうな気はするけど敢えて! という事で作ってみました。

続きを読む "nDmを計算するPerlスクリプト"

| | コメント (0) | トラックバック (0)

2007.05.09

Fizz-Buzz問題

どうしてプログラマに・・・プログラムが書けないのか?

を読んで、とりあえず私も書いてみました。書きあがるまで5分強。

for(1..100)
{
if($_%3==0&&$_%5==0)
{
print "FizzBuzz\n";
}
elsif($_%3==0)
{
print "Fizz\n";
}
elsif($_%5==0)
{
print "Buzz\n";
}
else
{
print "$_\n";
}
}

で書いた後にはてなブックマークの解答例を見るとなんとも私の書き方は冗長で…orz

| | コメント (0) | トラックバック (0)

2007.04.24

文字列の折り返し@Perlにこれ一本! Lingua::JA::Fold

実に前回から1年半近く経ってしまったPerlの適当モジュール解説シリーズ。今回はLingua::JA::Foldでいっちょネタをこしらえてみます。

タイトル通り文字列の折り返しに使えるこのモジュール。しかも禁則処理までやってくれるという優れもの。CPANのモジュールページはこちら

続きを読む "文字列の折り返し@Perlにこれ一本! Lingua::JA::Fold"

| | コメント (0) | トラックバック (0)

2007.01.24

PerlでWindowsのイベントログに書き込む 続き

というわけで前のエントリーの続きです。

続きを読む "PerlでWindowsのイベントログに書き込む 続き"

| | コメント (0) | トラックバック (0)

2007.01.21

PerlでWindowsのイベントログに書き込む

毎日いろんな処理のためにPerlで書いたスクリプトを走らせているわけですが(データをバックアップしたり、ログを取ってきたり)、何か問題があったときはきちんと報告するような仕組みを作りたい、という事で色々試行錯誤していたわけですが
「てーか、Windowsならイベントログに書き込めばいいじゃん」
という事に気付きまして、Win32::EventLogを使ってイベントログに書き込むことにしました。

が、これが予想以上に曲者でして…(汗

続きを読む "PerlでWindowsのイベントログに書き込む"

| | コメント (0) | トラックバック (0)

2006.10.20

ちょいと進んだ(っぽい)スクレイピングのために

naoyaさんのエントリー「HTML::TreeBuilder + CSSセレクタがいい感じな件」を読んで「ほー、HTML::Parser使うよりスマートにスクレイピングできそうじゃのぅ」などと漠然と思ってたのですが、一念発起して実際に使ってみる事にしました。

続きを読む "ちょいと進んだ(っぽい)スクレイピングのために"

| | コメント (0) | トラックバック (0)

2006.09.28

Yahoo! Japan Geocoder APIは中々すごそう

using API;のエントリーより。ほー…と最初は特に注目してなかったんですが、これやりようによっては色々使えるかもしれません。

続きを読む "Yahoo! Japan Geocoder APIは中々すごそう"

| | コメント (0) | トラックバック (0)

2006.05.09

メモ

Eclipseでなんだかよく分からんが馬鹿みたいに重い! という時はここを参考にIBM製JREを使ってみる。

いや、EPIC導入してNGIBのスクリプト読んでみたら恐ろしく重くなったもんで…w

| | コメント (0) | トラックバック (0)

2006.04.13

半角カナ混じりのJISをSJISに変換するの巻

放置していたIRC用BOT「NGIB」用に色々探した時のメモ。NGIBの製作はそれでも着ちゃ…まぁまぁ進んでますw

続きを読む "半角カナ混じりのJISをSJISに変換するの巻"

| | コメント (0) | トラックバック (0)

2006.03.23

久々にドツボにはまった('A`)

まぁあれですよ、Perlでテキストデータ扱う時は改行コードは統一しとけ、って話ですよ…。
まさかCRとCRLFが混じったせいで3時間悩むとは。

| | コメント (0) | トラックバック (0)

2005.12.03

というわけで早速作ってみた

名づけて「コマンドラインからお手軽検索 tinysearch」 サンプルスクリプトをパクって参考に書いてみたわけですが、出来上がってからモジュールを作ってる人を発見するという…。

続きを読む "というわけで早速作ってみた"

| | コメント (0) | トラックバック (0)

Yahoo!デベロッパーネットワークが始まりましたねぇ

Yahoo!デベロッパーネットワーク
Google APIでは日本語周りで躓いた口なので躊躇してたのですが、Web検索とかを見る限り結構簡単にいけそうですね…。いっちょ使ってみますか。

| | コメント (0) | トラックバック (0)

2005.11.28

フラグ地獄

断じてエロゲではありません。

続きを読む "フラグ地獄"

| | コメント (0) | トラックバック (0)

2005.11.03

Time::Formatを使ってみる

Perlの適当モジュール解説シリーズ、久々の第2弾はPerlで日時を加工する時にはきっと役に立つTime::Formatモジュールです。

続きを読む "Time::Formatを使ってみる"

| | コメント (0) | トラックバック (1)

2005.06.13

Getopt::Stdの真面目な解説

前の記事の解説はいかにも投げやりだったなぁ、ということで、自分用リファレンスも兼ねて、改めて解説を。まずは1文字オプションの為のモジュール、Getopt::Stdから。

続きを読む "Getopt::Stdの真面目な解説"

| | コメント (0) | トラックバック (0)

2005.01.18

諸般の事情により

どうやら私もJavaに手をつけざるを得なくなりました(何

しかしまぁ。C/C++にPerlにFORTRANにBASICにPHPと何でも手をつけた人が、JAVAは未着手というのも考えてみれば不思議ではありましたな…。

| | コメント (0) | トラックバック (0)

2005.01.16

SNMP+PHPで自宅鯖の監視

パケット定額を利用して自宅鯖でゴニョゴニョやってしまおうという計画の第1段。

続きを読む "SNMP+PHPで自宅鯖の監視"

| | コメント (0) | トラックバック (0)

2004.11.22

RSFUとりあえず完成

というか、ここで作るぞーって言ったものが出来上がるのって、実は初めて?

続きを読む "RSFUとりあえず完成"

| | コメント (0) | トラックバック (0)

2004.11.08

ROSEを始めたのはいいのだが

いや、MoEはどうしたとかそういう点はあるけど(何

続きを読む "ROSEを始めたのはいいのだが"

| | コメント (0) | トラックバック (0)

2004.11.03

CSRFちぅのがあるそうで

元ネタは水無月ばけら氏のえび日記

続きを読む "CSRFちぅのがあるそうで"

| | コメント (0) | トラックバック (0)

2004.09.12

PHPでサムネイル作成

某氏に依頼されたスクリプト用の習作ですね。

続きを読む "PHPでサムネイル作成"

| | コメント (0) | トラックバック (0)

2004.09.07

ここのところNGIB関連の記事が無いのは

Routesに今更ながらにはまっているからだとは口が裂けても…(ォ いや、久々のHit。新作じゃないけどもさ。

というわけで今回は資料のメモ。
http://www.alt-r.com/lib/rfc.html
IRC関連のRFCの内、2000年にリリースされた新しいほうの4つのドキュメントの日本語訳。
技術的IRCドキュメント
あまり日本語での解説を見かけないIRCdに関する解説など。

| | コメント (0) | トラックバック (0)

2004.09.01

「NGIB」作成日記 その1

今日は少し進展あり。ちなみにテスト時はTonIrcdを使っています。Windowsで簡単に動くIRCdってこれしかないんですもの…

続きを読む "「NGIB」作成日記 その1"

| | コメント (0) | トラックバック (0)

2004.08.31

オリジナルIRCBot「NGIB」作成開始

元々はNet::IRC使うつもりだったんだけどさ、使い方がわかんないのでフルスクラッチに変更(ォ

続きを読む "オリジナルIRCBot「NGIB」作成開始"

| | コメント (0) | トラックバック (0)

2004.06.08

Getopt-Stdをつかってみる

ActivePerl 5.6.1には標準で入っているGetopt-Stdモジュール。これをつかってみます。


use Getopt::Std;

getopt('P');

print $opt_P;

で、コマンドラインからperl test.pl -P hogeと打つと

hoge

と表示されます。もうちょい詳しい説明はこことかを見てください(ォ

追記:
思ったよりGetopt::Stdの検索結果からここへ飛んできてしまう、というパターンが多いみたいなので(汗)、後で書いた真面目な解説へのリンクもおいておきます。

| | コメント (0) | トラックバック (0)

2004.06.02

HTML-LinkExtorモジュールを使ってみる

本来はDate-Japanese-Eraを先にどうにかせねば、と思ったのですが、造らねばならなくなったスクリプト用の忘備録もかねて。

まずインストールは例によってCPANから。この前VC6を入れたのでmakeもばっちりです。まmakeしなくてもいけそうな気が相変わらずするわけですが…。
HTML-LinkExtorはHTML-Parserのサブクラスなので、これをgetするためにはHTML-Parserをインストールします。ここからアーカイブを取ってきて適当なディレクトリに解凍します。コマンドプロンプトでそのディレクトリに移ったら

perl makefile.pl
nmake
nmake install

としてやればOK。VCなんて持ってないYO! ってひとはBorland C++ Compiler 5.5付属のmakeでもいいはずなので、そちらをどうぞ。この場合nmakeじゃなくmakeですね。

ではモジュールの説明。
HTML-LinkExtorモジュールつぅのはHTMLのリンクを取り出すためのHTMLパーサです。まぁすべこべ言わずサンプルコードをどうぞ。

use strict;
use HTML::LinkExtor;

sub cb {
my($tag, %links) = @_;
my @test=%links;
print "$tag @test \n";
}

my $p = HTML::LinkExtor->new(\&cb);
$p->parse_file("./test.htm");

まずHTML::LinkExtor->new();でオブジェクトを作成します。引数はリンクが見つかった時に呼ばれるサブルーチンへのリファレンス(サブルーチン名に\&をつければOK)です。さらに第2引数には相対リンクを絶対化する際のベースのURIを入れることができますが、これをやるためにはURIモジュールがいるとかいらないとか。とりあえず今回は使いません。
$p->parse_file($file);で解析するHTMLファイルを指定します。また$p->parse($string);でHTML文字列を直接解析する事も可能です。ここらへんはHTML-Parserのドキュメントを読んでもらうほうが速そうです。

で、このサブルーチンは何をしているのかと言うと、発見されたリンクに関する情報の入った無名配列(長ったらしいな…)をごにょごにょ整形して表示しています。たとえばこのページをローカルに保存してこれで解析すると、

a href http://www.gnu.org/software/wget/wget.html
a href ftp://sunsite.dk/projects/wget/windows/
a href ftp://sunsite.dk/projects/wget/windows/wget20031217b.zip
a href ftp://sunsite.dk/projects/wget/windows/ssllibs097c.zip
a href http://weather.is.kochi-u.ac.jp/archive.html#wget_usage
a href http://weather.is.kochi-u.ac.jp/RRD/


とこのように表示されます。あとはこれをもとに煮るなり焼くなり…。

2004/06/06 00:30追記:
コンストラクタを作成ってなんだよ俺…と言うわけで一部訂正。

| | コメント (0) | トラックバック (0)

2004.05.27

VisualC++ 6.0をインストール中に固まる

('A`)ヴァー 症状は以下のとおり。


  1. Autorunを切っているので、1枚目のCDのsetup.exeを手動で起動

  2. 普通にインストールを開始

  3. 「すでにインストールされているコンポーネントを検索しています」で固まる

  4. ('A`)ヴァー


とりあえずここを見て.NET Frameworkが原因か…? と思ってアンインストールしてみるが…さてどうなるか。

07:46追記
と思ったらかなり長い時間放置しておくといつのまにか次の段階に進んでた…。どうもVC++のインストール時には固まっても放置推奨らしい。そいや前にもこんな事あったような…(汗

| | コメント (0) | トラックバック (0)

2004.05.25

Date-Japanese-Eraモジュールを使ってみる その1

その1というのはインスコだけで躓きそうなわけで…(汗
まずお約束でperl -vの内容は

This is perl, v5.8.3 built for MSWin32-x86-multi-thread
(with 8 registered patches, see perl -V for more detail)

以下略。
とりあえずppmで入れようとしたのですが、5.8向けにはパッケージが用意されてないらしく、Searchで探しても出てこない。仕方がないのでCPANから落としてきましたが…さてどうやって入れたものか。通常は
perl MakeFile.PL
make
make install
とするらしいのですが、makeが入ってない(開発環境何にも入れてないしね)のでこれは不可。VC6持ってるけど今は使わないしね…。

続きを読む "Date-Japanese-Eraモジュールを使ってみる その1"

| | コメント (0) | トラックバック (0)

2004.05.10

各種ファイルフォーマットの解説

ZIPファイルフォーマットの解説を探しているうちに、こんなサイトを発見。
The Programmer's File Format Collection
zipやjpgなんかのメジャーどころから、かなりマイナーなものまで乗っている様子。ま英語なのはしゃーないな。

| | コメント (0) | トラックバック (0)

2004.04.26

Project RedBerry その1

とりあえず仕事の合間につらつらと仕様とか考えてみる。
1.ファイルはredberry.php(掲示板本体)、rbwrite.php(書き込み用)の2つからなる。また別に削除用スクリプトも用意。
2.ログは普通のテキストファイル。1レス1行で収める。フィールド区切りは「<>」で、通し番号、タイトル、名前、メールアドレス、ホームページアドレス、本文、書き込み時のパスワードのmd5値という順番で格納される。各フィールドは原則的に空でもOK(通し番号除く)
3.ログファイルは新しいレスが下になるようにする。またこれにより読み出しの負担が大きくなることが予測されるので、最新のレスについてはHTMLファイルを生成する(表示するレス数は任意)。
とりあえずこんな感じで。

| | コメント (0) | トラックバック (0)

2004.04.22

"Project RedBerry"開始(予定)

と大々的にタイトルをつけてみましたが、要は掲示板を作ろう、という計画です。
目標としては


  • 言語はPHP

  • 形式はゲストブック型

  • CSSによりデザインを柔軟に行える


実は某Orkam氏に依頼されていた掲示板作成計画も兼ねていたり…。既存のものの改造は何だかんだでめんどくさかったというオチですな。

| | コメント (0) | トラックバック (0)

2004.03.21

そろそろC/C++復帰しないとヤバげ?

順調に行くと4月からはプロのプログラマーになるかもしれないので、そろそろメインのC/C++に復帰しないとやばいかも。一応それが売りで入ることになったわけだし。

| | コメント (1) | トラックバック (0)

2004.03.20

?以外で引数を渡す

たとえば2ch形式の掲示板では

http://game3.2ch.net/test/read.cgi/mmominor/1079523323/

というふうにcgiファイル名に続ける形で掲示板名とスレッドNoを渡し、表示させている。これを実現するにはpath_info変数を見ればよい。

即席で作ったサンプルはこちら
http://cru-jp.mine.nu/php/path.php としてアクセスしたときと
http://cru-jp.mine.nu/php/path.php/hogehoge/1.htm としてアクセスしたときの違いがお分かりいただけるだろうか?

ちなみに、ネタ元はここ。これってcgi系ではFAQな質問なんだろうなやっぱ…

| | コメント (0) | トラックバック (0)

2004.03.15

rename_for_tw.pl

某O氏の依頼で作ったrename_for_tw.plですが、今日はそれを作る上での苦労話などを。

手順としては


  1. まずファイルのリストを読みこむ

  2. ファイルのリストの配列でforeachをぶん回す

  3. ファイル名の文字列を置換

  4. 置換後のファイル名で置換前のファイル名のファイルをリネームする

  5. 3-4の繰り返し


という感じです。
一番苦労したのは文字を置換する部分。たとえばTWCI_2004_3_15_0_8_32.jpgの1桁の部分を2桁にして(0を補って)TWCI_2004_03_15_00_08_32.jpgという風にするわけで、ぱっと思いついたのはs/_[0-9]/_0[0-9]/gというもの。ただしこれだと置換結果に[0-9]てのが出てしまうわけで。
ならばということでs/(_)([0-9])/\10\2/gとしてみたものの、"_15"の"_1"にもマッチしてしまう上に\10が1つの変数と見なされてしまってアウト。
ではs/(_)([0-9]_)/\10\2/gとするとどうかとやってみましたが、これも\10が1つの変数と見なされる点では変わらず。そこでs/(_)([0-9]_)/\1Z\2/gとすると、\1Zは1つの変数と見なされないようで美味い具合に_3_が_Z3_に変換されるので、その上でs/Z/0/g;としてやれば完了。
…と思いきや_0_にマッチした跡はg修飾詞をつけても_8_にはマッチしない(1つ目のアンダースコアにマッチしているので対象から外れる)ので、Zを挿入する置換を2回やった上でZを0に変換する方向で解決。

…つーか30k相応の仕事だと思いました('A`)

| | コメント (0) | トラックバック (0)

2004.03.04

TWのSSファイルをリネームするPerlスクリプト

秒単位までファイル名につけてくれるのはありがたいがせめてゼロサプライしてくれ…というわけで、各部分の数字が1けたの場合は頭に0をつけるスクリプトを作りました。


#
# rename_for_tw.pl 2004/03/04
# TWのスクリーンショットのファイルは、日付などの数字が1桁と2桁混在という状態になっています。
# これを2桁に統一するスクリプトです。
#
#
# 使い方
# 1.使いたいファイルの置いてあるディレクトリにこのスクリプトをコピー。
# 2.コマンドプロンプトを開き、そのディレクトリに移動
# 3.「perl -w rename_for_tw.pl」とうてばあら不思議。(-wはなくてもいい)
use Strict;
my @jpglist=glob("*.jpg");
foreach (@jpglist)
{
my $before=$_;
s/(_)([0-9]_)/$1Z$2/g;#「0」って文字がどうしても入れられない(;´Д`) というわけでマッチ1回目。
s/(_)([0-9]_)/$1Z$2/g;#マッチ2回目。2回すれば秒部分以外は全てマッチできる
s/(_)([0-9]\.)/$1Z$2/g;#秒部分をマッチさせるための最後のパターン
s/Z/0/g;#そして一気に変換
my $after=$_;
rename $before,$after;
}

ActivePerl 5.6.1にて動作を確認。当然ながらこのスクリプトを実行した事による一切の損害については責任をもてませんのであしからず。
追記:
スクリプトをそのままコピペしたらものすげぇ事になったので、ここに圧縮しておいて置きます。

| | コメント (0) | トラックバック (0)