nDiki : コマンド プロンプト

コマンド プロンプト - command prompt

2003年12月25日 (木)

[ Perl ] Term::ProgressBar

スクリプトにプログレスバーが欲しいというので、Term::ProgressBar で実装しておく。 しかし Windows + ActivePerl + コマンド プロンプトでうまく表示されるのかどうかは知らぬ。

[ 12月25日全て ]

2005年2月23日 (水)

ActivePerlMing

ActivePerlMing を使えるようにしておきたい。

Visual Studio

Ming 0.3 beta1 のソースパッケージには Visual Studio 6.0 用のプロジェクトファイルが含まれている。 Cygwin の Bison と flex があればライブラリをビルドできるようだ。 横着して Linux 側で bison と flex で生成したファイルをコピーして(それから unistd.h をインクルードしている部分を消して)、ビルドしてみたところ一応 lib ファイルは作成成功。

しかし ActivePerl 用にPerl モジュールの make は失敗。

MinGW + nmakeActivePerl のモジュールをビルドできるらしい

調べたところ ExtUtils::FakeConfig を使うと Visual Studio が無くても MinGW + nmake でモジュールをビルドできるらしい(全てではないと思うが)。

ということで MingMinGWビルドした後、そのまま ActivePerl 用モジュールの作成まで持ち込むことにしてみる。

MinGW + MSYS + GnuWin32開発環境を構築

コンパイルに必要な環境を MinGW で、configure に必要な環境を MSYS で用意する。

bison は GnuWin32

Mingビルドに必要な Bison は MinGWMSYSインストーラに含まれていない。 bison-1.875.0-2003.02.10-1.exe というのが別途あるがうまく動かない。

ソースパッケージ(bison-2.0.tar.gz、bison-1.875.tar.gz)からはビルドできず。 MinGW/MSYSのプロジェクトにある bison-1.875-2003.02.10-1-src.tar.gz はビルドできるものの make check が通らない。

とうことで GnuWin32 の bison-1.875-4.exe (インストーラ形式)をインストール。 c:/usr/local/GnuWin32 にインストールした後、MSYS の /etc/fstab で /GnuWin32 にマウントし、/GnuWin32/bin に PATH を通しておく。

flexソースパッケージから

flex-2.5.4a.tar.gz を展開して

 ./configure; make; make check; make install

インストール時ハードリンクが作れなくてエラーがでているようだが無視。

zlib (Ming で必要)

MSYS 上でビルドしてインストール。zlib-1.2.2.tar.gz を展開して

 ./configure; make; make check; make install

LibUnGif for Windows (Ming で必要)

MSYS 上でビルドしてインストール。 libungif-4.1.0b1-src.zip を展開して

 rm config.cache;
 config.h内の-DHAVE_VARARGS_Hをコメントアウト。
 ./configure; make; make install

make check はエラーが出るが無視。

libpng (Ming で必要)

MSYS 上でビルドしてインストール。libpng-1.2.8-config.tar.gz を展開して

 CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure
 make; make check; make install

いよいよ Ming

MSYS 上でビルド。ming-0.3beta1.tar.gz を展開して

 CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib make static

ActivePerl 用モジュール作成

ExtUtils::FakeConfigPPM::MakeMingSWF PPM パッケージを作成する。 (MSYSシェルではなく)コマンド プロンプトを開いて、Mingソースパッケージの中の perl_ext に移動。 MSYSMinGWnmake にPATHを通しておく。

それから Makefile.PL の実行で -lz を発見できないので、libz.a を Makefile.PL と同じディレクトリにコピーしてしまう(-L/usr/local/lib を指定しても効かなかったので)。 libpng.a、libungif.a も同じくコピーしておく。

Makefile を作成。Makefile.PL では -lz しか指定していないが、libpng と libungif も必要なのでコマンドラインオプションで指定する。ExtUtils::FakeConfig の Config_m を使用して MinGW を使用するようにする。

 perl -MConfig_m Makefile.PL LIBS="-lpng -lungif -lz"

ここで生成される Makefile の中で libperl58.a を指定している部分があるが、ActivePerl では perl58.lib になるので、エディタで書き換え。 後はいつも通り

 nmake
 nmake test
 make_ppm

PPM パッケージ作成完了。

簡単なPerlプログラムでSWFファイルが作れる事を確認。 やった。

