2008/07/22(Tue)Sleipnirの文字化け

2008/07/22 1:27 Software::Windows
先日からよく分からない現象に悩まされていた。
Sleipnirで特定のサイトを開いたとき、日本語が文字化けしたり、そもそも真っ白で何も表示されないという現象だ。

ページのソースを見てみると正常にまで受信できているので通信に問題があるようには思えないのだが…。

これらのうまく開かないページの特徴として、metaタグでContent-Typeが指定されていなかったり、ShiftJISの文字コードであるという点。
それをブラウザが毎回EUC-JPと勘違いしていて、自動選択されていないのが原因のようだ。


が、Sleipnirから何度、[表示]-[エンコード]-[自動選択(A)]を選んでやっても直らない。
どうしたものかと思っていたら……。


red:どうやらIEの設定に依存しているらしい


解決方法:
  1. Sleipnir、IEをすべて終了
  2. IEを起動して、[表示]-[エンコード]-[自動選択]にチェックを入れる
  3. IEを閉じる
  4. Sleipnirを開く
  5. 文字化けサイトにアクセスして確認。

参考元:http://community.tabbrowser.jp/forum/viewtopic.php?p=11225

2008/07/21(Mon)WindowsXPライセンスの判別

2008/07/21 0:25 Software::Windows
Windowsマシンのライセンスを調べる方法。
  • ラベルをキチンとつけずに散らかしていたWindows XPのセットアップCD、どれがどのライセンスの物だったかが分からなくなった時*1
  • コンピュータのOSライセンスを確認したい時*2
に便利です。

*1 : 自分でService PackをインストールCDに適用したものがいっぱいあったり…

*2 : ライセンス形態が色々のコンピュータがいっぱいあると、こういうことありませんか…

名前

製品版
リテール、FPPともいわれる
OEM版
DSP(ハードウェアと抱き合わせ販売)、SLP(System Locked Pre-installation; メーカー製PC)など
VL版
企業など大規模インストール向けのボリュームライセンス

稼働中のマシン

OEMかどうかの簡単な調べ方

[コントロールパネル]の[システム]でまずOEMかどうか分かる。
"使用者"の段の3段目。
2項目に注目。
?????-OEM-???????-?????のようになっていたらOEM、000ならRetail、640ならVL。

詳細な調べ方

レジストリエディタを起動して、HKEY_LOCAL_MACHINE\SYSTEM\Setup\Pid\Pidに書いてある値の下三桁に注目。
"270"ならVL、"000"ならRetail、"OEM"ならOEM。

セットアップメディア

\i386\setupp.iniを開き、中のPidを確認する。
下三桁が"270"ならVL、"000"ならRetail、"OEM"ならOEM。

一方ボリュームラベルでも判別できる。
"WXPFPP_JA"のようになっているが、_から左に3文字分を比較する。
FPPなら製品版、CCPならアップグレード版、OEMならOEM版、VOLならVL版。
また先頭1文字~3,4,5文字で、適用済みService Packもわかる。
WXPならSP無印、VRMPならSP2、GRTMPならSP3。
_の後ろは言うまでもなく言語ですね。

どうやら

Pidの先頭5桁の数字は製品ごとに違うようだ。
55383***:XP x86 製品版
55384***, 82503***:XP x86 アップグレード版?

日本語版と英語版とか…、HOME EditionとProfessional Editionとか、Upgradeかそうでないかとか……。
Vistaにこの法則が適用できるかは未確認です。

追記 Windows2003では 2009/01/17

使用している Windows Server 2003 の入手形態を確認する方法のKBを参照。

2008/07/17(Thu)Vistaでの証明書インポート時の注意

2008/07/17 13:47 Software::Windows
オレオレ証明書など、IEを立ち上げるたびに証明書の警告がうっとうしい場合は、信頼する証明書としてインポートしてしまえば良いのだが、Vista-IE7からはインポート手順がややこしくなっているので注意が必要である。

対象のサイトを開くと「このWebサイトのセキュリティ証明書には問題があります。」という警告が表示される状態から説明を始める。
  • 一旦全てのIEを終了し、IEを「管理者として実行...」する
cert_install_01.png

cert_install_02.png

  • 対象サイトを開くと、再び「このWebサイトのセキュリティ証明書には問題があります。」と文句を言われるが「このサイトの閲覧を続行する」を選ぶ
cert_install_03.png

  • アドレスバーがピンク赤色になっているので、「証明書のエラー」という部分をクリックし、「証明書の表示」を選ぶ
cert_install_04.png

  • 「証明書のインストール」をクリックする(管理者としてIEを実行しないとこのボタンが表示されない)
cert_install_05.png

  • 「証明書をすべて次のストアに配置する」を選び、「信頼されたルート証明機関」に切り替える*1
cert_install_06.png

cert_install_07.png

cert_install_08.png

  • 「次へ」「完了」をクリックする
