nDiki : 実行可能ファイル
Related term
2005年3月7日 (月)
■ UPXで実行可能ファイルを小さく

PARのチュートリアルで UPX (the Ultimate Packer for eXecutables)というツールが紹介されていたので使ってみる。 実行可能なファイルを、実行可能のまま圧縮するというもの。 MS-DOSの時代の伝説のプログラム DIET を思い出す。
PAR で実行可能形式に変換したPerlスクリプトを UPX 1.25 で圧縮したところサイズが小さくなった。 しかし PAR で作った実行可能バイナリは実行時に自身を展開するため、圧縮によってフォーマットが変わってしまっていることを検知して警告が出てしまう。 ちょっとよろしくない。
それにNSISでインストーラを作ってしまえばかなり高圧縮がかかるし、そういう意味では出番がないか。
いや USB メモリにいろいろ実行可能ファイルを詰め込みたい時にはいいかもしれない。
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- NSIS 2.22 は Linux でビルドできず (2006-12-20)
- PAR (2004-07-19)
- NSIS でインストーラを作ってみる。 (2004-08-11)
- Wineを入れてみる (2005-03-31)
2005年3月15日 (火)
■ PAR で作った実行可能ファイルを殺せない

PARでWindows用実行可能ファイル(exe)にしたプログラムを、別のプログラムから起動・終了させるプログラムを書いていたところ困った事態。
今まで気がつかなかったのだが、PARで作った実行可能ファイルを実行するとプロセスが起動される。片方がブートストラップで、もう一方がPerlインタプリタのようだ。
プログラムから起動した時に取得できるのはブートストラップの pid で、これを TerminateProcess してもPerlインタプリタの方は以前として動き続ける。 止める方法がわからん。
自爆機能とかつけて対処するしかないか。
@ --pidfile
結局 --pidfile オプションをつけて、pid をファイルに書き出せるようにした。 $$ の値はPerlインタプリタ側のプロセスIDで、こちらを kill するとまとめて落ちてくれる。
- PAR (2004-07-19)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- ActivePerl をやめて Strawberry Perl へ (2009-08-25)
- 自前 PPM リポジトリの管理 (2006-07-03)
- UPXで実行可能ファイルを小さく (2005-03-07)
2005年3月31日 (木)
■ Wineを入れてみる

Linux 上で Win32 用の ActivePerl を動かして、PPM パッケージの作成や PAR による実行可能ファイルの作成をできるようにしたい。
調べたところ Wine 上でも ActivePerl が動くらしい。 さっそく Debian GNU/Linux の sid 環境にインストールしてみる。
debパッケージは以下をインストール。
- wine
- wine-utils
- winesetuptk
- wine-doc
- msttcorefonts
winesetup を実行して ~/.wine 以下を作成。 winesetup が古いのか wine を実行すると
Please use the registry key HKEY_CURRENT_CONFIG\Software\Fonts\LogPixels to set the screen resolution and remove the "Resolution" entry in the config file
という警告がでるので、[fonts] の中の
"Resolution" = "96"
をコメントアウト。
次に msi 形式になっている ActivePerl インストーラを動かすために、Windows Installer をインストールする。
失敗。設定がうまくいっていないのか、何かが足りないのか。
usr/share/wine/wineinstall で ~/.wine 以下を作っても駄目。
要調査。
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- ActivePerl で Ming (2005-02-23)
- Debian GNU/Linux sid 環境を新 HDD へ (2006-07-29)
- ThinkPad X200 に Debian GNU/Linux sid ... (2009-11-21)
- 21:00 Xalan-Java + Bean Scripting Fra... (2001-11-27)
2006年12月12日 (火)
■ PAR::Repository でビルド済み Perl モジュールをネットワーク配信

