「Adobe Photoshop Elements 5.0 plus Adobe Premiere Elements 3.0」を購入

さて、体験版を試していた Adobe Premiere Elements ですが、正式版の購入に踏み切ることにしました。まだ体験版の利用期間はしばらく残っているのですが、書き出した DVD を再生してみると体験版では右上に思いっきりアドビのロゴが入るので、とっとと正規ライセンスを買ってしまおうということになりました。

結局、パッケージは “Adobe Photoshop Elements 5.0 plus Adobe Premiere Elements 3.0” のアップグレード版を購入しました。ポイントを考慮したとしても量販店で買うより amazon の方が安かったので amazon で購入しました。価格は \13,180 (税込) でした。kakaku.com で見ても現在最安値ですね。

Premiere Elements 単体のアップグレード版を購入することも検討したのですが、Premiere Elements 3.0 と連携できる Photoshop Elements のバージョンは 5.0 のみなので、結局 Photoshop Elements もアップグレードすることにしました。今年1月に Photoshop Elements 4.0 にアップグレードしたばかりなので年2回もアップグレードすることになってしまいました。今後しばらくは今回購入のバージョンを使い続けたいのですがどうなるでしょうか…

ちなみに IEEE 1394 インターフェイスは I・O DATA 1394-PCI3/DV8 を購入しました。1394-PCI3 との差額を考えるとケーブル&ソフトがついていてこの程度の差ならばお得だと思います。デジタルビデオ編集ソフトのライセンスがあれば安価な「乗り換え版」の購入ができるようになるメーカーは多いので、ケーブルだけでなくソフトウェアにも価値を見い出す人は多いのではないでしょうか? こちらも amazon で売っているので合わせて紹介しておきます。

届いた箱を開けてみるとインストールメディアは Photoshop Elements と Premiere Elements で別々になっています。Premiere Elements の方は DVD-ROM になっていて一瞬「アレ?」と思いましたが、よく考えれば Premiere Elements を使う場合は DVD ドライブ装備が当たり前ということですね。体験版は 700MB 強のセットアップファイルでしたが、正式版のインストール用 DVD-ROM は 3GB 弱です。種々のテンプレート等様々なファイルがつくのでしょう。その分ハードディスクの空きも必要です。より大きなハードディスクを買いたくなってきました…

利用する PC のスペックは以前書いた通り Pentium 4 3GHz、メモリ 1G バイトです。HDV 編集用としてはぎりぎりのスペックです。実際プレビューでコマ落ちしたりエンコードに時間がかかったりで快適とまでは行きませんが、テープで撮影したものの不要部分をカットして DVD に落とす程度の作業ならばストレスがたまる程ではありません。(エンコード実行中は放ったらかし)

しかし影像も凝り始めると際限がなさそうですね。その場合はより速い PC が欲しくなってくるのかも。

PIX/ASA の policy-map

備忘録を兼ねる Cisco PIX/ASA の設定情報です。

ICMP の扱い

以前は ping を通すために双方向に ICMP を許可する ACL を設定しなければなりませんでしたが、PIX 7.x 台より ICMP のステートを見るようになっています。すなわち片方向に ICMP 許可 ACL を設定すれば許された方向に ping をかけることができるようになります。

デフォルトでは ICMP の検査は有効でないので、policy-map で “inspect icmp” と設定する必要があります。初期設定を元にした場合は以下のように設定します。

FW(config)# policy-map global_policy
FW(config-pmap)# class inspection_default
FW(config-pmap-c)# inspect icmp

修正された policy-map の全体は次のセクションを参考にしてください。

UDP の扱い

多くのファイアーウォールと同様、UDP は擬似コネクションとして扱いステートフルインスペクションの対象となります。デフォルトではタイムアウトにより戻りパケットのポートを閉じる動作ですが、定義済みプロトコルについてはアプリケーション層の内容に基づきより厳しい検査を実施することができます。

例えば SNMP を検査するためには SNMP を識別する class-map を作って使用している policy-map に含める必要があります。具体的には次のような設定となります。先の ICMP と同様初期に自動で出来る policy-map では SNMP の検査は有効でありません。この辺りの設定は以前は fixup コマンドを用いましたが 7.0 よりこのような設定にガラリと変わっています。