[ 2月23日全て ]

2005年3月11日 (金)

wxPerl で daemon モニタ

Perl で書いた HTTP daemon 形式のシステムがあるのだが、Windows ユーザにとってはコマンド プロンプトからコマンドラインオプションを指定しての起動は繁雑でよろしくないらしい。

以前から管理用のGUIをつけようと思っていたのだが、現在の daemon プログラムにGUIをつけるとするとマルチスレッド化にしなければならないとか、そういう頭があって後まわしにしていた。

今回、まずはランチャと daemon のログモニタというレベルでGUIを作ってみることにした。 wxPerlランチャを作ってそこから子プロセスとして daemon を起動するという形式。 ランチャ側のアイドルループで、daemon の標準出力・標準エラー出力を読み出して表示するというもの。Linux 上ではうまく動いた。

  • Wx::Process でプロセスオブジェクトを生成
  • Wx::Process::Redirect() で、I/Oを取れるようにする。
  • Wx::ExecuteCommand() や Wx::ExecuteArgs() で daemon を起動。Wx::Process のインスタンスに結びつける。
  • EVT_IDLE でアイドルイベントハンドラの中で Wx::Process::GetInputStream、Wx::Process::GetErrorStream からの読み出しを行い defined ならば、UI側で表示。
  • daemon の終了がしたかどうかは EVT_END_PROCESS で捕捉。

といった感じ。

[ 3月11日全て ]

2005年6月8日 (水)

貼りつけ! コマンド プロンプト!

最近何か所かで紹介されている Command Prompt Explorer Bar 1.1 を使ってみる。 エクスプローラ上で Ctrl+M を押すと、コマンド プロントがエクスプローラ内に貼りつくソフトウェア

エクスプローラ上でフォルダを選択すると、cd コマンドが投入されてそのディレクトリに勝手に移動してくれたり*1便利。

窓の手の「任意のフォルダーからコマンド プロンプトを可能にする」オプションも便利だけれど、こちらはエクスプローラのフォルダ選択と連動するのでより便利そうだ。

*1連動を解除することも可

追記

[ 6月8日全て ]

2006年5月29日 (月)

第5回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の5回目を開催。 今回は一人病欠で6人。 今回も先週の金曜日に都合がつかなかったので、月曜日の開催。

今日は「初めてのPerl 第3版」第6章「入出力の基本」が範囲。 この章で、ダイヤモンド演算子 <> を含む標準入出力の基本がほぼおさえられる。

@ 今回の反省点

標準入出力を使うようにしておけば、リダイレクトやパイプを駆使することで簡単なプログラムを組み合わせて超便利。 その辺りを伝えたいところであるが、Windows ユーザにはちょとうまく良さを伝えきれなかった感じで反省。

今回から one liner について触れていこうと思う。 Perl のコマンドラインオプション -ne や -pe などを使いこなせるようになるとこれまた便利なので、ぜひ馴染んでいただきたい。

しかしコマンド プロンプトだとコマンドライン引数のクォートの仕方が Bash 等と違うので、環境別にサンプルを用意しなければならにのがちょっとネックである。 今回は時間の関係で Bash 上での例しか示せなかった。 次回からはもう少しきちんとサンプルを用意したい。

今回はほぼ1時間丁度ぐらい。

[ 5月29日全て ]

2010年2月10日 (水)

今日のさえずり - 副作用というと別の意味が思い浮かぶのは情報科学屋だから

2010年02月10日

[ 2月10日全て ]

2011年11月10日 (木)

Evernote に添付した FreeMind Map ファイルを直接開けるようにする (Windows 7)

Windows XPEvernote に添付した FreeMind Map ファイルを直接開けるようにしたんだけれど、Windows 7 では若干手順が違ったのでメモ。

Windows 7 + Evernote 4.5.0.5229 + FreeMind 0.9.0。

Windows 7 だとコントロールパネルからファイルの種類別の処理を詳細に設定できないので ftype コマンドで設定する。FreeMind を .mm に関連付けするようにインストールした状態で cmd.exe を管理者権限で実行。そのコマンド プロンプト上で以下作業。

 assoc

を実行して .mm=Freemind となっていることを確認。