@ 実行可能ファイル作成としての PAR
PAR といえば Perl スクリプトを実行可能ファイル(Windows なら EXE 形式ファイル)に変換するモジュールとして有名である。
ちなみに実行可能ファイルを作成する部分はは PAR 0.97 より PAR-Packer パッケージに分けられ、PAR 自体はインストールしやすい pure Perl なパッケージになっている。
@ PAR モジュールアーカイブからのローダとしての PAR
PAR が提供するもう一つの(こちらが本来はメイン?)機能は、プログラムの実行時に必要な Perl モジュールを PAR ファイルと呼ばれる Perl モジュールアーカイブファイルからロードする機能である。 XS モジュールなどもコンパイルすることができるどこかの環境で1度ビルドして PAR ファイルにしておけば、同じアーキテクチャのホスト上でそのまま利用することができる。
@ PAR リポジトリ
ロードしたい PAR ファイルはファイルパスだけではなく URL でも指定することができ、必要な時にオンデマンドでフェッチさせることができる。 これを使えば Perl プログラムの集中管理可能だ。
PAR 0.951 からは PAR リポジトリというコンセプトが追加され、パッケージ毎に作った PAR ファイルをサーバ上(あるいはローカル)のリポジトリに蓄積してオンデマンドでロードできるようになった。
個別に PAR ファイルを指定する従来の方式に比べてかなり便利そうである。 ということで試用してみた。
まずは
- PAR
- PAR::Repository
- PAR::Repository::Client
- PAR::Repository::Query
- PAR::Dist
- PAR::Packer
あたりをインストールし準備 OK。
@ 1. PAR リポジトリを作成する
最初に PAR-Repository に含まれている parrepo で。
parrepo create -r /tmp/PAR
PAR リポジトリファイルの中にはデータベースファイルが作成されるが、これは DBM::Deep というアーキテクチャ非依存のものを使っているので、Linux でも Windows でもどちらからでもアクセス可能である (つまり Linux 上でリポジトリをメンテできるということだ)。
@ 2. Perl パッケージを PAR ファイル化する
次に必要な PAR ファイルを作成する。 作成したいパッケージを展開してビルドし、blib ができている状態で PAR::Dist を使ってパッケージ化する。
perl Makefile.PL make make test perl -MPAR::Dist -e blib_to_par
例えば ActivePerl*1 上で WWW-Mechanize-1.20 を PAR ファイル化すると
WWW-Mechanize-1.20-MSWin32-x86-multi-thread-5.8.8.par
というファイルが作成される。
普段から ActivePerl で必要なライブラリは基本的に自前で PPM パッケージ化して、動作確認した上で PPM リポジトリに蓄積するようにしているので、合わせて次の手順でパッケージを作ることになる。
perl Makefile.PL nmake nmake test perl -MPAR::Dist -e blib_to_par make_ppm
@ 3. PAR リポジトリに PAR ファイルを登録する
PAR ファイルができたら parrepo でリポジトリに登録する。
parrepo inject -r /tmp/PAR -f xxx.par
@ 4. PAR リポジトリ上のライブラリを使用してみる
例えば先ほどの WWW::Mechanize がリポジトリに登録されている状態で
#!/usr/bin/perl
use PAR { repository => 'file:///tmp/PAR/' };
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get('http://www.example.com');
print $mech->content;
というスクリプトを書いて実行すると、PAR リポジトリから WWW::Mechanize がロードされて正しく実行される。
ここでリポジトリを Web サーバへアップロードして、repository のところに URL を指定するようにすることもできる。 例えばリポジトリを http://www.example.com/PAR/ に配置したとすると
#!/usr/bin/perl
use PAR { repository => 'http://www.example.com/PAR/' };
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get('http://www.example.com');
print $mech->content;
と書き換えることで、インストールしていない WWW::Mechanize を使用できるようになる。
@ Perl プログラムを実行形式化する
先ほどの Perl スクリプトを get_top_page.pl という名前で保存して pp で実行可能ファイル化する。
pp -o get_top_page.exe -M PAR::Repository::Client get_top_page.pl
とすれば get_top_page.exe という実行可能ファイルが作成される。 WWW::Mechanize はオンデマンドで http://www.example.com/PAR/ からフェッチされるので、アップデートが必要な場合は新しい PAR ファイルを作成してリポジトリを更新するだけでよい。 EXE ファイルを作成しなおして利用者に配付しなすといった作業も不要だ。
@ スクリプトもリポジトリにおく
さらには実行するスクリプトをも PAR リポジトリに置いておくことが可能だ。
例えば WWW-Mechanize に含まれている mech-dump をオンデマンドにフェッチして実行する実行形式ファイルは以下のコマンドで作成できる。
pp -o mech-dump.exe -M PAR::Repository::Client \
-e "use PAR { repository => 'http://www.example.com/PAR/', \
run => 'mech-dump' }"
@ まとめ
ActivePerl では PPM があるとはいえ、普通のユーザにちょっとしたプログラムを使ってもらうのに「ActivePerl をインストールして、PPM パッケージをインストールして、……」というのは手間すぎる。
pp で プログラムに必要なものを全てバンドルした実行形式化ファイルにするという方法ももちろんあるのだが、頻繁にアップデートするようなスクリプトの場合には、起動のための部分だけ pp で作成しておいてあとは PAR リポジトリで集中管理するというのもちょっと魅力的である。
- [ Perl ] PDL::PP で C extension を書く (2004-02-19)
- 自前 PPM リポジトリの管理 (2006-07-03)
- ActivePerl をやめて Strawberry Perl へ (2009-08-25)
- ActivePerl 5.8.9 build 825 + MinGW 5.... (2009-02-22)
- ActivePerl で Ming (2005-02-23)
2006年12月20日 (水)
■ NSIS 2.22 は Linux でビルドできず