class-map snmp
match port udp range snmp snmptrap
class-map inspection_default
match default-inspection-traffic
!
!
policy-map global_policy
class inspection_default
inspect dns maximum-length 512
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
inspect esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
inspect xdmcp
inspect sip
inspect netbios
inspect tftp
inspect icmp
class snmp
inspect snmp
!
service-policy global_policy global

IP の access-list

access-list ACLNAME extended permit ip ...

と書くことができます。これだと一見アクセス制御をするのに IP 層までしか検査しないように見えます。しかし、実際はコネクション (ICMP/UDP 等の擬似コネクションを含む) の状態を検査するので、それぞれのプロトコルに応じた検査がなされます。

結局 ACL はコネクションの最初のパケットの通過可否を判断するためにのみ使われ、コネクションが確立された後は保持しているコネクションの状態と通過するパケットの整合性を基に通過可否が判断されるのです。ですので、ルータと同じように access-list を IP で書けば IP 層のチェックのみで通信を通過させることができるわけではないので注意が必要です。

そうそう 7.x からは inbound にも outbound にも ACL を適用できるようになっています。

グランプリサーキット30購入

とうとうミニッツグランプリサーキット30を購入してしまいました。洛西モデル東京店で取り寄せてもらい、1週間ほどで入荷しました。2割引でした。

とそこまでは良いのですが、「あそこにあるのがそうです」と指差されたダンボールを見た瞬間、

「でかっ…」

この大きさだからどの店も取り寄せになってしまうのですね。即断で電車で持ち帰るのを諦め、配送してもらうことにしました。送料が余分にかかってしまいますが仕方ありません。着払いでまだ届いていないのですがいくらになるのだろう…

車で取りに行ける人は良いですが、そうでない人は素直に通販を利用するのが良いと思います。なにはともあれ届くのが楽しみです

サボテンの花

気づいたらサボテンの花が咲いていたので写真に撮っておきました。いつもより少し大きめのイメージにして載せておきます。

サボテン

昨日(6日)撮ったのに今日(7日)はもうしぼんでいます。気づいてよかった。

HDR-HC3 と Premiere Elements 3.0

Sony のハイビジョンハンディカム HDR-HC3 を購入しました。 (正確には妻が買ってきました。)  最近出た HDR-SR1HDR-UX1 も候補だったのですが、結局以下の理由で HDR-HC3 を選びました。

  1. HDR-HC3 が一番小さくて軽い
  2. HDR-HC3 が一番安い (某量販店で税込 \88,700 + ポイント15% で購入)

新しいビデオカメラを買ったとなると PC でムービー編集したくなります。そこで Adobe Premiere Elements 3.0 の体験版を試すことにしました。これならば HDV (ハイビジョン形式) での読み込み、書き出しができます。カメラ、ソフト共に使いこむのはまだまだこれからなのですが、とりあえず今日は HDV で取り込むための設定を記しておきます。

Premiere 側
プロジェクトをつくる前にプロジェクトのプリセットを選択しなければなりません。 スタートアップスクリーンの「設定」で “Adobe HDV”, “HDV 1080i 30 (Sony 60i)” を選択します。この後新規プロジェクトを作成します。

HDR-HC3 側
メニュー設定で以下のようにします。

[ビデオ HDV/DV] → [HDV]
[i.LINK DV変換] → [切]

[i.LINK DV変換] のメニューは奥まったところにあるので探すのにマニュアルが必要でした。とりあえずデフォルトで切になっているようです。

ところで HDR-HC3 購入以前は、やはり Sony の DCR-PC7 を使っていました。よく見るとこれにも DV 端子がついているではないですか! 今月は保育園の発表会も控えていてしばらく PC へのキャプチャー作業が続きそうです。

Cisco ASA でパケットキャプチャー

最近続いている Cisco ASA/PIX の話です。ファイアーウォールの設定は完璧にしたはずなのに、「うまく動かない…」ということがたまにあります。その性質上何か問題が起こるとまず真っ先に「ファイアーウォールで止めてんじゃないの?」と疑われてしまう立場にあります。

ルールの書き間違いならばログを見れば大体わかりますが、ログを見てもわからない場合 ASA/PIX ではパケットをキャプチャーすることができます。

まず、キャプチャーしたいパケットを選別するための access-list (ACL) を作ります。これは問題判別に使うためのパケットを引っ掛けるためだけにファイアーウォールのルールとは独立した ACL を作れば良いです。

例えば、192.168.1.2 宛の通信がおかしければこんな風にします。

