nDiki : UNIX
Related term
2004年12月31日 (金)
■私的10大ニュース2004 [ comp ]

@ cool programs
- pdumpfs
- Memcached
- 簡単・高速なキャッシュシステム。使える。
- Firefox
- Subversion
- 将来的に CVS から移行する事を考えて試験的に導入。良い。Windows でも TortoiseSVN のおかげで簡単に利用できる(CVS にも TortoiseCVS が出て便利になった)。
- 影舞
- 今年前半のプロジェクトで活躍。
- PAR
- NSIS
- Template Toolkit
- Webアプリケーション開発プロジェクトで採用。www.naney.org の静的コンテンツの生成でも使い始めた。
@ Palm OS 生活復活
PEG-TJ25を購入し、Palm OS 生活復活。 最初はおもちゃのつもりで買ったのだが、プロジェクトマネジメントなどにシフトした仕事のスケジュール管理などで大活躍。
PDA 市場の明るい話はあまり聞かないが、末長く製品が出て続けて欲しい。
- Module::Build でソースパッケージング (2005-08-24)
- DAR で差分/増分バックアップ (2005-04-02)
- NSIS でインストーラを作ってみる。 (2004-08-11)
- クラッシュは突然に - DAR の使用を再検討 (2009-01-06)
- PAR (2004-07-19)
2005年3月12日 (土)
■ UNIXアカウントの方に大量にたまっていたfml管理メール

先日メールサーバのメンテをしていたら、自分のアカウントにメールが700通弱たまっているのを発見。
常用しているバーチャルドメインの naney@example.co.jp の方はもちろん定期的に fetch している。 naney 宛のメールも全て naney@example.co.jp に流れると勘違いしていた。 UNIXアカウントの方にもたまっているとは思っていなかったので見落し。マズイ。
@ 吸い出し
vpopmail のPOPサーバから吸い出そうとしたところ失敗。
maildirmake maildirmake $HOME/Maildir echo $HOME/Maildir/ > $HOME/.qmail
naney UNIX用アカウント用の maildir を作成し.qmail を書いて、mbox からこちらへ一旦流すことで吸い出せるようになった。
幸い「メーリングリストが配送するメールの中に配送できないアドレス(退職により削除されたアドレス)があるよ」というエラーメールがほどんどで、重要なものはなかった。 一安心。
@ fmlの管理メールアドレスの送り先を修正
/var/spool/ml/etc/qmail/alias 以下にある設定ファイルで、転送先が
naney
となっているのを
&naney@example.co.jp
に修正し、vpopmail 上のバーチャルアカウントの方に届くようにする。
for f in `grep -l naney .*`; do echo '&naney@example.co.jp' > $f ; done
以前 qmail+vpopmail+fmlの設定をした時にこれらのファイルを ~vpopmail/domains/example.co.jp/ にコピーしたのだが、確認したところ実はこれは不要だった。削除。
- [ Debian ] woody + qmail + vpopmail +... (2004-01-08)
- [ Debian ] qmail + vpopmail + fml でポカミス (2004-01-19)
- ブレーカー + メーリングリストアカウント中の'-' (2004-01-22)
- メインノート PC の MTA を sendmail から qmail に変更 (1999-10-28)
- Debian + qmail + fml で複数管理者の場合は user/... (2005-04-04)
2005年4月20日 (水)
■ SCons は GNU Autotools のかわりになるか