Windows 用のインストーラ作成ツール NSIS は、スクリプトベースでインストーラを作っていくのが1つの特徴である。 NSIS スクリプトは、さすがインスーラ作成用だけあって
- ファイル処理 (コピー、削除、……)
- レジストリの読み書き
- プログラムの実行
その他システム関連のコマンドが充実している。 コンパイルするとかなりコンパクトな実行形式ファイル (EXE) を生成してくれるので、ちょっとした処理を自動化するには便利である。
今回 USB メモリに入れておいて、そのドライブ上のいくつかのディレクトリに PATH が通った状態でコマンドプロンプトを開くツールを NSIS で書いておこうかと思って試す。
NSIS は POSIX ベースシステムでビルドし実行でき、NSIS スクリプトをコンパイルできる。 ということで作業を Linux で作業をしていたのだが、どうやら System::Call が使えないようだ(スクリプトのコンパイルに失敗する)。
Debian パッケージが古いせい (2.19-1.1) かと思い、ソースパッケージをビルドしてみたらまさに System 関連らしいところでコンパイルがこけている (そういう背景で Debian パッケージがアップデートされていない?)。
ということでどうも最新の NSIS は Linux では駄目っぽい。
しょうがないので久しぶりに Wine。
Wine 上に NSIS 2.22 をインストールして makensis.exe を実行してみたところ試した範囲ではうまく動いている。 ついでにでき上がった実行可能ファイルも Wine 上で試せる。
しばらくは Wine 上で NSIS スクリプト書きを楽しむことにしよう (最終的には Windows 上でコンパイルしなおして動作確認するのだけれども)。
- TrueCrypt で USB メモリに Windows と Linux ... (2006-12-14)
- xyzzyを読み取り専用メディアから起動する (2004-07-28)
- Linux 上で Windows 用インストーラを作成する (2004-10-14)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- NSIS が再び Linux でコンパイルできるように (2005-01-08)
2009年1月31日 (土)
■ USB メモリに入るキー配列変更ソフトウェア

