VMwareでスナップショットを取るときの注意点

  • 2009/09/09(水) 14:54:54

VMwareには『スナップショット』という非常に便利な機能があります。

◆スナップショットとは・・・
仮想マシンの状態を保存する 「スナップショット」 を作成し、いつでもその状態に戻すことが可能です。スナップショットを使用すれば、必要に応じて仮想マシンを元の安定したシステム状態に戻すことができます。 VMware Workstation では、すべてのスナップショットのサムネールが 1 つの画面に表示されるため、保存済みのスナップショットを簡単に管理して、その状態に戻すことができます。

≪VMware本家より引用≫
   http://www.vmware.com/jp/products/ws/

非常に使い良いので、さまざまな場面で利用される機能ですが、

スナップショットを取るときは、必ずシャットダウンすること


シャットダウンしない状態で(OS起動中に)スナップショットを取ると、その状態が保存されるため「クローンとあまり変わりません」。

調子に乗ってバシバシ取ると、あっという間にハードディスク圧迫して困ったことになります。

Dreamweaverでテンプレートを定義する際の注意点

  • 2009/08/26(水) 19:50:23

Adobe社から販売されている”Dreamweaver”でテンプレートを作成する際、(イメージなど)ファイルへのリンクを貼っていきます。

リンクパスには──Dreamweaverを扱ったことのある人ならわかると思いますが──[ファイル相対パス]と[サイトルート相対パス]とがあります。

◆ファイル相対パスとは
 自分のファイルから見て、ターゲットファイルがどの位置にいるか?を示したパス。
 例)../../../blog/bbs/index.html

◆サイトルート相対パスとは
 サイトのトップから見て、ターゲットファイルがどの位置にいるか?を示したパス。
 例)/blog/bbs/index.html

通常テンプレートを任意の位置にあるHTMLファイルに適用すると、ファイル相対パスの場合、Dreamweaver側で自動的にパスを書き換えて、ファイルを参照するように振舞いますが、あるケースではこれが効きません。それは...

  Javascriptの引数にファイルパスをしてしていた場合

もしテンプレート内にJavascriptコードを埋め込んでいて、さらに引数としてファイルのパスを指定していた場合、パスの変換は行われません。

このときは、必ずサイトルート相対パスを使ってファイルを指定する必要があります。

BASP21 を利用した文字コード変換について

  • 2009/04/01(水) 18:28:22

BaBa Centerfields様(http://www.hi-ho.ne.jp/babaq/index.html)にて作成、リリースされているBASP21(http://www.hi-ho.ne.jp/babaq/basp21.html)は非常に強力なメソッドをそろえた、汎用モジュールです。

ASP(VBScript)やVisualBasic、VBAなどで利用できます。

このBASP21の中に『kconv()』という漢字コードを変換するメソッドがあります。

これはUTF-8形式から、Shift-JIS形式に変換できたりして、%xx形式で表現されるウェブの検索キーワード解析には非常に重宝するメソッドです。

これは書式として
out = bobj.Kconv(instr,outtype[,intype])
instr [in] : 変換したい文字列(UNICODEの場合)、またはバイト配列。
outtype [in] : 変換後の漢字コードのタイプを数字で指定します。
0 - 変換せずに漢字タイプを数字で返します
1 - SHIFT JIS
2 - EUC
3 - JIS
4 - UNICODE UCS2
5 - UNICODE UTF8
6 - JIS 文字列タイプ2000/11/18 New
intype [in] : 変換前の漢字コードのタイプが確定しているとき数字で指定します。
0 - 不明(省略値)。自動認識します。
1 - SHIFT JIS
2 - EUC
3 - JIS
4 - UNICODE UCS2
5 - UNICODE UTF8
6 - JIS 文字列タイプ2000/12/17 New
out [out] : 変換後の漢字コードを文字列(UNICODEの場合)あるいはバイト配列で
返します。
outtype = 0 なら漢字のタイプを数字で返します。
という形をとるので(本家サイト引用)、入力引数としてバイト配列を指定することが多くあります。

バイト配列は同モジュール『bytearray()』というメソッドを使用して作ることができます。

この書式が、これまた本家サイトからまるっと引用で
result = bobj.ByteArray(instr[,type])
result [out] : 結果のバイト配列。
instr [in] : 文字列。
type [in] : 変換のタイプを数字で指定。
0 - 出力はSJISのバイト列。省略値。
1 - 入力を16進形式の文字列として解釈。
2 - 出力はUNICODEのバイト列。
となり、"type"への指定によるスイッチで、あらかじめHEX表現の文字列を用意しておけば、簡単にバイト配列を作ることができます。


このHEX文字列を作る際、「キーワードとしての文字列」に対してしっかりNULL止めをすること。

URL上ではNULL表現が存在しないため、これに気をつけなければ、文字化けを起こすなど、色々な弊害が生まれます。


・・・今回は前置きがすごく長かった・・・

setIntervalとsetTimeoutの違いについて

  • 2009/04/01(水) 18:11:37

JavaScriptの関数で、一定の間隔で処理を実行させる関数に
 >setInterval() と
 >setTimeout() がありますが、

 >setInterval()・・・指定された関数を指定した時間経過するごとに実行
 >setTimeout()・・・指定された関数を指定時間後に1回だけ実行

と、微妙に挙動が違います。

微妙に挙動が違うため、使い方を間違えるとトンデモないことになります。

文字スクロールなどでは、この関数を使った再帰的処理をさせるロジックを作りますが、

function main(){
・・・
subFunc();
}

function subFunc(){
setInterval(subFunc(),1000);
}

とかやると、正常に動いてくれません。

これを main()側で

function main(){
・・・
setInterval(subFunc(),1000);
}

とやるか、subFunc()側で

function subFunc(){
setTimeout(subFunc(),1000);
}

とやるとうまく動きます(動き方はいっしょ)。

落ち着いて考えると非常に簡単なことだけど、ハマると1週間くらい考えさせられるので注意。

ユーザ名の全角について

  • 2008/10/26(日) 04:50:35

ンヶ月前に「ユーザ名が全角だとインストールがうまくいかないことが多い」というのを言いましたが、あれって一回全角でユーザ登録すると、途中から半角にしてもダメなんだそうな。

見た目は半角になるんだけど、Windowsに登録・認識されているユーザは全角のまま。

つまり、後で修正したとしてもインストール自体はうまくいかない可能性が高い、ということ。

うっかり見落としがちなことなので、覚えておきましょう。