NSIS のサイトによるとビルドに「SCons」を使うようしたらしい。
と興味深いツールになっているようだ。
現在プロジェクトLaTeXベースのドキュメント生成には GNU Make を使っているのだが、UNIX、Windows の両方でビルドできるようにするには ComSpec 環境変数の有無で使用するコマンドを切り換えたり等いろいろ面倒なので、代替ツールとして使えないかなと。
基本的な機能は Make に対する改良がなされているようであるし、コピー等ファイル操作も SCons 自体がもっているのでクロスプラットフォームでビルドできるようにするのも楽そうだ。
一方 Autoconf 系の機能については、インストール済みのライブラリの検出や実装レベルのチェック等を実装しているようである。 make check や make dist、make install 等にあたるターゲットに関する機能(あるいは規約)のようなものは無い。これは非常に残念。 結局自分が Ant を使わなくなったのも GNU Autotools にあるこれらの機能に欠けているからであるし。
実は私がPerl が好きな理由の一つとして、これらサポートが充実しているという点がある。Perl では ExtUtils::MakeMaker (あるいは Module::Build)があり、ビルドからテスト、ソースパッケージのパッケージングまでフレームワークが整っている。
SCons は Python ベースで、Makefile にあたるファイルも Python スクリプトである。 SCons が影響を受けた Cons は Perl ベースであったのだが、既に2001年5月ごろから開発が止まってしまっている。残念。
ということで Make の代替には使えそうであるが、GNU Autotools と同じようなことをするにはいろいろ手をかけないといけないといった印象。
- Module::Build でソースパッケージング (2005-08-24)
- Windows 向けソフトウェア開発者はソースパッケージを作る習慣がない (2007-07-31)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- ActivePerl で Ming (2005-02-23)
- NSIS 2.22 は Linux でビルドできず (2006-12-20)
2005年4月21日 (木)
■ base64 亜種でのファイル名生成と、Windows

重要な事を忘れていた。
perl -MMIME::Base64 -e "print encode_base64('abc')"
perl -MMIME::Base64 -e "print encode_base64('abI')"
先日のピリオド問題発覚以前に、Windows には大文字小文字を区別しないという問題があるんだった……。
今回のファイル名生成規則の見直しにあわせて、今までの WiKicker のデータベースをどう簡単にコンバートするかということをずっと考えていたのだが、そういうレベルではないな。
Windows 版と UNIX 系版は、ファイル名生成規則は別物でいっか。
[ MIME::Base64 ]
- 最後がピリオド(.)で終わるファイル名をつけられない (2005-04-19)
- WiKicker 0.35 リリース - 添付機能の修正など (2006-06-20)
- WiKicker における PageName 最長文字数 (2006-06-10)
- [ WiKicker ] キャッシュまわりにバグ (2004-06-05)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
2005年8月24日 (水)
■ Module::Build でソースパッケージング

