nDiki : コマンドライン引数

コマンドライン引数 - command line argument

プログラムを実行する際に渡すパラメータの一つ。

2004年7月28日 (水)

xyzzyを読み取り専用メディアから起動する

新人プログラマには「プログラムを組むんだから、とりあえずテキストエディタを何か入れておけ」と言うのだが、実際のところ自分が今仕事で使っている Windows BOX にはテキストエディタインストールされていない。

メモ帳」ですよ。

ちゃんと編集する時は Linux BOX 上の Emacs を使ってしまうので、Windows BOX では力を入れて環境構築していなかったり。 しかし、やっぱり何かテキストエディタがないと不便といえば不便。 ということで久しぶりに何か入れてみることにした。

最近は「インストール不要のソフトを USB メモリに入れて相手先で利用できるようにする」環境作りをぽちぽちしているので、エディタもそのようにできるのを選びたい。

というのが主な条件。

書き込み禁止にした USB メモリや、read only な Samba 公開ディレクトリ上(あるいは CD-R 上)から直接起動できるようにするのが目的。

xyzzy 0.2.2.233

以前にもちょっと使ったことがある。 Meadow はヘビーだし設定が面倒なので xyzzy が良い。

で実験。

アーカイブを展開してすぐ xyzzy.exe を実行できるのだが、

  1. ダンプイメージ
  2. etc/DOC (lisp/help.l より)
  3. $XYZZY/usr/usrname/os/xyzzy.ini
  4. $XYZZY/usr/usrname/os/.xyzzy.history

を書き出せる必要がある。etc/DOC 以外の位置はコマンドライン引数環境変数で指定できる。が etc/DOC だけ変更する方法がわからない。

保留。

サクラエディタ 1.4.8.0

同僚が使っているサクラエディタも試してみる。 インストーラを使用したくないので、実行可能ファイル・ヘルプファイルそれから必要な補助ファイルをそれぞれ取得して、同じディレクトリへ。

こちらは read only でも特に問題なく起動した。 ただし、

なので躊躇。

再び xyzzy

xyzzy の設定をいじってみる。

site-lisp/siteinit.l を

 (setq lisp::*documentation-path*
       (merge-pathnames "xyzzy-DOC"
                        (directory-namestring (si:dump-image-path))))

として etc/DOC をかわりにダンプイメージファイルと同じディレクトリに xyzzy-DOC として生成するように変更。

それから起動用に

 mkdir %TMP%\xyzzy
 xyzzy -image %TMP%\xyzzy\xyzzy.dump -config %TMP%\xyzzy

というバッチファイルを作成。ダンプイメージファイル、設定ファイルを置くディレクトリを環境変数TMPの下の xyzzy サブディレクトリに出力するようにする。

これで書き込み禁止ディレクトリから起動できるようになった。

必要があれば書き込みディレクトリはアカウント毎に変えた方がいいかな。 Windows 98 SE だとユーザ名やホームディレクトリとして使える環境変数は標準状態では存在しないようなので一工夫が必要になるか。

スポンサード リンク
[ 7月28日全て ]

2006年5月29日 (月)

第5回 社内 Perl 勉強会

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

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

@ 今回の反省点

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

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

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

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

[ 5月29日全て ]

2006年12月11日 (月)

SpiderMonkey の素のインタプリタでは CGI プログラムには役立たず

Ajax を使うプログラムを書くことになりそうなので、どうせならサーバーサイドも JavaScript で書けないかなと調査。 有名どころの JavaScript エンジンというと SpiderMonkey なので、まずはこれでいけるか確認。

Debian GNU/Linux sid だと spidermonkey-bin パッケージに JavaScript shell プログラム smjs (js) が含まれている。 とりあえずコマンドライン引数 (arguments)と環境変数(environment)と標準入力(readline())から入力ができて、標準出力に出力 (print()) ができるので、最低限の CGI プログラムは書けそうだ。

ただこれだけでできる範囲のことなら、クライアントサイドでできてしまう。 単独だとあまり意味ないな。やはり embedded 用か。

Perl の JavaScript::SipderMonkey モジュールや JavaScript モジュールを使うと Perl のサブルーチンを JavaScript プログラム側から呼べる関数として与えた中で JavaScript を実行できるのでいろいろ遊べるようになる。 ただこれだと、Perl で書いちゃった方がよっぽど楽。

[ 12月11日全て ]

2009年1月6日 (火)

クラッシュは突然に - DAR の使用を再検討

naney:3172591689

後ろの席の人、Dell Precision 470 に iPod shuffle を挿したら、ファンが掃除機並みの音を立てるようになりそのまま亡くなった。

ヨドバシカメラであわてて買ってきた HDD ケースに、ぶち抜いた HDD を入れてデータをコピーしている(確認しないで最初 IDE タイプを買ってきて、もう一度店舗にいって SATA タイプに交換。そしたら部品欠品があり再度店舗に交換してもらいにいったというのは秘密)。

斜め向こうの人も Windows を再インストール中。

不吉だ。 自分も何台かバックアップを怠っているので、それぞれバックアップを再検討することにした。

Red Hat Linux 8.0 用 DAR