私は会社の共有 Windows ノート PC を持ち歩くのが嫌いだ。 自分の Debian GNU/Linux ThinkPad があるので、2台持ち歩かなければなくなるから。 しかしながらデモンストレーションやテストの環境が必要な時は Windows ノート PC がいるのも事実。 外出/出張時は共有ノート PC 1台で済ませられるようにしないとな。
で、なぜ嫌かを考えてみるとやはりテキスト入力で苛つくからだなとあらためて気がついた。 普段は
- 英語キーボード (ThinkPad は換装、デスクトップは Happy Hacking Keyboard Lite で)。
- Caps Lock は Ctrl に入れ替え。
- Emacs 風キーバインディング (Windows では XKeymacs)。
- SKK (Windows では SKKIME)。
というテキスト入力環境。 もう素の日本語 Windows 環境ではイライラしまくり。
であれば一時的にキー配列を変更するツールを USB メモリに入れておけば少しは楽になるかもしれない。 ということでツールを選んでみた。
が希望。ちょっと使う際にさっとキー配列を変えられて、すぐに戻せるようにしたい。 元の状態に戻すのに操作が不要なのがベストなので、常駐型のソフトウェアでかまわない。
@ 英語キーボード配列への変更は AutoHotkey で
キー入力時にキーを入れ替えたりスクリプトを実行したりすることのできる強力なソフトウェア。USB メモリに入れて実行できる。 実行中のみフックされるため終了すれば元の環境に戻せる。 作った設定ファイルはコンパイルして実行可能ファイルにすることができ、AutoHotkey 本体無しで実行できるという機能もある。
家にある ThinkPad の日本語キーボードと英語キーボードを並べて設定を作ってみた。 IME 切り替えは Web で公開されている IME_Func.ahk を使った。
#UseHook
#include IME_Func.ahk
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 1段目
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VKF4::Send,{``} ; 半角/全角 -> `
+VKF4::Send,{~} ; Shift + 半角/全角 -> ~
+2::Send,{@} ; Shift + 2 ["] -> @
+6::Send,{^} ; Shift + 6 [&] -> ^
+7::Send,{&} ; Shift + 7 ['] -> &
+8::Send,{*} ; Shift + 8 [(] -> *
+9::Send,{(} ; Shift + 9 [)] -> (
+0::Send,{)} ; Shift + 0 [ ] -> )
+-::Send,{_} ; Shift + - [=] -> _
^::Send,{=} ; [^] -> =
+^::Send,{+} ; Shift + ^ [~] -> +
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 2段目
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@::[ ; [@] -> [
+@::{ ; Shift + @ [`] -> {
[::] ; [[] -> ]
+[::Send,{}} ; Shift + [ [{] -> }
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 3段目
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;::Send,{:} ; Shift + ; [+] -> ;
:::Send,{'} ; [:] -> '
*::Send,{"} ; Shift + : [*] -> "
]::\ ; []] -> \
+]::| ; Shift + ] [}] -> |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 4段目
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 5段目
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VK1C::
IME_TOGGLE("A")
return
直接 a::b と書けるものと Send を使わなければならないのとがあって、ちょっとハマったけれど何とかマッピングできるようになった。
@ Caps Lock を Ctrl に
今のところインストール不要で常駐している間のみ Caps Lock を Ctrl に替えるソフトウェア見つからず。 「レジストリ書き換え」「再ログイン必要」になるが XKeymacs で変更できるので、ちょっと長時間占有して使う場合に XKeymacs で設定して最後に戻すようにするかなあ。
この場合は英語キーボード配列にするのも AutoHotkey じゃなくてレジストリ書き換え(あるいはそれ用のツール)でドライバを入れ替えてしまってもいっしょか。
@ Emacs 風キーバインディング
XKeymacs で。 インストール不要で実行中のみ Emacs 風にしてくれるが、レジストリを一部書き換える。 完全に跡を残さないようにするようには、レジストリを削除する必要あり。
Emacs 風キーバインディングは絶対無くては嫌というわけではないので、必要に応じて。
@ SKK はなし
さすがにインストール不要というのは見当たらない。 USB メモリに入れてある NTEmacs に SKK を入れてテキストファイル作成時ぐらいは SKK を使えるようにしておく予定。
@ USB メモリに入れておくもの
ということで、快適なテキスト入力のために入れておくもの:
- AutoHotkey (あるいは設定を実行可能ファイル化したもの)
- XKeymacs
- NTEmacs
Shift + 2 が @ になるだけでも救われる。
- Linux 母艦ノート PC を使わずに仕事ができるかチャレンジ (2007-08-20)
- HHKB Lite2 欲しい (2008-09-12)
- 今日のさえずり - ダッフルコートを着ていた時期がぼくにもありました (2009-12-04)
- 「シートが硬かった」初めてのつくばエクスプレス乗車 (2006-09-21)
- Evernote 使用開始 (2009-03-03)
2009年2月22日 (日)
■ ActivePerl 5.8.9 build 825 + MinGW 5.1.4 + PAR で Perl スクリプトを実行可能ファイルに

久しぶりに PAR の出番。 休日出勤して環境作り。
今回実行可能ファイルにしたい Perl プログラムが Perl 5.8 で開発・テストされているものの改訂版で、必要な PPM パッケージも 8xx 用に作りだめしてあるので、ActivePerl 5.8.9.825 上で行うことにした。
PAR::Packer は ActivePerl の build と合っていないとうまく動かないので、自分でソースからビルドして PPM パッケージ化する。 必要な依存モジュールのバージョンも軒並み上がっているので、それらもビルド。
今まで Visual Studio 6.0 でビルドしていたのだけれど、この間 PC をかえてから入れていなかったので、今回は MinGW を使うことにした。 SourceForge.net 上から g++ をダウンロードしてネットワークインストールできないようなので、そこだけ SourceForge.JP で探してきてインストール。
MinGW の bin ディレクトリを PATH に追加したら、特に問題なく Perl モジュールコンパイルできている。素晴しい。ExtUtils::FakeConfig 無くてもいいのかな。
- ActivePerl をやめて Strawberry Perl へ (2009-08-25)
- ActivePerl で Ming (2005-02-23)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
- 自前 PPM リポジトリの管理 (2006-07-03)
2009年2月23日 (月)
■ PAR で DLL ファイルをロードできなかったら大文字小文字を疑え