@ ExtUtils::MakeMaker
私が Perl が好きな理由の一つに、標準でExtUtils::MakeMakerという Makefile ジェネレータがついているところである。これを使って Makefile.PL を書くと
perl Makefile.PL make manifest make make test make dist
で <pacakge>-<versionno>.tar.gz というソースパッケージを作ることができ、
tar zxvf <pacakge>-<versionno>.tar.gz cd <pacakge>-<versionno> perl Makefile.PL make make test make install
という手順でインストールする事ができるようになる。 パッケージの作り方が確立されているので、容易に新しいパッケージを開発しはじめられる。
逆に Java でプログラムを書くのが億劫なのは、このあたりの準備が面倒だからである。 Ant を使っても結局ここら辺自分でやらなければならないし。
@ ちょっとしたアーカイブの作成
ちょっとしたパッケージを作りたいと思うことは良くある。 例えばいくつかのデータファイルと、READMEファイルなんかをひとまとめにしてアーカイブにするとか。
本当にちょっとしたであれば、手動でアーカイブすれば良いのだが、
- アーカイブしたいファイル群がバージョン管理下にあって、CVS ディレクトリや .svn ディレクトリがある (除外してアーカイブする必要がある)
- 同じディレクトリにある、作業用のファイルはアーカイブしたくない (除外してアーカイブする必要がある)
- アーカイブする前に、チェック用のリグレッションテスト一式を走らせたい (リグレッションテストをかけられるようにする)
- UNIX でも Windows でもアーカイブ化できるようにしたい。
あたりを考慮しなければならない時は面倒くさくなってくる。
自動化としては
- シェルスクリプト/バッチファイルを書く
- Makefile を書く
- GNU Autotools を使う
あたりがぱっと思い浮かぶ。 しかし、最初の2つは毎回同じようなものを書くのが面倒だし保守もしにくい。 GNU Autotools はちょっとごっつすぎだし、Windows での環境構築も面倒。
@ ExtUtils::MakeMaker の欠点
ということで最初は ExtUtils::MakeMaker を使うという線で考えてみた。 もともと Perl モジュール用で汎用用途にはちょっと邪魔な振舞いもあるが、使えないことはないと思う。 しかし make (GNU Make あるいは nmake など) に依存しているという欠点がある。
@ Module::Build で
ということで ExtUtils::MakeMaker の代替である Module::Build ベースで汎用用途に使えないか検討してみた。こちらは pure Perl で make を必要としない。
Module::Build も Perl モジュールビルドにあわせた振舞いがあるものの、ちょっとカスタマイズすれば使えそうだ。 で、いろいろいじった結果、次のような感じにすると使いやすそうだ。
use Module::Build;
my $class = Module::Build
->subclass(class => 'NonmoduleBuilder',
code => q{
# Don't make blib
sub ACTION_code {};
# Don't make blib
sub ACTION_docs {};
# Don't make META.yml
sub ACTION_distmeta {
# no warning on ACTION_distdir
$_[0]->{metafile} = 'MANIFEST';
};
# Don't add MEATA.yml to MANIFEST
sub ACTION_manifest {
$_[0]->{metafile} = 'MANIFEST',
$_[0]->SUPER::ACTION_manifest(@_);
};
});
# Set your archive name and version.
$class->new(dist_name => 'mypackage',
dist_version => '1.0.2',
)->create_build_script;
カスタマイズした部分は以下(Module::Build 0.26 で動作確認)。
- Perl モジュールビルドに特有の blib ディレクトリを作らないようにする。
- META.yml を生成しないようにし、アーカイブに含まれないようにする。
上記のようなファイルを Build.PL という名前で作っておけば
perl Build.PL ./Build manifest ./Build ./Build test ./Build dist
等として、アーカイブ作成が容易にできるようになる。
しばらくこの方法でいろいろ試してみることにしてみよう。
- SCons は GNU Autotools のかわりになるか (2005-04-20)
- ActivePerl で Ming (2005-02-23)
- nmake で毎回 pl2bat されるのを何とかしたい (2004-11-25)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
2006年7月18日 (火)
■ 第10回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の10回目を開催。今日は6人。
今日は「初めてのPerl 第3版」第11章「ファイルハンドルとファイルテスト」が範囲。
@ 今回の反省点
今回はパーミッションの話など Windows 環境よりも UNIX 系環境の話が多かったのだが、皆慣れてきたのか特に大きな混乱はなかった様子である。
open / close はそれこそ頻繁に使うのであるが、本書では思ったよりライトな扱いな感じ。
初めてのPerl 第3版の練習問題は、いままで問いてみて「確信犯的」に問題があいまいに書かれている。 要求仕様書だったらまずいかもしれないが、練習問題だと頭を使うので悪くない。 また他人をまじえた回答レビューでも他の読解によるプログラムを見られたりして、単純な答え合わせ以上の理解ができ面白い。
- 第12回 社内 Perl 勉強会 (2006-07-31)
- 第13回 社内 Perl 勉強会 (2006-08-07)
- 第11回 社内 Perl 勉強会 (2006-07-24)
- 第1回 社内 Perl 勉強会 (2006-04-21)
- 第3回 社内 Perl 勉強会 (2006-05-12)
2006年7月31日 (月)
■ 第12回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の12回目を開催。今日も7人でフルメンバ。
今日は「初めてのPerl 第3版」第13章「ファイルとディレクトリの取り扱い」が範囲。
ある文化では「13」という数字を極めて不吉なものと考えます。われわれ著者は、この題材を意図的に13章に配置しました。なぜなら、もしコードにバグが潜んでいたら、かなり危険なこと(例えば、問い合わせをせずにファイルを消してしまう)を行ってしまう可能性があるからです。-- 初めてのPerl 第3版 p.209
こわーい。
@ 今回の反省点
i ノードの話やハードリンク・シンボリックリンクの話など、いつにも増して UNIX 系 OS の話に関連の深い話が多い章である。 Windows 中心で使っている人にはあまり馴染みのない話であるが、知っておいて損はない話である。
欲を言えば Windows ではどうなっているかの話も載っていると嬉しかった。 NTFS なら ハードリンクを使えるよという話とか。
自分自身も Perl からハードリンク・シンボリックリンクの作成なんてしたことなかったな。 これからもそうそうしない処理だと思うけれど、いい勉強になった。
- 第5回 社内 Perl 勉強会 (2006-05-29)
- 第14回 社内 Perl 勉強会 (2006-08-25)
- 第10回 社内 Perl 勉強会 (2006-07-18)
- 第13回 社内 Perl 勉強会 (2006-08-07)
- 第4回 社内 Perl 勉強会 (2006-05-22)
2006年12月21日 (木)
■ ノート PC を持たずに会社に行きたい

