トップ(最新) | <前

nDiki : Win32

Win32

Win32 API のこと。

スポンサード リンク

Related term

2005年4月16日 (土)

WiKicker リリースに向けてテスト追加・バグ修正 このエントリーを含むはてなブックマーク

スポンサード リンク

WiKickerWin32 対応のために、ファイル処理まわりや flock を使っているところを中心としたテスト・修正作業。

  • ファイルのパス文字列の作成は File::Spec を使うように修正
  • Windows 2000 上でこけていた flock 処理部分を修正

これでようやく Win32 で動くようになったかな。 まだ一部警告が出るけど。

しかし ThinkPad X31 (2672-PHJPentium M 1.60GHz [Banias]) の上での QEMU + Windows 2000 は、やっぱり遅すぎて動作検証には使いづらい。WiKicker で1ページの処理に10秒以上かかったりするし。 結局 VNC を使って、別のPCで作業を行った。

◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。


[ 4月16日全て ]

2005年4月18日 (月)

Win32WiKicker が落ちるのは binmode の設定忘れのせい このエントリーを含むはてなブックマーク

Windows 上で WiKicker を使っていると、編集後にページの表示ができなくなる問題があるので詳しく調査。 確認してみると Storable (が呼んだ perl58.dll 内)で落ちてしまっている。

freeze してファイルに書き込んだ内容を後で読み出して thaw すると落ちるようだ。 Linux で OK で Windows で駄目。

…… binmode。

書き込み時には binmode しているのだが、読み込み時に binmode し忘れていた。 これだ。


[ 4月18日全て ]

2005年5月6日 (金)

Punycodeファイル名用エンコーディングには向かない このエントリーを含むはてなブックマーク

WiKickerWin32ファイル名エンコーディングとして使えないかなと考えていた、 Punycode を試してみる。 実装としては IDNA::Punycode Perl モジュールを使用。

  • 空白は空白のまま
  • / は / のまま
  • アルファベットは大文字小文字を維持したまま

という点で PageNameファイル名にエンコードするのには向いていないことがわかった。 「エンコード後の文字列が短い」「コードが小さい」等の特長があるらしいので、期待していたのでちょっと残念。


[ 5月6日全て ]

2005年5月7日 (土)

WiKicker 0.25 リリース - Win32 対応は動作未確認 このエントリーを含むはてなブックマーク

Win32 対応コードを追加した WiKicker 0.25 をリリース。 ただし Win32 でのテストが不完全なので動作環境としてはうたわない。

機能的には Flickr 上の画像をインライン表示する機能が追加されている。 DiKicker で使いたくて導入した機能が、WiKicker に反映されたという流れで。


[ 5月7日全て ]

2005年5月11日 (水)

WiKicker 0.26 と ActivePerl 5.8.6.811 (Win32) このエントリーを含むはてなブックマーク

0.26 での依存モジュールの再確認。 ActivePerl 5.8.6.811では、追加で

が必要。 それから RCS。動作確認は Apache で。

ロックまわりがうまく動いているかちょっと不安なのでテストが必要だが、一人でメモ用に使う分には問題なく使えるようになったかな。


[ 5月11日全て ]

2006年12月15日 (金)

Perl テストスクリプトの中で標準エラー出力を一時的に止める このエントリーを含むはてなブックマーク

make test で実行するテストスクリプトの中で、標準エラー出力を止めたい場合がある (わざとエラーを起こす時など)。

Perl v5.8.8 の ExtUtils/MM_Unix.pm を参考に

  {
    local *STDERR_COPY;
    my $duped = 0;
    $duped = 1 if open(STDERR_COPY, '>&STDERR');
    open(STDERR, '> ' . File::Spec->devnull()) if $duped;
    my $result = `$command`;
    my $status = $?;
    open(STDERR, '>&STDERR_COPY') if $duped;
  }
  warn "This message is printed to STDERR\n";

としてみた。 LinuxWin32 ではとりあえずうまくいって動いている。


[ Perl テストスクリプトの書き方 ]


[ 12月15日全て ]

2007年2月9日 (金)

XAMPPWiKicker を動かしてみた。PPM インストール OK。 このエントリーを含むはてなブックマーク