fw(config)# access-list mylist extended permit ip host 192.168.1.2 10.0.0.0 255.0.0.0
fw(config)# access-list mylist extended permit ip 10.0.0.0 255.0.0.0 host 192.168.1.2

そしてこの ACL とインターフェイスを指定してキャプチャーを開始します。

fw# capture mycap access-list mylist interface inside

ACL に適合するパケットがインターフェイスを通過すればキャプチャーされます。

fw# show capture
capture mycap type raw-data access-list mylist interface inside[Capturing - 1008 bytes]

キャプチャーできたのであれば詳細を見てみましょう。

fw# show capture mycap
12 packets captured
1: 15:53:16.278839 802.1Q vlan#128 P0 192.168.1.2 > 10.1.2.3: icmp: echo request
2: 15:53:16.279282 802.1Q vlan#128 P0 10.1.2.3 > 192.168.1.2: icmp: echo reply
3: (...略) 

キャプチャーを終了するには次のコマンドです。

fw# no capture mycap

私の経験ではこうして調べて見ると実はファイアーウォール以外に問題があった、ということもよくあります。これらのコマンドを覚えておくといざという時手際よく問題判別ができると思います。

引っ越して来ました

Yahoo ブログからこの FC2 ブログに引っ越して来ました。とりあえず、リストの最初の方にあったテンプレートを使ってサイトを立ち上げ過去記事をインポートしてみた、という状態です。過去のトラックバックやコメントは移していません。

引き続きボチボチとやっていきます。

HTMLDocument と Numeric character references

Java で HTML を読み込み、その内容を元に別の HTML を出力するちょっとしたプログラムを書こうとしています。こんな時、Java には HTMLEditorKit という便利なクラスがあります。これを使うと HTML を解析して HTMLDocument という HTML の内容を表すドキュメントクラスのインスタンスを生成してくれます。これがどんなに便利かは古い記事ですが、この記事等を読むとわかります。


さて逆に HTMLDocument の内容 HTML として出力しようとする時は HTMLWriter を使うことができます。ところがこれを使って日本語の HTMLDocument を出力しようとすると “&amp#12371;&amp#12398;&amp#12392;&amp#12371;” のような内容で出力されてしまいます。一瞬「また、文字化け??」と思ってしまいましたが、これはれっきとした HTML の書式で“Numeric character references (NCR)”と呼ばれるものだそうです。日本語では数値文字参照というようです。


「うーん、何で EUC や シフト JIS で出してくれないの??」と思い、Web 検索するもこのあたりの情報は乏しいです。仕方がないのでクラスのソースを見てみると、HTMLWriter クラスで思いっきり次のように書かれていました。