そうしたら以下のコマンドを実行する。

 ftype Freemind=javaw -Xmx256M -Xss8M -cp "c:\Program Files\FreeMind\lib\freemind.jar;c:\Program Files\FreeMind\lib\commons-lang-2.0.jar;c:\Program Files\FreeMind\lib\forms-1.0.5.jar;c:\Program Files\FreeMind\lib\jibx\jibx-run.jar;c:\Program Files\FreeMind\lib\jibx\xpp3.jar;c:\Program Files\FreeMind\lib\bindings.jar" freemind.main.FreeMindStarter "%1"

64 bit 版なら以下を実行する。

 ftype Freemind=javaw -Xmx256M -Xss8M -cp "c:\Program Files (x86)\FreeMind\lib\freemind.jar;c:\Program Files (x86)\FreeMind\lib\commons-lang-2.0.jar;c:\Program Files (x86)\FreeMind\lib\forms-1.0.5.jar;c:\Program Files x86)\FreeMind\lib\jibx\jibx-run.jar;c:\Program Files (x86)\FreeMind\lib\jibx\xpp3.jar;c:\Program Files (x86)\FreeMind\lib\bindings.jar" freemind.main.FreeMindStarter "%1"

これで Evernote から直接開いて閲覧・編集できるようになる。

Happy mind mapping!

[ 11月10日全て ]

2014年8月1日 (金)

もう Windows PC は入力環境と最低限のアプリだけにする(できるだけ)

出社したら Dell のデスクトップ PC の電源ランプが黄色で点滅していて、診断ランプの 1 と 3 が点灯していた。電源回りの故障っぽい。直らなさそうなので、別の PC に乗り換え。結果的にスペックが上がってメモリも 4GB から 8GB になり OS も 32 bit から 64 bit になってツイてる

幸い HDD は壊れていなかったので、ファイルはサルベージ可能だった。しかし USB 接続して中を眺めてみても大して要るものなかった。そういえば複数 PC での利用のためだったり故障時の備えのためだったりで、リモートの Linux 環境や Google ドライブファイルサーバにファイルをほとんど移しておいたんだっけ。

ということで新 Windows 7 PC では最低限の環境だけにしておこう、もう。

Windows 7 PC に最低入れるもの・設定するもの(次回の自分用)

ブラウザ
  • Google Chrome (必須)
    • 設定は Chrome Sync ですぐ元通り。
入力環境
ファイルシステム暗号化

今まで TrueCrypt を使ってきたけれど、今後は VHD + BitLocker で。

  • VHD
    1. エクスプローラーの[コンピューター]で右クリックから[管理]。
    2. 「ディスクの管理」を選ぶ。
    3. 「操作」「VHD の作成」を実行。設定は以下。
      • C:\Users\naney\var\VHD\Naney.vhd
      • 64GB 容量固定
    4. 初期化する。
    5. [新しいシンプル ボリューム]を作る。
  • BitLocker
    1. 上記で新しく作って接続したドライブで BitLocker を有効にする。

旧データは TrueCrypt を portable で一時的に展開し、旧ボリュームをマウントして VHD で作ったドライブにコピー。

  • PuTTY
    • INI ファイルを使うようにしてあるので、前の環境からディレクトリごとコピーしてくる。
  • LimeChat 2
    • IRC クライアント。過去の Settings ディレクトリの中身をコピー。これは再度同じ状態に戻すの結構面倒で設定をロストすると面倒なので、たまにどっかに置いておいた方がいいなあ。
  • KeePass 1.27
    • その時点での最新のをとってきてインストール。設定は手でやれる範囲。
  • Office 365
  • 環境によっては DropboxEvernote 入れる。

こうしてみると

  • 同期されるディレクトリに置いておく
    • AutoHotkey で作った実行可能形式ファイル
    • PuTTY
  • 設定をたまにコピー / エクスポートしておく。
  • ダウンロードできなくなると困るアーカイブを保存しておく。

はしておいた方が良さそげだな。

あとは普段の作業は PuTTY の先の Linux 環境で(Emacs でドキュメント書いたり、プログラム書いたり)。メールGmail。ドキュメントは Emacs 上の howm (Markdown 形式) か WikiGoogle ドライブで書いて可能な限り Windows PC ローカルでは書かない。


[ キーバインディング ]

[ 8月1日全て ]

About

Naney Naneymx

Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Process Time: 0.035178s / load averages: 0.30, 0.41, 0.35