Perl で書いた Web アプリケーションのポータブルな Win32 デモ環境として XAMPP を使ってみるとどんな感じになるか試してみた。

使ったバージョンは以下。

(http://www.apachefriends.org/jp/xampp-windows.html)

@ C: ドライブで試す

それぞれ 自己解凍型 7-ZIP アーカイブをとってくる。 最初に XAMPP を展開し、次にその xampp ディレクトリの中で Perl アドオンを展開。 xampp ディレクトリを c: の直下に移動する。

次にコマンドプロンプトを開き c:\xampp\perl\bin へ移動後 ppm コマンドを起動して作成済みの PPM パッケージインストールする。 インストール先は \xampp\perl 以下とドライブ無しのパスで指定されているようで、問題なく必要な Perl ライブラリをインストールできた。

次に \xampp\xampp-control.exe を実行して GUI 管理ツールを立ち上げ、その画面から Apache を起動。 普通の Win32Apacheインストールしてある PC だったため、xampp-control から Apache を起動したらそちらが立ち上がってしまったが、これは Svc にチェックが入っていたからだった。Svc を外せば \xampp 以下の Apache がきちんと起動する。

あとは \xampp\htdocs 以下で WiKicker CGI プログラムの配置や設定ファイルを作成すれば OK。 もともと WiKicker は相対パスだけで動くようになっている*1ので、問題なく実行することができた。

*1多分

@ 他のドライブに移す

一度セットアップできた \xampp ディレクトリを TrueCrypt 仮想ドライブにコピーして起動してみた。

こちらも問題なく OK。

ということで XAMPP でお手軽に Perl CGI プログラムの動く Web サーバ環境を作れることを確認できた。

問題があるとすれば XAMPP + Perl アドオンが馬鹿でかいところか。400MB オーバー。 今回何が一番時間がかかったかって、XAMPP + Perl アドオンを展開した直後の xampp ディレクトリを、後でまた使えるように 7-ZIP の最高圧縮する処理に時間がかかった。 使っている PC では 50分以上かかったよ。


[ 2月9日全て ]

2007年10月18日 (木)

今日のさえずり - 最近 CM で「しりあがり寿」の名を見る。うちでは画伯扱い(ほぼ日手帳の影響)。 このエントリーを含むはてなブックマーク

  • 10:17 プロジェクトのスケジュール共有用に Google カレンダー上に、1つカレンダーを新規作成。 *Tw*
  • 10:50 GNU Make (Win32) では変数を設定しても、そのままではコマンド実行時の環境変数には入らないことを思い出した。 *Tw*
  • 11:57 最近 CM で「しりあがり寿」の名を見る。うちでは画伯扱い(ほぼ日手帳の影響)。 *Tw*
  • 12:32 着もと化した。 *Tw*

[ 10月18日全て ]

2007年11月22日 (木)

今日のさえずり - ふぁぼったーのフィードを Google リーダーに登録 このエントリーを含むはてなブックマーク


[ 11月22日全て ]

2009年2月23日 (月)

PARDLL ファイルをロードできなかったら大文字小文字を疑え このエントリーを含むはてなブックマーク

PDL を使っている Perl プログラムを、昨日構築した今ごろの環境で PAR を使って実行可能ファイル化したんだけれども、実行してみたら

 Can't locate loadable object for module PDL::Core in @INC ...

というエラー。 実行時のキャッシュディレクトリを見ると core.dll が同梱されていない模様。 なんでだー。

いろいろやってみたところ、もしやと思ってインストール済みの core.dll を Core.dll という名前に変えたらエラーが出なくなった(正確には次のモジュールで同様のエラーが出た)。

ファイル名の大文字・小文字が問題だったらしい。 PARFAQ には「Win32::Perms の Perms.DLL でこのエラーが出たら、Perms.dll にしてね」と書かれている。 最初これ拡張子の問題だけだと思っていた。 ベース名でも同様のようだ。

以前は問題なかったから、比較的新しい PAR で発生するようになったと思われる。 これ絶対はまる。


[ 2月23日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.294705s / load averages: 0.19, 0.26, 0.21
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)