今日は夕方から社外でミーティング。 Windows 環境でのデモンストレーションが必要なため、普段持ち歩いている自分の ThinkPad X31 (Linux BOX) に加えて会社の Dell のノート PC を持って出発。重い。
メールや開発環境などは一元管理したい派なので普段の通勤でノート PC を持って往復するのはまあしょうがないのだが、こういう日は家に置いてきてせめて1台にしたいところである。
オフィスで開発などのヘビーな作業をしない日は、最近構築を進めている USB メモリによるポータブル環境で済ませられるようにぜひしたい。
@ 母艦でしていることを思いつく範囲で列挙
| ノート PC (母艦) | USB メモリポータブル環境 + Windows | オフィスの Windows、Linux |
| メーラ | △ | × |
| TeX | ? | ○ |
| UNIX 系開発 | × | △ |
| パスワード管理 | × | × |
| ナレッジベース | × (メモだけしておいて母艦へ) | × |
| Skype | ○ | × |
| SSH | △ | △ |
| フレッシュリーダー | × | × |
認証がからむものをできるだけポータブル環境にまとめたいところ。 データはさすがに全部 USB メモリに入れて持ち歩けないので、どんどん Subversion リポジトリに置くようにして必要なものだけ取れるようにした方がいいかな。
- Linux 母艦ノート PC を使わずに仕事ができるかチャレンジ (2007-08-20)
- Evernote 使用開始 (2009-03-03)
- Linux で入力して Windows で参照できるパスワード管理ツール ... (2006-12-31)
- 納品前日なのに /var が壊れた! HDDからのブートで Debian ... (2005-09-27)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
2007年12月19日 (水)
■ 初めての Perl は C MAGAZINE

12月18日に Perl v5.10.0 がリリースされた。 1987年12月18日にリリースされた 1.000 (perlhist(1) より) から数えて20年目にあたるリリースである。
思い起こしてみると、自分が初めて Perl を知ったのは C MAGAZINE 1991年9月号の 特集フィルタ系言語研究,Part3 Perl入門 (前田薫氏) だったと思う。
当時は PC-88VA2 を使っていて、DOSエクステンダ版を試した記憶がある。 動いたような動かなかったような。
当時は UNIX 系システムは全く触れたことがなく、スクリプト言語もほとんど知らなかったので $ とか @ にはめまいを感じたものだ。
まさかあの Perl が今の自分にとって、第1プログラミング言語になるとは思ってもみなかった。
- SCons は GNU Autotools のかわりになるか (2005-04-20)
- Module::Build でソースパッケージング (2005-08-24)
- PAR (2004-07-19)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- Perl で lex/yacc (1999-01-20)
2009年8月25日 (火)
■ ActivePerl をやめて Strawberry Perl へ

ActivePerl 5.10.0.1005 + Visual Studio 2005 SP1 上で PAR::Packer を使って実行可能ファイル化したものの、今日別の環境で動かしたら「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした」というエラーがでてしまった。
今まで Visual Studio 6.0 で PPM パッケージの作成やら PAR::Packer による実行可能ファイル化をしていたので気がつかなかったのだが、調べてみると Visual Studio 2005 以降だとどうもいろいろ面倒らしい。
ActivePerl + PPM パッケージだと自分で PPM リポジトリを用意しておくことで、開発環境の統一が楽になるという利点があったのだけれどもしばらく一筋縄ではいかなさそうなので、別の Perl ディストリビューションを使ってみることにした。
Windows 上の Perl としてしばらく使ってみることにしたのは Strawberry Perl。現在のバージョンは 5.10.0.6。 以前にもちょっと入れてみたことはあったけれども、きちんと使ってみるのは初めて。
MinGW や dmake が同梱されており、CPAN.pm を使って UNIX 上と近い感覚で Perl モジュールのインストールができる。 PAR::Packer を使って実行可能ファイル化した Perl スクリプトも実行できることを確認。
しばらく乗り替えてみることにする。
- ActivePerl で Ming (2005-02-23)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- ActivePerl 5.8.9 build 825 + MinGW 5.... (2009-02-22)
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
- 自前 PPM リポジトリの管理 (2006-07-03)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.496152s / load averages: 0.40, 0.35, 0.27
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




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