cert_install_09.png

cert_install_10.png

  • 拇印(sha1)を確認後「はい」をクリックすると「正しくインポートされました。」が表示されるのを確認する
cert_install_11.png

cert_install_12.png

  • 管理権限のIEを終了し、一般権限で立ち上げ直す。
  • 対象サイトを開いた時、「このWebサイトのセキュリティ証明書には問題があります。」が表示されないこと、アドレスバーが赤色にならないことを確認する
cert_install_13.png

cert_install_14.png


なお、この方法では管理者権限が必要になるが、一旦証明書をファイルに落とせば不要?(未確認)
手順としては、一般権限で立ち上げているIEから「証明書の表示」をしたとき、「インストール」(表示されていない)ボタンの代わりに「ファイルへコピー」をクリックし、デフォルトの形式で.cerファイルに書き出し、それをダブルクリックしてインストールする。
この時もストア先を「信頼されたルート証明機関」に変更することをお忘れなく。

*1 : Vistaからはセキュリティ上の観点か、デフォルトがここにならなくなったようです。

2008/07/11(Fri)便利コマンド on Linux

2008/07/11 18:19 Software::Linux
Linuxのシェルは拡張性がヤバいですね。
Linuxを使い始めたときからbash一筋な私ですが、.bashrcに色々と拡張関数を作って便利に使っているので、少し紹介してみます。

コンパイラ系 省略コマンド

コンパイルしたら自動的にそのプログラム名で出力して欲しい!ってことで、N先生に作り方を教わったコマンド。
a.outのままだと、後からみてどのプログラムのコンパイル結果なのか分からないし、既存のと被る可能性があるからなぁ。
  • Usage: $ gcc prog.c
    # gcc
    alias gcc='mygcc'
    function mygcc(){
        pn=`echo $1 | sed -e 's/\.cp\?p\?//'`
        command gcc -Wall -lm -o $pn $*
    }
    # g++
    alias g++='mygpp'
    function mygpp(){
        pn=`echo $1 | sed -e 's/\.cpp//'`
        command g++ -Wall -lm -o $pn $*
    }
    # cc
    alias g++='mycc'
    function mycc(){
        pn=`echo $1 | sed -e 's/\.c//'`
        command cc -Wall -lm -o $pn $*
    }
    

プログラムコンパイルから出力をファイルに書くまで一発なコマンド

まぁごくたまに使いますかねぇ。大量のinputをプログラムに流し込んだ結果をとりたいときとか。
  • Usage: $ start prog.c input.dat
    function start(){
        pn=`echo $1 | sed -e 's/\.c//'`
        command cc -Wall -lm -o $pn $1; ./$pn $2 &> $pn.result; cat $pn.result
    }
    

ファイルの中をぐるぐる検索してくれるコマンド

でも、最近は$ grep -r HOGE ./ で事足りるじゃん…と思って使ってない。
  • Usage: $ exgrep HOGE
    # File grep
    function exgrep(){
        command find ./ -type f -exec grep -l "$1" {} \;
    }
    

ディレクトリ内のtarballを一気に解凍するコマンド

さっき必要だったので作ってみた。
$ tar zxvf *.tar.gzでディレクトリ内の全ての.tar.gzを解凍してほしかったんだけど(apacheログの日ごとにtarballしていたものを解凍したかった)、いちいちforとか打つの面倒だなと思って。
  • Usage: $ extar *.tar.gz
    # Expand decompress .tar.gz
    function extar(){
        for TGZ in $@
        do
            tar zxvf ${TGZ}
        done
    }
    

どーでもいいけど、シェルスクリプトってifの対がfiだったり、caseの対がesacなのに、doの対はodじゃないんだね^^;

追記: bashの関数名に+とか書くと怒られる 2012/04/30

今まで何ともなかったfunction g++() ...という書き方だが、Fedora 16を新規インストールした辺りのbashからどうもsyntax errorになる。仕方がないんで、aliasを噛ませて修正。

Before)
$ function g++(){ echo "hogehoge"; }
-bash: syntax error near unexpected token `echo'
After)
$ alias g++='mygpp'
$ function mygpp(){ echo "hogehoge"; }

2008/07/08(Tue)PuTTYで自動接続

2008/07/08 11:15 Software::Windows
私のクライアントマシンのOSは殆どWindowsなので、Linuxの遠隔サーバー制御のためにPuTTY ごった煮 v0.60-JP_Y-2007-08-06をよく使っている。
PuTTYの日本語化だけでなく、日本語ロケールに特化した機能が多く非常に便利なコンソールアプリである。

が、毎回セッションリストから接続先を指定するのが面倒なので、自動的にセッションをオープンできないかと思って調べてみた。
putty.exe -load <session-name>
で自動的につないでくれるみたい。
ちなみに-loadがない場合は、ホストとして認識するらしい。
セッション名に空白がある場合は""で囲むのを忘れないように…。