if (chars[counter] < ' ' || chars[counter] > 127) {
(中略)
// If the character is outside of ascii, write the
// numeric value.
output(“&#”);
output(String.valueOf((int)chars[counter]));
output(“;”);
}
(JDK 5.0 HTMLWriter クラスの “protected void output(char[], int, int)” のソース抜粋)


ascii でなけりゃ問答無用で NCR だということです。作った人はそれで済む国の人なのでしょう。日本でエディタ等を使って HTML を書くような人はシフト JIS や EUC で出力されないと困りますよね。


今回は EUC で出力したいのでどうしたものかと考えました。 HTMLWriter のサブクラスを作って該当の output 関数のみ override して HTMLWriter.output の丸コピーのチョイ直しという手も考えました。しかしそうすると HTMLWriter クラスの replaceEntities という重要なフラグが private なので参照することができません。本来 HTMLWriter が NCR で出力するかネイティブな文字コードで出力するか動作を選択できるようになっているべきなのでしょう。


そこで今回は使い捨てのプログラムだからと割り切り、出力する Writer の方にサブクラスをつくって”&#数字;” が来たらいつも使っているダブルバイトの文字に直すようにすることにしました。


で書いてみたのが、下のクラスです。このクラスのインスタンスを使って HTMLWriter を生成します。先に参照したソースの部分の output 呼び出し3連発に依存する書き方です。使い捨てなのでいいのです。


public class NCR2NativeWriter extends java.io.OutputStreamWriter {
private int count;
private String tempString; // NCR format string
public NCR2NativeWriter(OutputStream out, String s)
throws java.io.UnsupportedEncodingException {
super(out, s);
count = 0;
}
public void write(char[] cbuf, int off, int len)
throws java.io.IOException {
if (off != 0) {
super  .write  (cbuf, off, len);
return;
}
if (count == 0 && len == 2 && cbuf[0] == ‘&’ && cbuf[1] == ‘#’) {
count = 1;
return;
} else if (count == 1) {
int i = 0;
for (; i < len; i++) {
if (cbuf[i] > ‘9’ || cbuf[i] < '0') {
break;
}
}
if (i >= len) {
tempString = new String(cbuf, 0, len);
count = 2;
return;
} else {
super  .write  (“&#”);
}
} else if (count == 2) {
if (len == 1 && cbuf[0] == ‘;’) {
char c[] = new char[1];
c[0] = (char)new Integer(tempString).intValue();

super  .write  (c, 0, 1);
count = 0;
return;
} else {
super  .write  (“&#”);
super  .write  (tempString);
}
}
super  .write  (cbuf, 0, len);
count = 0;
}
}


Java のまとまったプログラムってほとんど書いたことないのでアレですが、いつか誰か(含自分)の参考になればということで。

Tomix 鉄道模型システムガイド

Tomix の鉄道模型システムガイドというものを模型店で見つけました。「システムガイド」ということなので役に立つ情報がいろいろあるかと思い、安価なこともあって反射的に買ってしまいました。しかし、カタログ持っている人には特に必要のない内容でした。カタログに比べて増えている情報といったらレールセットの組み合わせとビギナー用情報(車両の連結方法やパワーパックの扱い等々)なので、今年のカタログを持っている人には不要でしょう。最近のカタログを買ってなくて、「最近自動運転やら新しいポイントやらいろいろ増えてるけどよくわかんなーい」という人には良いと思います。

Cisco PIX/ASA の transparent mode

このところ触る機会が多い Cisco PIX/ASA の話です。Cisco ASA 5500 シリーズ (software version 7.0) の transparent mode を利用する機会がありました。transparent mode は通常の L3 IP forwarding でなく L2 で bridging をする動作モードです。このモードで動作している ASA を Spanning Tree Protocol (STP) が通過するように設定しなければならなかったのですが、これにハマってしまいました。


以下のコマンドで transparent mode での動作となります。


firewall transparent


デフォルトの設定では STP のフレーム (BPDU) は通過しないので ethertype を指定した ACL を inside/outside の両方のインターフェイスに明示的に適用しなければなりません。今回は特に ethertype は制限せず、全て通過するよう any を用いて ACL を作りました。


access-list Ethertypes ethertype permit any
access-group Ethertypes in interface inside
access-group Ethertypes in interface outside


これでうまくいくと思ったのですが、何故かツリーが構成されず、内側と外側で別々の root bridge ができてしまいます。


で結局何が悪かったかというと、物理インターフェイスをそのまま使っていたのがまずかったのです。うまく行かないときは次のように設定していました。


interface Ethernet0/0
speed 100
duplex full
nameif inside
security-level 100
!
interface Ethernet0/1
speed 100
duplex full
nameif outside
security-level 0


実は transparent mode ではサブインターフェイスを使わなければならないのです。次のように設定し直すとうまくいきました。


interface Ethernet0/0
speed 100
duplex full
no nameif
no security-level
!
interface Ethernet0/0.1
vlan 100
nameif inside
security-level 100
!
interface Ethernet0/1
speed 100
duplex full
no nameif
no security-level
!
interface Ethernet0/1.1
vlan 101
nameif outside
security-level 0


inside/outside で別々の VLAN 番号を振らなければなりません。このとき 802.1Q が使われるので、ASA が接続する inside 側のスイッチのインターフェイスは次のような設定になります。


(Catalyst 3550 の例)
interface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100
switchport mode trunk
no ip address
no cdp enable


物理インターフェイスを使っていた場合でも TCP/IP の ACL による制御機能は普通に動いてしまうのでハマりました。知っていれば何てことないのですが、transparent mode ではサブインターフェイスでの設定が必須ということで。

追記 (2007.9.11)

Cisco の Web サイトの設定例を見ると特に BPDU を通すためにはサブインターフェイスの設定が必要とは書かれていないですね。私の試した 7.0 では NG だったのですが、バージョンによるものかも知れないです。

最近は Cisco のサイトの設定例 (Configuration Examples and TechNotes) が充実してきているのでまずここを探すと良いと思います。

さらに追記 以下のバージョン以降はサブインターフェイス不要のようです。
7.0(6.26)、7.1(2.46)、7.2(2.14)、8.0(0.223)、8.2(0.7)