PDL を使っている Perl プログラムを、昨日構築した今ごろの環境で PAR を使って実行可能ファイル化したんだけれども、実行してみたら
Can't locate loadable object for module PDL::Core in @INC ...
というエラー。 実行時のキャッシュディレクトリを見ると core.dll が同梱されていない模様。 なんでだー。
いろいろやってみたところ、もしやと思ってインストール済みの core.dll を Core.dll という名前に変えたらエラーが出なくなった(正確には次のモジュールで同様のエラーが出た)。
ファイル名の大文字・小文字が問題だったらしい。 PAR の FAQ には「Win32::Perms の Perms.DLL でこのエラーが出たら、Perms.dll にしてね」と書かれている。 最初これ拡張子の問題だけだと思っていた。 ベース名でも同様のようだ。
以前は問題なかったから、比較的新しい PAR で発生するようになったと思われる。 これ絶対はまる。
- Template Toolkit + PAR (2004-09-13)
- 今日のさえずり - くるみマフィンの賞味期限が2月30日 (2009-02-23)
- ActivePerl をやめて Strawberry Perl へ (2009-08-25)
- Wineを入れてみる (2005-03-31)
- [ Java ] 22:30 Cocoon2 はどうかな? (2001-12-05)
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)
2009年8月26日 (水)
■ 今日のさえずり - しばらくイチゴにするか

@ 2009年08月24日
- 12:40 2009年8月22日の歩行: 5602歩、4.25km、54分、4.71km/h、消費 209.5kcal、脂肪燃焼 29.9g、2.8エクササイズ。 *P3
- 12:41 2009年8月23日の歩行: 3245歩、2.45km、31分、4.72km/h、消費 119.5kcal、脂肪燃焼 17.1g、1.7エクササイズ。 *P3
- 12:56 pdumpfs って size と mtime で同一判定しているのか。だとするとソースディレクトリは FAT32 でもいいんだな。 *P3
- 15:10 危うくちょっとオヤツを買いに出ただけでずぶ濡れになるところだった。 L:東京都千代田区東神田3 *P3
- 17:29 着られる期間が短い洋服よりもオモチャの方が長く使えてよいのでは。 RT @zakwa: 友人のトコに娘が産まれた。お祝いに何あげたら良いかな? *P3
- 17:31 さて、そろそろ一区切りにして PAR::Packer で実行可能ファイルにするか。不足モジュールの追加など、ここからがまた少しかかるのだよな。 *P3
- 20:50 残業終わってイマココ! L:秋葉原駅 [mb]
- 23:06 リムーバブルメディア上に digiKam のルートアルバムを置いた時の挙動をチェックした。マウントポイント変えてマウントしなおしてもちゃんと同じアルバムだと認識してくれる。良い子。 *P3
@ 2009年08月25日
- 06:25 2009年8月24日の歩行: 5558歩、4.29km、47分、5.37km/h、消費 213.4kcal、脂肪燃焼 30.5g、3.1エクササイズ。 *P3
- 07:14 直行につき出発。涼しくて快適。 [mb]
- 07:43 予定より早い京葉線。 イマココ! L:新木場駅 [mb]
- 12:29 これから帰社する。イマココ! L:八幡宿駅 [mb]
- 12:32 今日はこの時間になってもスーツのジャケット着てられる暑さ。 L:千葉県市原市八幡 [mb]
- 13:45 C2 出口にしたら方向を見失った。 L:馬喰町駅 [mb]
- 14:53 PAR::Packer したファイル、他の PC で実行したら「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした」だった。あれ? *P3
- 15:39 dumpbin /imports でみてみると msvcr80.dll を使っているな。 *P3
- 16:05 うーん。Visual Studio 2005 で作った PAR::Packer がいけないのかな。 *P3
- 16:56 かわりに Strawberry Perl で PAR::Packer 構築してみている。 *P3
- 17:06 Strawberry Perl だと PAR::Packer した実行可能ファイルを他の PC に持っていってもちゃんと動いた。しばらくイチゴにするか。 *P3
@ 2009年08月26日
- 09:38 今日は有給休暇です。 [mb]
- 09:38 出でよタクシー。 [mb]
- 09:46 タクシー乗車。今日は経路聞かれなかった。そしていつもと違うコース。 [mb]
- 10:17 到着。やはり平日は時間がかかるな。 [mb]
- 12:31 イマココ! L:広尾一丁目交差点 [mb]
- 今日のさえずり - ツレってヨメの事だと思っていたが違うらしい (2008-12-18)
- 今日のさえずり - スパイだからミハルだってようやく気がついた (2008-11-28)
- 今日のさえずり - 喫煙所で吸っている人の目見ると、中毒だなって思う (2008-11-20)
- 今日のさえずり - PuTTY って「パティ」なのか (2008-09-11)
- 今日のさえずり - 餞別用意したけど最終日の今日来なかった (2009-06-15)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.031705s / load averages: 0.18, 0.16, 0.15
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




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