特に気になっているのが Red Hat Linux 8.0 BOX のバックアップ。 以前は pdumpfs で毎日バックアップしていたのだが、バックアップUSB 外付け HDD がクラッシュ。新しいものを手配したのだがうまく認識できなくてバックアップに使えていない。 TeraStation PRO にそのディスクを接続してネットワーク経由でバックアップする予定つもりではいる。 で、バックアップには DAR を使おうと思ったのだが、Red Hat Linux 8.0 上でビルドできなかったのでそこで止まっていた。忙がしいこともあってその後ずっとほったらかし。

ビルドが通るようにコンパイラやライブラリのバージョン上げるのも大変なので、今回は別のホストでビルドしたものを使うことにした。 DAR はもともとリカバリ用に必要なライブラリを静的リンクした dar_static が作られるようになっている。これなら別環境でビルドしても動くはず。

Linux kernel 2.4 系の Debian GNU/Linux BOX があるので、そこで apt-get build-dep dar してから、dar-2.3.8.tar.gz をとってきて展開。

 ./configure --prefix=/tmp/dar
 make
 make install-strip

できあがった dar_static を dar として Red Hat Linux 8.0 BOX にコピーしてテスト。 うまく動いている感じ。

そういえば最初に DAR をいじってみたのは2005年4月なのだが、開発が進んでコマンドライン引数の指定の仕方がかわったようだ。 その時はバックアップ対象ディレクトリを直接引数として渡せたのだが、現バージョンではオプション引数として渡す必要があるようになっている。

DAR のスケジューリングとローテーションを提供する SaraB ( http://sarab.sourceforge.net/ ) もちょっと気になっている。 要チェック。

[ 1月6日全て ]

2009年1月7日 (水)

今日のさえずり - パスワード探すのに時間をとられすぎ

2009年01月05日

  • 10:01 出社。 *P3
  • 12:09 午前中はアカウント管理で終わってしまった。パスワード探すのに時間をとられすぎ。 *P3
  • 13:06ファイルサーバまじヤバい。 *P3
  • 16:24 2カ月前の残作業をやっつけた。すぐにやらなかったコストを実感。 *P3
  • 18:15 今日は会社をあがってこれから歯医者。 [mb]
  • 18:45 定期券売機大行列。もっと早く買っておけばいいのに。 [mb]
  • 21:39 Iceweasel だと LogMeIn 固まるので、Konqueror で接続。一旦 Full Screen にして戻せば動いている。 *P3

2009年01月06日

2009年01月07日

  • 13:03 健診に向けて電車に乗ったところ。 [mb]
  • 15:07 健診終了して駅。 [mb]
  • 17:04 あー、出かけている間にバックアップしかけておこうと思ったのに。 [mb]
  • 21:18 @maru_kei そうです。ヤマト車検は新馬場の。有名なの? *P3
[ 1月7日全て ]

2010年2月6日 (土)

Debianアップデートしたら Java プログラムが通信できなくなった

昨日 Debian GNU/Linux sidノート PC で久しぶりにアップデートをかけたら、無線 LAN がつながらなくなった。こちらは新しく入った linux-image を消したり、NetworkManager のフロントエンドを knetworkmanager から nm-applet に変えたりしているうちにつながるように。

これで大丈夫かと思ったら Web ブラウザなどは問題ないのに Java プログラムである Twitter クライアント P3:PeraPeraPrv が全くつながらなくなってしまっていた。こちらは有線 LAN でも駄目なので無線 LAN 関係は関係なさそう。

困ったなと思って調べていたら、java のコマンドライン引数で -Djava.net.preferIPv4Stack=true を指定すれば良さそうということで試しに

 java -Djava.net.preferIPv4Stack=true -jar PeraPeraPrv.jar

と起動したら無事アクセスできるようになった。ふう。

そこから調べてみると netbase 4.38 (2009年12月6日)から /etc/sysctl.d/bindv6only.conf で net.ipv6.bindv6only=1 と設定されるようになったのが影響しているようだ。

こちらの設定を以前と同様にするならば 0 に変更して

 invoke-rc.d procps restart

とのこと。

[ 2月6日全て ]

2010年2月15日 (月)

そろそろ Google ChromeWindows のメイン Web ブラウザにするか

開発に使っている Windows デスクトップ PC はメモリが 1GB で、ちょっと不足気味なので Web ブラウザを立ち上げっぱなしにしずらくなってきた。 ということで最近は Firefox よりも起動の速い Google Chrome をよく使うようになってきた。 Windows では Google Chrome をメインにしてみようかな。拡張機能もサポートされたし。

ということで Google Chrome に拡張機能を入れてみようかと思ったら、今使っている Google Chrome Portable は3系で入れられなかった。 データディレクトリを TrueCrypt 仮想ボリュームに入れておきたかったので Google Chrome Portable にしていたんだけれど、確認したら Google Chrome は --user-data-dir コマンドライン引数でデータディレクトリを変更できるようなので、Portable 版をやめて普通に最新版をインストールしなおすことにした。

インストール後、スタートメニューの中のショートカット・PStart(ランチャ) 上の起動項目・レジストリ中にある関連付け起動設定についてそれぞれ --user-data-dir を指定。

レジストリの中は

 "<パス>\chrome.exe" -- "%1"

となっているところを

 "<パス>\chrome.exe" --user-data-dir=<データディレクトリ> -- "%1"

に変更。--user-data-dir を最後に指定すると関連付けから起動すると別にもう1つエラーなタブがが開いてしまう。-- は以降 PATH/URL 指定を表すようだ 。

[ 2月15日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

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

月別インデックス
Process Time: 0.130993s / load averages: 0.66, 0.57, 0.50
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker